3 #include <orc-test/orctest.h>
4 #include <orc/orcparse.h>
9 static char * read_file (const char *filename);
10 void output_code (OrcProgram *p, FILE *output);
11 void output_code_header (OrcProgram *p, FILE *output);
12 void output_code_test (OrcProgram *p, FILE *output);
17 main (int argc, char *argv[])
22 OrcProgram **programs;
23 const char *filename = NULL;
31 if (filename == NULL) {
32 filename = getenv ("testfile");
34 if (filename == NULL) {
35 filename = "test.orc";
37 code = read_file (filename);
39 printf("perf_parse <file.orc>\n");
43 n = orc_parse (code, &programs);
46 printf("%-30s %g\n", programs[i]->name,
47 orc_test_performance_full (programs[i], 0, NULL));
56 read_file (const char *filename)
59 char *contents = NULL;
63 file = fopen (filename, "r");
64 if (file == NULL) return NULL;
66 ret = fseek (file, 0, SEEK_END);
67 if (ret < 0) goto bail;
70 if (size < 0) goto bail;
72 ret = fseek (file, 0, SEEK_SET);
73 if (ret < 0) goto bail;
75 contents = malloc (size + 1);
76 if (contents == NULL) goto bail;
78 ret = fread (contents, size, 1, file);
79 if (ret < 0) goto bail;
85 /* something failed */
86 if (file) fclose (file);
87 if (contents) free (contents);