X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Ftest-vasprintf-posix.c;h=e8c551e30c1c42d0ce5b537793bb4261a145523e;hb=cf8538614458dcf303ea9bb2f03aacdb5ebe34ca;hp=3cf430f4b685042076758e996c7e9628000e2258;hpb=ec3cec6e830425c42be718a29cfdb793657c0db5;p=pspp diff --git a/tests/test-vasprintf-posix.c b/tests/test-vasprintf-posix.c index 3cf430f4b6..e8c551e30c 100644 --- a/tests/test-vasprintf-posix.c +++ b/tests/test-vasprintf-posix.c @@ -1534,7 +1534,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%e %d", 12.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1.275000e+01 33") == 0); + ASSERT (strcmp (result, "1.275000e+01 33") == 0 + || strcmp (result, "1.275000e+001 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1544,7 +1545,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%e %d", 1234567.0, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1.234567e+06 33") == 0); + ASSERT (strcmp (result, "1.234567e+06 33") == 0 + || strcmp (result, "1.234567e+006 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1633,8 +1635,16 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) char *result; int retval = my_asprintf (&result, "%e", data[k].value); + const char *expected = data[k].string; ASSERT (result != NULL); - ASSERT (strmatch (data[k].string, result)); + ASSERT (strcmp (result, expected) == 0 + /* Some implementations produce exponents with 3 digits. */ + || (strlen (result) == strlen (expected) + 1 + && memcmp (result, expected, strlen (expected) - 2) == 0 + && result[strlen (expected) - 2] == '0' + && strcmp (result + strlen (expected) - 1, + expected + strlen (expected) - 2) + == 0)); ASSERT (retval == strlen (result)); free (result); } @@ -1645,7 +1655,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%e %d", -0.03125, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "-3.125000e-02 33") == 0); + ASSERT (strcmp (result, "-3.125000e-02 33") == 0 + || strcmp (result, "-3.125000e-002 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1655,7 +1666,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%e %d", 0.0, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "0.000000e+00 33") == 0); + ASSERT (strcmp (result, "0.000000e+00 33") == 0 + || strcmp (result, "0.000000e+000 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1665,7 +1677,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%e %d", -0.0, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "-0.000000e+00 33") == 0); + ASSERT (strcmp (result, "-0.000000e+00 33") == 0 + || strcmp (result, "-0.000000e+000 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1707,7 +1720,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%15e %d", 1.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, " 1.750000e+00 33") == 0); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1717,7 +1731,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%-15e %d", 1.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1.750000e+00 33") == 0); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1727,7 +1742,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%+e %d", 1.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "+1.750000e+00 33") == 0); + ASSERT (strcmp (result, "+1.750000e+00 33") == 0 + || strcmp (result, "+1.750000e+000 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1737,7 +1753,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "% e %d", 1.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, " 1.750000e+00 33") == 0); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1747,7 +1764,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%#e %d", 1.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1.750000e+00 33") == 0); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1757,7 +1775,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%#.e %d", 1.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "2.e+00 33") == 0); + ASSERT (strcmp (result, "2.e+00 33") == 0 + || strcmp (result, "2.e+000 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1767,7 +1786,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%#.e %d", 9.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1.e+01 33") == 0); + ASSERT (strcmp (result, "1.e+01 33") == 0 + || strcmp (result, "1.e+001 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1777,7 +1797,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%015e %d", 1234.0, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "0001.234000e+03 33") == 0); + ASSERT (strcmp (result, "0001.234000e+03 33") == 0 + || strcmp (result, "001.234000e+003 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1808,7 +1829,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%.e %d", 1234.0, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1e+03 33") == 0); + ASSERT (strcmp (result, "1e+03 33") == 0 + || strcmp (result, "1e+003 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -1918,7 +1940,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%Le", data[k].value); ASSERT (result != NULL); - ASSERT (strmatch (data[k].string, result)); + ASSERT (strcmp (result, data[k].string) == 0); ASSERT (retval == strlen (result)); free (result); } @@ -2116,7 +2138,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%g %d", 1234567.0, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1.23457e+06 33") == 0); + ASSERT (strcmp (result, "1.23457e+06 33") == 0 + || strcmp (result, "1.23457e+006 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -2205,8 +2228,17 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) char *result; int retval = my_asprintf (&result, "%g", data[k].value); + const char *expected = data[k].string; ASSERT (result != NULL); - ASSERT (strmatch (data[k].string, result)); + ASSERT (strcmp (result, expected) == 0 + /* Some implementations produce exponents with 3 digits. */ + || (expected[strlen (expected) - 4] == 'e' + && strlen (result) == strlen (expected) + 1 + && memcmp (result, expected, strlen (expected) - 2) == 0 + && result[strlen (expected) - 2] == '0' + && strcmp (result + strlen (expected) - 1, + expected + strlen (expected) - 2) + == 0)); ASSERT (retval == strlen (result)); free (result); } @@ -2339,7 +2371,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%#.g %d", 9.75, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1.e+01 33") == 0); + ASSERT (strcmp (result, "1.e+01 33") == 0 + || strcmp (result, "1.e+001 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -2380,7 +2413,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%.g %d", 1234.0, 33, 44, 55); ASSERT (result != NULL); - ASSERT (strcmp (result, "1e+03 33") == 0); + ASSERT (strcmp (result, "1e+03 33") == 0 + || strcmp (result, "1e+003 33") == 0); ASSERT (retval == strlen (result)); free (result); } @@ -2490,7 +2524,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) int retval = my_asprintf (&result, "%Lg", data[k].value); ASSERT (result != NULL); - ASSERT (strmatch (data[k].string, result)); + ASSERT (strcmp (result, data[k].string) == 0); ASSERT (retval == strlen (result)); free (result); }