// main function int main(int argc, char *argv[]) { // options enum {RUN_ALL, // run all tests RUN_ALL_RANDOM, // run all tests (random order) RUN_SINGLE_TEST, // run just a single test RUN_SINGLE_PACKAGE, // run just a single package RUN_SEARCH } mode = RUN_ALL; // set defaults unsigned int autotest_id = 0; unsigned int package_id = 0; int verbose = 1; int stop_on_fail = 0; int rseed = 0; char search_string[128] = ""; char filename[256] = ""; unsigned int i; // get input options int d; while((d = getopt(argc,argv,"ht:p:rLlxs:vqo:")) != EOF){ switch (d) { case 'h': usage(); return 0; case 't': autotest_id = atoi(optarg); mode = RUN_SINGLE_TEST; break; case 'p': package_id = atoi(optarg); mode = RUN_SINGLE_PACKAGE; break; case 'r': mode = RUN_ALL_RANDOM; break; case 'L': // list packages, scripts and exit print_test_list(); return 0; case 'l': // list only packages and exit print_package_list(); return 0; case 'x': stop_on_fail = 1; break; case 's': mode = RUN_SEARCH; strncpy(search_string, optarg, 128); search_string[127] = '\0'; break; case 'v': verbose = 1; liquid_autotest_verbose = 1; break; case 'q': verbose = 0; liquid_autotest_verbose = 0; break; case 'o': strncpy(filename,optarg,255); filename[255] = '\0'; break; default: return 1; } } // validate results if (autotest_id >= NUM_AUTOSCRIPTS) { printf("error, cannot run autotest %u; index exceeded\n", autotest_id); return -1; } else if (package_id >= NUM_PACKAGES) { printf("error, cannot run package %u; index exceeded\n", package_id); return -1; } unsigned int n=0; switch (mode) { case RUN_ALL: for (i=0; i<NUM_PACKAGES; i++) { execute_package( &packages[i], verbose ); n++; if (stop_on_fail && liquid_autotest_num_failed > 0) break; } for (i=0; i<n; i++) { if (verbose) print_package_results( &packages[i] ); } break; case RUN_ALL_RANDOM: // initialize with large random number i = (rseed + 8191) % NUM_AUTOSCRIPTS; while (n < NUM_AUTOSCRIPTS) { i = (i + 524287) % NUM_AUTOSCRIPTS; while (scripts[i].executed) { i++; if (i >= NUM_AUTOSCRIPTS) i %= NUM_AUTOSCRIPTS; } printf("executing test %4u (%4u / %4u)\n", i, n+1, NUM_AUTOSCRIPTS); execute_autotest( &scripts[i], verbose ); n++; if (stop_on_fail && liquid_autotest_num_failed > 0) break; } for (i=0; i<n; i++) { if (verbose) print_autotest_results( &scripts[i] ); } break; case RUN_SINGLE_TEST: execute_autotest( &scripts[autotest_id], verbose ); if (verbose) print_autotest_results( &scripts[autotest_id] ); break; case RUN_SINGLE_PACKAGE: execute_package( &packages[package_id], verbose ); if (verbose) print_package_results( &packages[package_id] ); break; case RUN_SEARCH: printf("running all scripts matching '%s'...\n", search_string); // search all packages for (i=0; i<NUM_PACKAGES; i++) execute_package_search( &packages[i], search_string, verbose); // print results for (i=0; i<NUM_PACKAGES; i++) { if (verbose && packages[i].executed) print_package_results( &packages[i] ); } break; } if (liquid_autotest_verbose) print_unstable_tests(); autotest_print_results(); // export results if (strcmp(filename,"")!=0) export_results(filename); return 0; }
int main() { int menu_option=0; srand(time(NULL)); time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); time (&start); while(1) { single.error=0; system("cls"); printf("Fidei Engine v0.96 - Beta\n" "-------------------------\n\n"); printf("Enter 1 to check contact list is correct.\n" "Enter 2 to convert contact list into the rating list.\n" "Enter 3 to perform centrality calculation and save centrality results.\n" "Enter 4 to perform stages 1 - 3 automatically.\n" "Enter 5 to find a user's own rating score.\n" "Enter 6 to find a company's score.\n" "Enter 99 to exit.\n"); scanf("%d",&menu_option); switch(menu_option) { case 1: check_contact_list (); break; case 2: convert_contact_list(); break; case 3: find_m_n(); memory_input(); memory_test(); memory_control(); if (single.harddrive_flag==0) {memory_matrix(); }//end if loop if (single.harddrive_flag==1) {harddrive_matrix(); }//end if loop export_results(); time (&end); single.time_taken = difftime (end, start); printf("Processing time was: %4.0f seconds. \n",single.time_taken); getchar(); free_memory(); //insert functions break; case 4: //insert case 1 and 2 functions check_contact_list (); convert_contact_list(); find_m_n(); memory_input(); memory_test(); memory_control(); if (single.harddrive_flag==0) {memory_matrix(); }//end if loop if (single.harddrive_flag==1) {harddrive_matrix(); }//end if loop export_results(); time (&end); single.time_taken = difftime (end, start); printf("Processing time was: %4.0f seconds. \n",single.time_taken); getchar(); free_memory(); break; case 5: find_users_score(); break; case 6: company_rating(); break; case 99: exit(1); default: printf("\n\nYou have not chosen a valid selection. Please re-try.\n\n"); getchar(); system("cls"); break; }//end switch }//end while loop };//end main