1*d83cc019SAndroid Build Coastguard Worker #include <stdio.h> 2*d83cc019SAndroid Build Coastguard Worker #include <string.h> 3*d83cc019SAndroid Build Coastguard Worker 4*d83cc019SAndroid Build Coastguard Worker #include "settings.h" 5*d83cc019SAndroid Build Coastguard Worker #include "job_list.h" 6*d83cc019SAndroid Build Coastguard Worker #include "executor.h" 7*d83cc019SAndroid Build Coastguard Worker #include "resultgen.h" 8*d83cc019SAndroid Build Coastguard Worker main(int argc,char ** argv)9*d83cc019SAndroid Build Coastguard Workerint main(int argc, char **argv) 10*d83cc019SAndroid Build Coastguard Worker { 11*d83cc019SAndroid Build Coastguard Worker struct settings settings; 12*d83cc019SAndroid Build Coastguard Worker struct job_list job_list; 13*d83cc019SAndroid Build Coastguard Worker struct execute_state state; 14*d83cc019SAndroid Build Coastguard Worker int exitcode = 0; 15*d83cc019SAndroid Build Coastguard Worker 16*d83cc019SAndroid Build Coastguard Worker init_settings(&settings); 17*d83cc019SAndroid Build Coastguard Worker init_job_list(&job_list); 18*d83cc019SAndroid Build Coastguard Worker 19*d83cc019SAndroid Build Coastguard Worker if (!parse_options(argc, argv, &settings)) { 20*d83cc019SAndroid Build Coastguard Worker return 1; 21*d83cc019SAndroid Build Coastguard Worker } 22*d83cc019SAndroid Build Coastguard Worker 23*d83cc019SAndroid Build Coastguard Worker if (!create_job_list(&job_list, &settings)) { 24*d83cc019SAndroid Build Coastguard Worker return 1; 25*d83cc019SAndroid Build Coastguard Worker } 26*d83cc019SAndroid Build Coastguard Worker 27*d83cc019SAndroid Build Coastguard Worker if (settings.list_all) { 28*d83cc019SAndroid Build Coastguard Worker list_all_tests(&job_list); 29*d83cc019SAndroid Build Coastguard Worker return 0; 30*d83cc019SAndroid Build Coastguard Worker } 31*d83cc019SAndroid Build Coastguard Worker 32*d83cc019SAndroid Build Coastguard Worker if (!initialize_execute_state(&state, &settings, &job_list)) { 33*d83cc019SAndroid Build Coastguard Worker return 1; 34*d83cc019SAndroid Build Coastguard Worker } 35*d83cc019SAndroid Build Coastguard Worker 36*d83cc019SAndroid Build Coastguard Worker if (!execute(&state, &settings, &job_list)) { 37*d83cc019SAndroid Build Coastguard Worker exitcode = 1; 38*d83cc019SAndroid Build Coastguard Worker } 39*d83cc019SAndroid Build Coastguard Worker 40*d83cc019SAndroid Build Coastguard Worker if (state.time_left == 0.0) { 41*d83cc019SAndroid Build Coastguard Worker /* 42*d83cc019SAndroid Build Coastguard Worker * Overall timeout happened. Results generation can 43*d83cc019SAndroid Build Coastguard Worker * override this 44*d83cc019SAndroid Build Coastguard Worker */ 45*d83cc019SAndroid Build Coastguard Worker exitcode = 2; 46*d83cc019SAndroid Build Coastguard Worker } 47*d83cc019SAndroid Build Coastguard Worker 48*d83cc019SAndroid Build Coastguard Worker if (!generate_results_path(settings.results_path)) { 49*d83cc019SAndroid Build Coastguard Worker exitcode = 1; 50*d83cc019SAndroid Build Coastguard Worker } 51*d83cc019SAndroid Build Coastguard Worker 52*d83cc019SAndroid Build Coastguard Worker printf("Done.\n"); 53*d83cc019SAndroid Build Coastguard Worker return exitcode; 54*d83cc019SAndroid Build Coastguard Worker } 55