diff options
Diffstat (limited to 'unittest')
-rw-r--r-- | unittest/mysys/my_vsnprintf-t.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/unittest/mysys/my_vsnprintf-t.c b/unittest/mysys/my_vsnprintf-t.c index 06f6878826a..5809d6144cc 100644 --- a/unittest/mysys/my_vsnprintf-t.c +++ b/unittest/mysys/my_vsnprintf-t.c @@ -19,7 +19,7 @@ char buf[1024]; /* let's hope that's enough */ -void test1(const char *res, const char *fmt, ...) +static void test1(const char *res, const char *fmt, ...) { va_list args; size_t len; @@ -29,9 +29,29 @@ void test1(const char *res, const char *fmt, ...) ok(strlen(res) == len && strcmp(buf, res) == 0, "\"%s\"", buf); } +static void test_many(const char **res, const char *fmt, ...) +{ + va_list args; + size_t len; + va_start(args,fmt); + len= my_vsnprintf(buf, sizeof(buf)-1, fmt, args); + va_end(args); + + for (; *res ; res++) + { + if (strlen(*res) == len && strcmp(buf, *res) == 0) + { + ok(1, "\"%s\"", buf); + return; + } + } + ok(0, "\"%s\"", buf); +} + + int main(void) { - plan(58); + plan(59); test1("Constant string", "Constant string"); @@ -177,6 +197,17 @@ int main(void) test1("My `DDDD` test CCCC, `DDD`", "My %1$`s test %2$s, %1$`-.3s", "DDDD", "CCCC"); + { + /* Test that %M works */ + const char *results[]= + { + "Error 1 \"Operation not permitted\"", /* Linux */ + "Error 1 \"Not owner\"", /* Solaris */ + NullS + }; + test_many(results, "Error %M", 1); + } + return exit_status(); } |