static void run_from_file(char *filename) { FILE *tc_file = NULL; int n_failures = 0; char tc[100] = ""; int num_tcs = 0; int len=0; Suite *s = suite_create("GMS Client API"); /* Test Cases for clGmsInitialize and clGmsFinalize APIs */ TCase *sel_tcs = tcase_create("Selected Test"); suite_add_tcase(s, sel_tcs); tc_file = fopen(filename, "r"); if (tc_file == NULL) { perror("Open Failed:"); exit(-1); } while (1) { if (fgets (tc, 100,tc_file) != NULL) { if (tc[0] != '#') { num_tcs++; len=strlen(tc); tc[len-1] = '\0'; tc_add(sel_tcs,tc); } } else { break; } } if (num_tcs == 0) { printf("NO Test cases are specified in the given file\n"); exit(-1); } else { printf("%d test cases are provided\n",num_tcs); } /* Now run the tests */ SRunner *sr = srunner_create(s); /* do not fork; forking seg-faults EO (why?) */ srunner_set_fork_status(sr, CK_NOFORK); srunner_run_all(sr, CK_NORMAL); /* Can also use CK_VERBOSE */ srunner_set_log(sr, "./gms_unit_test_logs.log"); n_failures = srunner_ntests_failed(sr); srunner_free(sr); }
// Gets the local instance of a trace local variable void* get_trace_local(tlv_id id) { int worker_id = 0; int steal_count = __cilkrts_get_steal_count(&worker_id); if (worker_id == 0) { printf("User thread???\n"); exit(1); } else { // Shift back from [1, P] to [0, P-1] worker_id -= 1; } worker_table_t* our_table = &worker_tables[worker_id]; if (our_table->wtrace_info[id].steal_count == steal_count && our_table->wtrace_info[id].view != NULL) { return our_table->wtrace_info[id].view; } trace_initializer initializer = global_table.gtrace_info[id].initializer; void* new_view = (*initializer)(); our_table->wtrace_info[id].view = new_view; tc_add(&REDUCER_VIEW(global_table.gtrace_info[id].reducer), new_view); our_table->wtrace_info[id].steal_count = steal_count; return new_view; }