X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Tools%2FNetTest_Runner%2Fmain.c;h=5c175d71e8d60f633478c560fc7168b5c96c71e3;hb=9c4eedf4893f851bd1ba60ce541c8d098a9ef7f7;hp=0c2b6c061d387ca3303f328f333acb1ac26ca474;hpb=e9b63a7cc8abab8dfc2b491ef3841dfbeb22703d;p=tpg%2Facess2.git diff --git a/Tools/NetTest_Runner/main.c b/Tools/NetTest_Runner/main.c index 0c2b6c06..5c175d71 100644 --- a/Tools/NetTest_Runner/main.c +++ b/Tools/NetTest_Runner/main.c @@ -23,42 +23,54 @@ int main(int argc, char *argv[]) return 1; typedef bool t_test(void); - t_test *tests[] = { - Test_ARP_Basic, - Test_TCP_Basic, - NULL + struct { + t_test *fcn; + const char *name; + } tests[] = { + #define _(fcn) {fcn, #fcn} + _(Test_ARP_Basic), + _(Test_TCP_Basic), + //_(Test_TCP_WindowSizes), + _(Test_TCP_Reset), + {NULL,NULL} }; + // Truncate the two output files // TODO: Move to stack.c - FILE *fp; - fp = fopen("stdout.txt", "w"); fclose(fp); - fp = fopen("stderr.txt", "w"); fclose(fp); + fclose( fopen("stdout.txt", "w") ); + fclose( fopen("stderr.txt", "w") ); Net_Open(0, "/tmp/acess2net"); - for(int i = 0; tests[i]; i ++ ) + int n_pass = 0; + int n_fail = 0; + for(int i = 0; tests[i].fcn; i ++ ) { Stack_AddDevice("/tmp/acess2net", (char[]){TEST_MAC}); Stack_AddInterface("eth0", 4, (const char[]){TEST_IP}, 24); Stack_AddRoute(4, "\0\0\0\0", 0, (const char[]){HOST_IP}); - if( Stack_Start("cmdline") ) + if( Stack_Start(tests[i].name, "cmdline") ) goto teardown; if( Net_Receive(0, 1, &argc, 1000) == 0 ) goto teardown; - if( tests[i]() ) - printf("%s: PASS\n", gsTestName); + bool result = tests[i].fcn(); + + printf("%s: %s\n", gsTestName, (result ? "PASS" : "FAIL")); + if(result) + n_pass ++; else - printf("%s: FAIL\n", gsTestName); + n_fail ++; teardown: Stack_Kill(); } Net_Close(0); unlink("/tmp/acess2net"); + printf("--- All tests done %i pass, %i fail\n", n_pass, n_fail); - return 0; + return n_fail; } void PrintUsage(const char *ProgName)