X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=test.c;h=d853f41f09704927f91dddeed8c9e723d833d6bd;hb=a61c9c6d89ddac7a97bd21ba9d42add41959801a;hp=0ddb75a70cbd021bec1c17629f390416f59ad75d;hpb=3593a1b6b89ff690b8e89a31707468aad014b7b1;p=xonotic%2Fgmqcc.git diff --git a/test.c b/test.c index 0ddb75a..d853f41 100644 --- a/test.c +++ b/test.c @@ -315,7 +315,7 @@ bool task_template_generate(task_template_t *tmpl, char tag, const char *file, s if (strchr(value, '\n')) *strrchr(value, '\n')='\0'; else /* cppcheck: possible nullpointer dereference */ - abort(); + exit(EXIT_FAILURE); /* * Now allocate and set the actual value for the specific tag. Which @@ -428,7 +428,7 @@ bool task_template_parse(const char *file, task_template_t *tmpl, FILE *fp, size if (strrchr(value, '\n')) *strrchr(value, '\n')='\0'; else /* cppcheck: possible null pointer dereference */ - abort(); + exit(EXIT_FAILURE); vec_push(tmpl->comparematch, util_strdup(value)); @@ -644,9 +644,9 @@ bool task_propagate(const char *curdir, size_t *pad, const char *defs) { char buffer[4096]; size_t found = 0; - dir = opendir(curdir); + dir = fs_dir_open(curdir); - while ((files = readdir(dir))) { + while ((files = fs_dir_read(dir))) { snprintf(buffer, sizeof(buffer), "%s/%s", curdir, files->d_name); if (stat(buffer, &directory) == -1) { @@ -777,7 +777,7 @@ bool task_propagate(const char *curdir, size_t *pad, const char *defs) { found ); - closedir(dir); + fs_dir_close(dir); return success; } @@ -790,9 +790,9 @@ void task_precleanup(const char *curdir) { struct dirent *files; char buffer[4096]; - dir = opendir(curdir); + dir = fs_dir_open(curdir); - while ((files = readdir(dir))) { + while ((files = fs_dir_read(dir))) { if (strstr(files->d_name, "TMP") || strstr(files->d_name, ".stdout") || strstr(files->d_name, ".stderr")) @@ -805,7 +805,7 @@ void task_precleanup(const char *curdir) { } } - closedir(dir); + fs_dir_close(dir); } void task_destroy(void) { @@ -943,17 +943,24 @@ bool task_execute(task_template_t *tmpl, char ***line) { * execution this takes more work since a task needs to be generated * from thin air and executed INLINE. */ +#include void task_schedualize(size_t *pad) { + char space[2][64]; bool execute = false; char *data = NULL; char **match = NULL; size_t size = 0; - size_t i; - size_t j; + size_t i = 0; + size_t j = 0; - util_debug("TEST", "found %d tasks, preparing to execute\n", vec_size(task_tasks)); + snprintf(space[0], sizeof(space[0]), "%d", (int)vec_size(task_tasks)); + + for (; i < vec_size(task_tasks); i++) { + memset(space[1], 0, sizeof(space[1])); + snprintf(space[1], sizeof(space[1]), "%d", (int)(i + 1)); + + con_out("test #%u %*s", i + 1, strlen(space[0]) - strlen(space[1]), ""); - for (i = 0; i < vec_size(task_tasks); i++) { util_debug("TEST", "executing task: %d: %s\n", i, task_tasks[i].tmpl->description); /* * Generate a task from thin air if it requires execution in @@ -978,8 +985,6 @@ void task_schedualize(size_t *pad) { task_tasks[i].compiled = false; execute = false; } - - fs_file_flush(task_tasks[i].stdoutlog); } while (fs_file_getline(&data, &size, task_tasks[i].runhandles[2]) != EOF) { /* @@ -996,11 +1001,10 @@ void task_schedualize(size_t *pad) { } fs_file_puts (task_tasks[i].stderrlog, data); - fs_file_flush(task_tasks[i].stdoutlog); } if (!task_tasks[i].compiled && strcmp(task_tasks[i].tmpl->proceduretype, "-fail")) { - con_err("test failure: `%s` (failed to compile) see %s.stdout and %s.stderr [%s]\n", + con_err("failure: `%s` (failed to compile) see %s.stdout and %s.stderr [%s]\n", task_tasks[i].tmpl->description, task_tasks[i].tmpl->tempfilename, task_tasks[i].tmpl->tempfilename, @@ -1010,7 +1014,7 @@ void task_schedualize(size_t *pad) { } if (!execute) { - con_out("test succeeded: `%s` %*s\n", + con_out("succeeded: `%s` %*s\n", task_tasks[i].tmpl->description, (pad[0] + pad[1] - strlen(task_tasks[i].tmpl->description)) + (strlen(task_tasks[i].tmpl->rulesfile) - pad[1]), @@ -1027,7 +1031,7 @@ void task_schedualize(size_t *pad) { if (!task_execute(task_tasks[i].tmpl, &match)) { size_t d = 0; - con_err("test failure: `%s` (invalid results from execution) [%s]\n", + con_err("failure: `%s` (invalid results from execution) [%s]\n", task_tasks[i].tmpl->description, task_tasks[i].tmpl->rulesfile ); @@ -1074,7 +1078,7 @@ void task_schedualize(size_t *pad) { mem_d(match[j]); vec_free(match); - con_out("test succeeded: `%s` %*s\n", + con_out("succeeded: `%s` %*s\n", task_tasks[i].tmpl->description, (pad[0] + pad[1] - strlen(task_tasks[i].tmpl->description)) + (strlen(task_tasks[i].tmpl->rulesfile) - pad[1]),