From 856c6f345361c689c195a4819b81b4b45280cbbf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 26 Jun 2010 09:54:51 +0200 Subject: [PATCH] orcc: Add --quiet and --benchmark parameters to generated test programs --- tools/orcc.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/tools/orcc.c b/tools/orcc.c index 8ef26cb..4759f53 100644 --- a/tools/orcc.c +++ b/tools/orcc.c @@ -48,7 +48,7 @@ void help (void) printf(" orcc [OPTION...] INPUT_FILE\n"); printf("\n"); printf("Help Options:\n"); - printf(" -?, --help Show help options\n"); + printf(" -h, --help Show help options\n"); printf("\n"); printf("Application Options:\n"); printf(" -v, --verbose Output more information\n"); @@ -265,13 +265,45 @@ main (int argc, char *argv[]) output_code_backup (programs[i], output); } fprintf(output, "\n"); + fprintf(output, "static int quiet = 0;\n"); + fprintf(output, "static int benchmark = 0;\n"); + fprintf(output, "\n"); + fprintf(output, "static void help (const char *argv0)\n"); + fprintf(output, "{\n"); + fprintf(output, " printf(\"Usage:\\n\");\n"); + fprintf(output, " printf(\" %%s [OPTION]\\n\", argv0);\n"); + fprintf(output, " printf(\"Help Options:\\n\");\n"); + fprintf(output, " printf(\" -h, --help Show help options\\n\");\n"); + fprintf(output, " printf(\"Application Options:\\n\");\n"); + fprintf(output, " printf(\" -b, --benchmark Run benchmark and show results\\n\");\n"); + fprintf(output, " printf(\" -q, --quiet Don't output anything except on failures\\n\");\n"); + fprintf(output, "\n"); + fprintf(output, " exit(0);\n"); + fprintf(output, "}\n"); + fprintf(output, "\n"); fprintf(output, "int\n"); fprintf(output, "main (int argc, char *argv[])\n"); fprintf(output, "{\n"); fprintf(output, " int error = FALSE;\n"); + fprintf(output, " int i;\n"); fprintf(output, "\n"); fprintf(output, " orc_test_init ();\n"); fprintf(output, "\n"); + fprintf(output, " for(i=1;iname); + fprintf(output, " if (!quiet)"); + fprintf(output, " printf (\"%s:\\n\");\n", p->name); fprintf(output, " p = orc_program_new ();\n"); if (p->constant_n != 0) { fprintf(output, " orc_program_set_constant_n (p, %d);\n", @@ -801,17 +834,27 @@ output_code_test (OrcProgram *p, FILE *output) fprintf(output, " ret = orc_test_compare_output_backup (p);\n"); fprintf(output, " if (!ret) {\n"); fprintf(output, " error = TRUE;\n"); - fprintf(output, " } else {\n"); - fprintf(output, " printf (\" backup function passed\\n\");\n"); + fprintf(output, " } else if (!quiet) {\n"); + fprintf(output, " printf (\" backup function : PASSED\\n\");\n"); + fprintf(output, " }\n"); + fprintf(output, "\n"); + fprintf(output, " if (benchmark) {\n"); + fprintf(output, " printf (\" cycles (backup) : \");\n"); + fprintf(output, " orc_test_performance (p, ORC_TEST_FLAGS_BACKUP);\n"); fprintf(output, " }\n"); fprintf(output, "\n"); fprintf(output, " ret = orc_test_compare_output (p);\n"); - fprintf(output, " if (ret == ORC_TEST_INDETERMINATE) {\n"); - fprintf(output, " printf (\" compilation not possible for the target\\n\");\n"); + fprintf(output, " if (ret == ORC_TEST_INDETERMINATE && !quiet) {\n"); + fprintf(output, " printf (\" compiled function: COMPILE FAILED\\n\");\n"); fprintf(output, " } else if (!ret) {\n"); fprintf(output, " error = TRUE;\n"); - fprintf(output, " } else {\n"); - fprintf(output, " printf (\" compiled function passed\\n\");\n"); + fprintf(output, " } else if (!quiet) {\n"); + fprintf(output, " printf (\" compiled function: PASSED\\n\");\n"); + fprintf(output, " }\n"); + fprintf(output, "\n"); + fprintf(output, " if (benchmark) {\n"); + fprintf(output, " printf (\" cycles (compiled): \");\n"); + fprintf(output, " orc_test_performance (p, 0);\n"); fprintf(output, " }\n"); fprintf(output, "\n"); fprintf(output, " orc_program_free (p);\n"); -- 2.7.4