X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=mware%2Fsprintf_test.c;h=697a544ecc6fcc19d22b41f805f25dfa600c5883;hb=2dde5222175bc7b2da7256fc198c51e3a7eb3320;hp=0f4758f9bf593e844eb6dd0ccf9879da3cf90256;hpb=f92db67171e12469bb253a77f9729bb17c831ebc;p=bertos.git diff --git a/mware/sprintf_test.c b/mware/sprintf_test.c index 0f4758f9..697a544e 100755 --- a/mware/sprintf_test.c +++ b/mware/sprintf_test.c @@ -1,6 +1,32 @@ +/*! + * \file + * + * + * \brief sprintf() implementation based on _formatted_write() + * + * \version $Id$ + * \author Bernardo Innocenti + */ + +/*#* + *#* $Log$ + *#* Revision 1.5 2005/11/04 17:47:26 bernie + *#* Fix one warning. + *#* + *#* Revision 1.4 2005/11/04 17:43:27 bernie + *#* Fix for LP64 architectures; Add some more tests. + *#* + *#*/ + #include "sprintf.c" #include "formatwr.c" #include "hex.c" +#include +#include +#include #include /* assert() */ #include /* strcmp() */ @@ -18,14 +44,28 @@ int main(UNUSED_ARG(int, argc), UNUSED_ARG(char **,argv)) snprintf(buf, sizeof buf, "%S", test_string_pgm); assert(strcmp(buf, test_string_pgm) == 0); - snprintf(buf, sizeof buf, "%d", 12345); - assert(strcmp(buf, "12345") == 0); +#define TEST(FMT, VALUE, EXPECT) do { \ + snprintf(buf, sizeof buf, FMT, VALUE); \ + assert(strcmp(buf, EXPECT) == 0); \ + } while (0) + + TEST("%d", 12345, "12345"); + TEST("%ld", 123456789L, "123456789"); + TEST("%ld", -12345678L, "-12345678"); + TEST("%lu", 4294967295UL, "4294967295"); + TEST("%hd", -12345, "-12345"); + TEST("%hu", 65535U, "65535"); - snprintf(buf, sizeof buf, "%ld", 123456789L); - assert(strcmp(buf, "123456789") == 0); + TEST("%8d", 123, " 123"); + TEST("%8d", -123, " -123"); + TEST("%-8d", -123, "-123 "); + TEST("%08d", -123, "-0000123"); - snprintf(buf, sizeof buf, "%lu", 4294967295UL); - assert(strcmp(buf, "4294967295") == 0); + TEST("%8.2f", -123.456, " -123.46"); + TEST("%-8.2f", -123.456, "-123.46 "); + TEST("%8.0f", -123.456, " -123"); + +#undef TEST /* * Stress tests. @@ -38,3 +78,4 @@ int main(UNUSED_ARG(int, argc), UNUSED_ARG(char **,argv)) return 0; } +