@@ -215,8 +215,25 @@ FOSSIL_TEST(cpp_test_cstring_icmp) {
215215 const char *s1 = " Hello" ;
216216 const char *s2 = " hello" ;
217217 const char *s3 = " World" ;
218- ASSUME_ITS_TRUE (fossil_io_cstring_icmp (s1, s2));
219- ASSUME_ITS_FALSE (fossil_io_cstring_icmp (s1, s3));
218+ const char *s4 = " Hell" ;
219+ const char *s5 = " Hello!" ;
220+
221+ // Case-insensitive equal
222+ ASSUME_ITS_EQUAL_I32 (0 , fossil_io_cstring_icmp (s1, s2));
223+ // Not equal, s1 < s3
224+ ASSUME_ITS_TRUE (fossil_io_cstring_icmp (s1, s3) < 0 );
225+ // Not equal, s3 > s1
226+ ASSUME_ITS_TRUE (fossil_io_cstring_icmp (s3, s1) > 0 );
227+ // Prefix: s1 > s4
228+ ASSUME_ITS_TRUE (fossil_io_cstring_icmp (s1, s4) > 0 );
229+ // s1 < s5 (shorter)
230+ ASSUME_ITS_TRUE (fossil_io_cstring_icmp (s1, s5) < 0 );
231+ // NULL handling
232+ ASSUME_ITS_EQUAL_I32 (0 , fossil_io_cstring_icmp (nullptr , nullptr ));
233+ ASSUME_ITS_TRUE (fossil_io_cstring_icmp (nullptr , " abc" ) < 0 );
234+ ASSUME_ITS_TRUE (fossil_io_cstring_icmp (" abc" , nullptr ) > 0 );
235+ ASSUME_ITS_EQUAL_I32 (0 , fossil_io_cstring_icmp (nullptr , " " ));
236+ ASSUME_ITS_EQUAL_I32 (0 , fossil_io_cstring_icmp (" " , nullptr ));
220237}
221238
222239FOSSIL_TEST (cpp_test_cstring_icontains) {
@@ -503,13 +520,6 @@ FOSSIL_TEST(cpp_test_cstring_stream_class_empty_read) {
503520 ASSUME_ITS_EQUAL_CSTR (" " , result.c_str ());
504521}
505522
506- FOSSIL_TEST (cpp_test_cstring_class_icmp) {
507- fossil::io::CString str (" Hello, World!" );
508- ASSUME_ITS_TRUE (str.icmp (" hello, world!" ));
509- ASSUME_ITS_TRUE (str.icmp (" HELLO, WORLD!" ));
510- ASSUME_ITS_TRUE (!str.icmp (" Hello, Fossil!" ));
511- }
512-
513523FOSSIL_TEST (cpp_test_cstring_class_icontains) {
514524 fossil::io::CString str (" Hello, World!" );
515525 ASSUME_ITS_TRUE (str.icontains (" world" ));
@@ -647,7 +657,6 @@ FOSSIL_TEST_GROUP(cpp_string_tests) {
647657 FOSSIL_TEST_ADD (cpp_string_suite, cpp_test_cstring_class_count);
648658 FOSSIL_TEST_ADD (cpp_string_suite, cpp_test_cstring_class_pad_left);
649659 FOSSIL_TEST_ADD (cpp_string_suite, cpp_test_cstring_class_pad_right);
650- FOSSIL_TEST_ADD (cpp_string_suite, cpp_test_cstring_class_icmp);
651660 FOSSIL_TEST_ADD (cpp_string_suite, cpp_test_cstring_class_icontains);
652661 FOSSIL_TEST_ADD (cpp_string_suite, cpp_test_cstring_class_join);
653662 FOSSIL_TEST_ADD (cpp_string_suite, cpp_test_cstring_class_index_of);
0 commit comments