mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-03-22 02:31:28 +00:00
Fix the testsuite to properly error on failed loads
This commit is contained in:
parent
797ceb9e04
commit
967254f7f2
2 changed files with 19 additions and 11 deletions
28
test.c
28
test.c
|
@ -599,6 +599,7 @@ bool task_propagate(const char *curdir) {
|
|||
struct dirent *files;
|
||||
struct stat directory;
|
||||
char buffer[4096];
|
||||
size_t found = 0;
|
||||
|
||||
dir = opendir(curdir);
|
||||
|
||||
|
@ -625,6 +626,7 @@ bool task_propagate(const char *curdir) {
|
|||
task_t task;
|
||||
|
||||
util_debug("TEST", "compiling task template: %s/%s\n", curdir, files->d_name);
|
||||
found ++;
|
||||
if (!template) {
|
||||
con_err("error compiling task template: %s\n", files->d_name);
|
||||
success = false;
|
||||
|
@ -687,6 +689,11 @@ bool task_propagate(const char *curdir) {
|
|||
}
|
||||
}
|
||||
|
||||
util_debug("TEST", "compiled %d task template files out of %d\n",
|
||||
vec_size(task_tasks),
|
||||
found
|
||||
);
|
||||
|
||||
closedir(dir);
|
||||
return success;
|
||||
}
|
||||
|
@ -879,7 +886,10 @@ void task_schedualize() {
|
|||
size_t size = 0;
|
||||
size_t i;
|
||||
|
||||
util_debug("TEST", "found %d tasks, preparing to execute\n", vec_size(task_tasks));
|
||||
|
||||
for (i = 0; i < vec_size(task_tasks); i++) {
|
||||
util_debug("TEST", "executing task: %d: %s\n", i, task_tasks[i].template->description);
|
||||
/*
|
||||
* Generate a task from thin air if it requires execution in
|
||||
* the QCVM.
|
||||
|
@ -899,6 +909,10 @@ void task_schedualize() {
|
|||
*/
|
||||
while (util_getline(&data, &size, task_tasks[i].runhandles[1]) != EOF) {
|
||||
fputs(data, task_tasks[i].stdoutlog);
|
||||
|
||||
if (strstr(data, "failed to open file"))
|
||||
execute = false;
|
||||
|
||||
fflush(task_tasks[i].stdoutlog);
|
||||
}
|
||||
while (util_getline(&data, &size, task_tasks[i].runhandles[2]) != EOF) {
|
||||
|
@ -919,18 +933,11 @@ void task_schedualize() {
|
|||
fflush(task_tasks[i].stdoutlog);
|
||||
}
|
||||
|
||||
/*
|
||||
* If we can execute we do so after all data has been read and
|
||||
* this paticular task has coupled execution in its procedure type
|
||||
*/
|
||||
if (!execute)
|
||||
continue;
|
||||
|
||||
/*
|
||||
* If we made it here that concludes the task is to be executed
|
||||
* in the virtual machine.
|
||||
*/
|
||||
if (!task_execute(task_tasks[i].template)) {
|
||||
if (!execute || !task_execute(task_tasks[i].template)) {
|
||||
con_err("test failure: `%s` [%s] see %s.stdout and %s.stderr\n",
|
||||
task_tasks[i].template->description,
|
||||
(task_tasks[i].template->failuremessage) ?
|
||||
|
@ -1015,8 +1022,9 @@ static bool parsecmd(const char *optname, int *argc_, char ***argv_, char **out,
|
|||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
char *redirout = (char*)stdout;
|
||||
char *redirerr = (char*)stderr;
|
||||
char *redirout = (char*)stdout;
|
||||
char *redirerr = (char*)stderr;
|
||||
|
||||
con_init();
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
I: typtedefs.qc
|
||||
I: typedefs.qc
|
||||
D: typedefs
|
||||
T: -execute
|
||||
C: -std=fteqcc
|
||||
|
|
Loading…
Reference in a new issue