X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-base64.c;h=9a533c521abbfe16671d7a06cb7ba581645948fa;hb=ff53c39e3f416e4b8b5dd03e303986edbf20f56c;hp=8d4a0c641647b5c3287bb87ab922fa97ce640a01;hpb=43b085b1a469982e97638ded20fc2262387f1655;p=gnulib.git diff --git a/tests/test-base64.c b/tests/test-base64.c index 8d4a0c641..9a533c521 100644 --- a/tests/test-base64.c +++ b/tests/test-base64.c @@ -1,5 +1,5 @@ /* Self tests for base64. - Copyright (C) 2004, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2004, 2008-2012 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software: you can redistribute it and/or modify @@ -17,26 +17,15 @@ #include +#include "base64.h" + #include -#include #include #include #include #include -#include "base64.h" - -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (stderr); \ - abort (); \ - } \ - } \ - while (0) +#include "macros.h" int main (void) @@ -50,7 +39,7 @@ main (void) memset (out, 0x42, sizeof (out)); base64_encode (in, 0, out, 0); - ASSERT(out[0] == '\x42'); + ASSERT (out[0] == '\x42'); memset (out, 0x42, sizeof (out)); base64_encode (in, 1, out, 1); @@ -160,6 +149,7 @@ main (void) ASSERT (ok); ASSERT (len == 7); ASSERT (memcmp (out, "abcdefg", len) == 0); + free (p); { struct base64_decode_context ctx; @@ -171,6 +161,7 @@ main (void) ASSERT (ok); ASSERT (len == strlen (in)); ASSERT (memcmp (p, in, len) == 0); + free (p); } { @@ -181,25 +172,30 @@ main (void) ASSERT (ok); ASSERT (len == 9); ASSERT (memcmp (p, "abcdefghi", len) == 0); + free (p); base64_decode_ctx_init (&ctx); ok = base64_decode_alloc_ctx (&ctx, "YW\n", 3, &p, &len); ASSERT (ok); ASSERT (len == 0); + free (p); ok = base64_decode_alloc_ctx (&ctx, "JjZGVmZ2", 8, &p, &len); ASSERT (ok); ASSERT (len == 6); ASSERT (memcmp (p, "abcdef", len) == 0); + free (p); ok = base64_decode_alloc_ctx (&ctx, "hp", 2, &p, &len); ASSERT (ok); - ASSERT (len == 2); - /* Actually this looks buggy. Shouldn't output be 'ghi'? */ - ASSERT (memcmp (p, "gh", len) == 0); + ASSERT (len == 3); + ASSERT (memcmp (p, "ghi", len) == 0); + free (p); + ok = base64_decode_alloc_ctx (&ctx, "", 0, &p, &len); ASSERT (ok); + free (p); } { @@ -211,6 +207,7 @@ main (void) ok = base64_decode_alloc_ctx (&ctx, newlineb64, strlen (newlineb64), &p, &len); ASSERT (ok); ASSERT (len == 0); + free (p); } ok = base64_decode_alloc_ctx (NULL, " ! ", 3, &p, &len);