Merge branch 'w-sign-conversion' into 'main'

tests: Add a -Wsign-conversion test for gstring.h

See merge request GNOME/glib!3275
This commit is contained in:
Emmanuele Bassi 2023-02-22 01:41:25 +00:00
commit 796e21ee1c
3 changed files with 42 additions and 37 deletions

View File

@ -82,7 +82,7 @@ typedef void (*GTestFixtureFunc) (gpointer fixture,
} G_STMT_END
#define g_assert_cmpmem(m1, l1, m2, l2) G_STMT_START {\
gconstpointer __m1 = m1, __m2 = m2; \
int __l1 = l1, __l2 = l2; \
size_t __l1 = (size_t) l1, __l2 = (size_t) l2; \
if (__l1 != 0 && __m1 == NULL) \
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"assertion failed (" #l1 " == 0 || " #m1 " != NULL)"); \

View File

@ -128,6 +128,11 @@ glib_tests = {
},
'strfuncs' : {},
'string' : {},
'string-macro' : {
'source' : 'string.c',
'c_args' : cc.get_id() == 'gcc' ? ['-Werror=sign-conversion'] : [],
'install' : false,
},
'strvbuilder' : {},
'testing' : {
'args': [ '--verbose' ],

View File

@ -47,7 +47,7 @@ test_string_chunks (void)
}
tmp_string_2 = g_string_chunk_insert_const (string_chunk, tmp_string);
g_assert (tmp_string_2 != tmp_string);
g_assert_true (tmp_string_2 != tmp_string);
g_assert_cmpstr (tmp_string_2, ==, tmp_string);
tmp_string = g_string_chunk_insert_const (string_chunk, tmp_string);
@ -72,9 +72,9 @@ test_string_chunk_insert (void)
str[1] = g_string_chunk_insert_len (chunk, s1, 8);
str[2] = g_string_chunk_insert (chunk, s2);
g_assert (memcmp (s0, str[0], sizeof s0) == 0);
g_assert (memcmp (s1, str[1], sizeof s1) == 0);
g_assert (memcmp (s2, str[2], sizeof s2) == 0);
g_assert_cmpmem (s0, sizeof s0, str[0], sizeof s0);
g_assert_cmpmem (s1, sizeof s1, str[1], sizeof s1);
g_assert_cmpmem (s2, sizeof s2, str[2], sizeof s2);
g_string_chunk_free (chunk);
}
@ -87,11 +87,11 @@ test_string_new (void)
string1 = g_string_new ("hi pete!");
string2 = g_string_new (NULL);
g_assert (string1 != NULL);
g_assert (string2 != NULL);
g_assert (strlen (string1->str) == string1->len);
g_assert (strlen (string2->str) == string2->len);
g_assert (string2->len == 0);
g_assert_nonnull (string1);
g_assert_nonnull (string2);
g_assert_cmpuint (strlen (string1->str), ==, string1->len);
g_assert_cmpuint (strlen (string2->str), ==, string2->len);
g_assert_cmpuint (string2->len, ==, 0);
g_assert_cmpstr ("hi pete!", ==, string1->str);
g_assert_cmpstr ("", ==, string2->str);
@ -102,9 +102,9 @@ test_string_new (void)
string2 = g_string_new_len ("foobar", 3);
g_assert_cmpstr (string1->str, ==, "foo");
g_assert_cmpint (string1->len, ==, 3);
g_assert_cmpuint (string1->len, ==, 3);
g_assert_cmpstr (string2->str, ==, "foo");
g_assert_cmpint (string2->len, ==, 3);
g_assert_cmpuint (string2->len, ==, 3);
g_string_free (string1, TRUE);
g_string_free (string2, TRUE);
@ -183,7 +183,7 @@ static void
test_string_append_c (void)
{
GString *string;
gint i;
guint i;
string = g_string_new ("hi pete!");
@ -197,7 +197,7 @@ test_string_append_c (void)
g_assert_true ((strlen("hi pete!") + 10000) == strlen(string->str));
for (i = 0; i < 10000; i++)
g_assert_true (string->str[strlen ("Hi pete!") + i] == 'a' + (i%26));
g_assert_true (string->str[strlen ("Hi pete!") + i] == 'a' + (gchar) (i%26));
g_string_free (string, TRUE);
}
@ -472,9 +472,9 @@ test_string_equal (void)
string1 = g_string_new ("test");
string2 = g_string_new ("te");
g_assert (!g_string_equal(string1, string2));
g_assert_false (g_string_equal (string1, string2));
g_string_append (string2, "st");
g_assert (g_string_equal(string1, string2));
g_assert_true (g_string_equal (string1, string2));
g_string_free (string1, TRUE);
g_string_free (string2, TRUE);
}
@ -487,15 +487,15 @@ test_string_truncate (void)
string = g_string_new ("testing");
g_string_truncate (string, 1000);
g_assert (string->len == strlen("testing"));
g_assert_cmpuint (string->len, ==, strlen("testing"));
g_assert_cmpstr (string->str, ==, "testing");
(g_string_truncate) (string, 4);
g_assert (string->len == 4);
g_assert_cmpuint (string->len, ==, 4);
g_assert_cmpstr (string->str, ==, "test");
g_string_truncate (string, 0);
g_assert (string->len == 0);
g_assert_cmpuint (string->len, ==, 0);
g_assert_cmpstr (string->str, ==, "");
g_string_free (string, TRUE);
@ -510,24 +510,24 @@ test_string_overwrite (void)
string = g_string_new ("testing");
g_string_overwrite (string, 4, " and expand");
g_assert (15 == string->len);
g_assert ('\0' == string->str[15]);
g_assert (g_str_equal ("test and expand", string->str));
g_assert_cmpuint (15, ==, string->len);
g_assert_true ('\0' == string->str[15]);
g_assert_true (g_str_equal ("test and expand", string->str));
g_string_overwrite (string, 5, "NOT-");
g_assert (15 == string->len);
g_assert ('\0' == string->str[15]);
g_assert (g_str_equal ("test NOT-expand", string->str));
g_assert_cmpuint (15, ==, string->len);
g_assert_true ('\0' == string->str[15]);
g_assert_true (g_str_equal ("test NOT-expand", string->str));
g_string_overwrite_len (string, 9, "blablabla", 6);
g_assert (15 == string->len);
g_assert ('\0' == string->str[15]);
g_assert (g_str_equal ("test NOT-blabla", string->str));
g_assert_cmpuint (15, ==, string->len);
g_assert_true ('\0' == string->str[15]);
g_assert_true (g_str_equal ("test NOT-blabla", string->str));
g_string_overwrite_len (string, 4, "BLABL", 0);
g_assert (g_str_equal ("test NOT-blabla", string->str));
g_assert_true (g_str_equal ("test NOT-blabla", string->str));
g_string_overwrite_len (string, 4, "BLABL", -1);
g_assert (g_str_equal ("testBLABLblabla", string->str));
g_assert_true (g_str_equal ("testBLABLblabla", string->str));
g_string_free (string, TRUE);
}
@ -540,15 +540,15 @@ test_string_nul_handling (void)
/* Check handling of embedded ASCII 0 (NUL) characters in GString. */
string1 = g_string_new ("fiddle");
string2 = g_string_new ("fiddle");
g_assert (g_string_equal (string1, string2));
g_assert_true (g_string_equal (string1, string2));
g_string_append_c (string1, '\0');
g_assert (!g_string_equal (string1, string2));
g_assert_false (g_string_equal (string1, string2));
g_string_append_c (string2, '\0');
g_assert (g_string_equal (string1, string2));
g_assert_true (g_string_equal (string1, string2));
g_string_append_c (string1, 'x');
g_string_append_c (string2, 'y');
g_assert (!g_string_equal (string1, string2));
g_assert (string1->len == 8);
g_assert_false (g_string_equal (string1, string2));
g_assert_cmpuint (string1->len, ==, 8);
g_string_append (string1, "yzzy");
g_assert_cmpmem (string1->str, string1->len + 1, "fiddle\0xyzzy", 13);
g_string_insert (string1, 1, "QED");
@ -593,7 +593,7 @@ test_string_set_size (void)
g_string_set_size (s, 30);
g_assert_cmpstr (s->str, ==, "foo");
g_assert_cmpint (s->len, ==, 30);
g_assert_cmpuint (s->len, ==, 30);
g_string_free (s, TRUE);
}
@ -613,7 +613,7 @@ test_string_to_bytes (void)
byte_data = g_bytes_get_data (bytes, &byte_len);
g_assert_cmpint (byte_len, ==, 7);
g_assert_cmpuint (byte_len, ==, 7);
g_assert_cmpmem (byte_data, byte_len, "foo-bar", 7);