示例#1
0
// 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