lib:util:tests: more tests for codepoint_cmpi
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Sat, 13 Apr 2024 05:07:20 +0000 (17:07 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 7 May 2024 23:25:35 +0000 (23:25 +0000)
is codepoint_cmpi as case-insensitive as it claims when it comes to
inequalities? (no, it is not!).

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/util/charset/tests/charset.c
selftest/knownfail.d/codepoint_cmpi [new file with mode: 0644]

index bca5449c579f688c6556971a964f5aa7e4ee9d48..46f89cb9ef4c5d990fae599cba6c3f608d4d68b7 100644 (file)
@@ -47,7 +47,16 @@ static bool test_codepoint_cmpi(struct torture_context *tctx)
        torture_assert_int_equal(tctx, codepoint_cmpi('a', 'a'), 0, "same char");
        torture_assert_int_equal(tctx, codepoint_cmpi('A', 'a'), 0, "upcase version");
        torture_assert_int_equal(tctx, codepoint_cmpi('b', 'a'), 1, "right diff");
-       torture_assert_int_equal(tctx, codepoint_cmpi('a', 'b'), -1, "right diff");
+       torture_assert_int_equal(tctx, codepoint_cmpi('b', 'A'), 1, "left greater, mixed case");
+       torture_assert_int_equal(tctx, codepoint_cmpi('C', 'a'), 1, "left greater, mixed case");
+       torture_assert_int_equal(tctx, codepoint_cmpi('a', 'b'), -1, "right greater");
+       torture_assert_int_equal(tctx, codepoint_cmpi('A', 'B'), -1, "right greater, upper case");
+       torture_assert_int_equal(tctx, codepoint_cmpi(0xc5, 0xc5), 0,
+                                "Latin Capital Letter A with Ring Above");
+       torture_assert_int_equal(tctx, codepoint_cmpi(0xc5, 0xe5), 0,
+                                "Latin both Letter A with Ring Above, lower right");
+       torture_assert_int_equal(tctx, codepoint_cmpi(0xe5, 0xde), -1,
+                                "å < Þ");
        return true;
 }
 
diff --git a/selftest/knownfail.d/codepoint_cmpi b/selftest/knownfail.d/codepoint_cmpi
new file mode 100644 (file)
index 0000000..4d0a08f
--- /dev/null
@@ -0,0 +1 @@
+^samba4.local.charset.codepoint_cmpi