qa: introduce runners and more tests for newlib

For each test, if a script exists with the same name of the test
plus the .runner suffix, the runner is run instead of the test.

As a first example qa/lib/newlib/testsuite/atexit is run by
qa/lib/newlib/testsuite/atexit.runner.

These .runner scripts allow more complex checks of the side effects
generated by the test.
This commit is contained in:
2017-04-28 00:47:12 +02:00
parent ac33157c37
commit 2481b01515
10 changed files with 95 additions and 31 deletions

35
qa/lib/newlib/100-files.c Normal file
View File

@ -0,0 +1,35 @@
#include <stdio.h>
int
main(int argc, char** argv) {
FILE *fp;
int i;
char * output = "/tmp/io-test.txt";
if(argc == 2){
output = argv[1];
}else if(argc > 2){
printf("usage: %s [output]", argv[0]);
return 100;
}
fp = fopen(output, "w+");
if(fp == NULL){
printf("Can't open %s", output);
return 1;
}
i = fprintf(fp, "%s works.\n", "fprintf");
if(i <= 0){
fclose(fp);
printf("Can't write 'fprintf works.' to %s", output);
return 2;
}
i = fputs("fputs works.\n", fp);
if(i == EOF){
fclose(fp);
printf("Can't write 'fputs works.' to %s", output);
return 3;
}
fclose(fp);
return 0;
}