From: Matthias Clasen Date: Sat, 7 Apr 2012 15:23:47 +0000 (-0400) Subject: convert: Improve test coverage X-Git-Tag: 2.32.1~46 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cbeecdc4ae5e25e94e694f0503e42386572c5a25;p=platform%2Fupstream%2Fglib.git convert: Improve test coverage Add a test that excercises the 'no conversion' code path. This uncovered that we don't treat errno properly in this path, and as a consequence, the returned error code is unreliable. --- diff --git a/glib/tests/convert.c b/glib/tests/convert.c index 603142f..df87244 100644 --- a/glib/tests/convert.c +++ b/glib/tests/convert.c @@ -685,11 +685,28 @@ test_filename_display (void) g_free (display); } +static void +test_no_conv (void) +{ + gchar *in = ""; + gchar *out G_GNUC_UNUSED; + gsize bytes_read = 0; + gsize bytes_written = 0; + GError *error = NULL; + + out = g_convert (in, -1, "XXX", "UVZ", + &bytes_read, &bytes_written, &error); + + /* error code is unreliable, since we mishandle errno there */ + g_assert (error && error->domain == G_CONVERT_ERROR); +} + int main (int argc, char *argv[]) { g_test_init (&argc, &argv, NULL); + g_test_add_func ("/conversion/no-conv", test_no_conv); g_test_add_func ("/conversion/iconv-state", test_iconv_state); g_test_add_func ("/conversion/illegal-sequence", test_one_half); g_test_add_func ("/conversion/byte-order", test_byte_order);