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("compile_parse_test <file.orc>\n");
43 n = orc_parse (code, &programs);
48 printf("%s:\n", programs[i]->name);
49 ret = orc_test_gcc_compile_neon (programs[i]);
50 if (ret == ORC_TEST_FAILED) {
61 read_file (const char *filename)
64 char *contents = NULL;
68 file = fopen (filename, "r");
69 if (file == NULL) return NULL;
71 ret = fseek (file, 0, SEEK_END);
72 if (ret < 0) goto bail;
75 if (size < 0) goto bail;
77 ret = fseek (file, 0, SEEK_SET);
78 if (ret < 0) goto bail;
80 contents = malloc (size + 1);
81 if (contents == NULL) goto bail;
83 ret = fread (contents, size, 1, file);
84 if (ret < 0) goto bail;
90 /* something failed */
91 if (file) fclose (file);
92 if (contents) free (contents);