diff --git a/examples/base64.c b/examples/base64.c index beb2484f9dcbbf2add81c2295572731ca06fa487..0a8f613df3f779ca6abdee8aa8b26a7ea63267bf 100644 --- a/examples/base64.c +++ b/examples/base64.c @@ -29,6 +29,35 @@ void init_parser(void) } +#include <string.h> +#include <assert.h> +#define TRUE (1) +#define FALSE (0) + +void assert_parse(int expected, char *data) { + const HParseResult *result; + + size_t datasize = strlen(data); + result = h_parse(document, (void*)data, datasize); + if((result != NULL) != expected) { + printf("Test failed: %s\n", data); + } +} + +void test() { + assert_parse(TRUE, ""); + assert_parse(TRUE, "YQ=="); + assert_parse(TRUE, "YXU="); + assert_parse(TRUE, "YXVy"); + assert_parse(TRUE, "QVVSIFNBUkFG"); + assert_parse(TRUE, "QVVSIEhFUlUgU0FSQUY="); + assert_parse(FALSE, "A"); + assert_parse(FALSE, "A="); + assert_parse(FALSE, "A=="); + assert_parse(FALSE, "AAA=="); +} + + #include <stdio.h> int main(int argc, char **argv) @@ -39,6 +68,8 @@ int main(int argc, char **argv) init_parser(); + test(); + inputsize = fread(input, 1, sizeof(input), stdin); fprintf(stderr, "inputsize=%lu\ninput=", inputsize); fwrite(input, 1, inputsize, stderr);