bunkum

an old and silly c99 web server with some fun features
Log | Files | Refs | README

commit 4646a3f8e61747636bff2eded1b257b531bcf533
parent 6e0f240c0e241a6608e796151ff69d6591f49d1d
Author: quantumish <freifeld.david@gmail.com>
Date:   Tue, 11 Apr 2023 20:39:00 -0700

Prettify tests some

Diffstat:
Mhttp/request.c | 8++++++++
Mtest.c | 21++++++++++++++++++---
2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/http/request.c b/http/request.c @@ -110,4 +110,12 @@ void test_method_str_to_enum() { assert_method_eq(method_enum("OPTIONS"), OPTIONS); assert_method_eq(method_enum("TRACE"), TRACE); }; + +void test_hdr_parse_accept() { + char* hdr = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"; + shitvec_t mtypes = hdr_parse_accept(hdr); + assert_size_eq(mtypes.vec_sz, 5); + // TODO write the rest of this. +} + #endif diff --git a/test.c b/test.c @@ -59,15 +59,21 @@ void get_symbols(char* path) { fclose(fptr); } - +#define ANSI_RED "\x1b[31m" +#define ANSI_GREEN "\x1b[32m" +#define ANSI_BOLD "\x1b[1m" +#define ANSI_RESET "\x1b[0m" int main(int argc, char** argv) { get_symbols(argv[1]); char path[64] = {0}; sprintf(path, "./%s", argv[1]); void* lib = dlopen(path, RTLD_LAZY); + printf(ANSI_BOLD "Running tests...\n" ANSI_RESET); + size_t passed = 0; + size_t total = (symbols_off-symbols)/MAX_SYMBOL_LEN; for (char* sym = symbols; sym < symbols_off; sym+=MAX_SYMBOL_LEN) { - printf("%s ", sym+5); + printf(" %s ", sym+5); fflush(STDIN_FILENO); bool(*testf)(void) = dlsym(lib, sym); pid_t pid = fork(); @@ -77,8 +83,17 @@ int main(int argc, char** argv) { } else { int status; waitpid(pid, &status, 0); - printf(" [%s]\n", status == 0 ? "GOOD" : "BAD"); + if (status == 0) { + passed += 1; + puts(" " ANSI_GREEN "[GOOD]" ANSI_RESET); + } else { + printf(" " ANSI_RED "[BAD]" ANSI_RESET); + if (status != 1) printf(ANSI_RED " (%d)" ANSI_RESET, status); + printf("\n"); + } } } + printf("\n" ANSI_GREEN "%ld tests" ANSI_RESET " passed, " ANSI_RED "%ld tests" ANSI_RESET " failed.\n" ANSI_RESET, + passed, total-passed); dlclose(lib); }