예제 #1
0
파일: tests.c 프로젝트: Debug-Orz/Sypy
tealet_t *random_new_tealet(tealet_t* cur)
{
  int i = got_index;
  assert(i == (ptrdiff_t)(cur->data));
  assert(i > 0 && i < ARRAYSIZE);
  assert(tealetarray[i] == NULL);
  tealetarray[i] = cur;
  random_run(cur, i);
  tealetarray[i] = NULL;
  tealet_delete(cur);

  i = rand() % ARRAYSIZE;
  if (tealetarray[i] == NULL)
    {
      assert(tealetarray[0] != NULL);
      i = 0;
    }
  got_index = i;
  return tealetarray[i];
}
예제 #2
0
static void parse_command_option(gint argc, gchar **argv)
{
	if(argc<2 || g_strcmp0("help", argv[1])==0){
		print_help_page();
	}else{
		if(g_strcmp0("list", argv[1])==0){
			case_tree_init();
			if(argc==2){
				qa_frame_print_case_list();
			}else if(argc==3){
				qa_frame_print_case_list_by_ID(argv[2]);
			}else
				print_help_page();
		}else if(g_strcmp0("random", argv[1])==0){
			int i=2;
			while(i<argc){
				if(g_strcmp0("-t", argv[i])==0){
					if((i+1)<argc && g_ascii_isdigit(argv[i+1][0]))
						g_sys_state.uiMaxSteps = ((guint)g_ascii_strtod(argv[i+1], NULL));
					else{
						printf("Bad parameter for '-t' option.\n");
						g_sys_state.uiMaxSteps = 0;
						break;
					}
					i = i+2;
				}else if(g_strcmp0("-r", argv[i])==0){
					if((i+1)<argc && g_ascii_isdigit(argv[i+1][0]))
						g_sys_state.uiRandSeed = ((guint)g_ascii_strtod(argv[i+1], NULL));
					else{
						printf("Bad parameter for '-r' option.\n");
						g_sys_state.uiRandSeed = 0;
						break;
					}
					i = i+2;				
				}else if(g_ascii_isdigit(argv[i][0])){
					case_tree_init();
					parse_case_ids(argv[i]);
					break;
				}else{
					printf("Bad parameters. see manual page.\n");
					break;
				}
			}

			if(g_sys_state.pCurModule!=NULL 
				&& g_sys_state.uiMaxSteps>0 
				&& g_sys_state.uiRandSeed>0)
				random_run();
			else
				printf("Bad parameters.\n");
		}else if(g_strcmp0("all", argv[1])==0){
			int priority=CASE_WEIGHT_P1|CASE_WEIGHT_P2|CASE_WEIGHT_P3;
			if(argc==4 && g_strcmp0("-priority", argv[2])==0){
				if(g_strcmp0("P1", argv[3])==0 || g_strcmp0("p1", argv[3])==0)
					priority = CASE_WEIGHT_P1;
				else if(g_strcmp0("P2", argv[3])==0 || g_strcmp0("p2", argv[3])==0)
					priority = CASE_WEIGHT_P2;
				else if(g_strcmp0("P3", argv[3])==0 || g_strcmp0("p3", argv[3])==0)
					priority = CASE_WEIGHT_P3;
				else{
					printf("The parameters of priority is bad, see manual page.\n");
					return;
				}
			}
			printf("START ===[MCA_TS]===\n[test_bed][MCA_TS][Init][starting MCA_TS][end]\n");
			case_tree_init();
			qa_frame_run_all_cases(priority);
			printf("END ====[MCA_TS]=====\n[test_bed][MCA_TS][Exit][O_tb_exit()][end]\n");
			
		}else{
			int priority=CASE_WEIGHT_P1|CASE_WEIGHT_P2|CASE_WEIGHT_P3;
			if(argc==4 && g_strcmp0("-priority", argv[2])==0){
				if(g_strcmp0("P1", argv[3])==0 || g_strcmp0("p1", argv[3])==0)
					priority = CASE_WEIGHT_P1;
				else if(g_strcmp0("P2", argv[3])==0 || g_strcmp0("p2", argv[3])==0)
					priority = CASE_WEIGHT_P2;
				else if(g_strcmp0("P3", argv[3])==0 || g_strcmp0("p3", argv[3])==0)
					priority = CASE_WEIGHT_P3;
				else{
					printf("The parameters of priority is bad, see manual page.\n");
					return;
				}
			}
			QA_PRINT(3, ("priority=%d", priority));
			printf("START ===[MCA_TS]===\n[test_bed][MCA_TS][Init][starting MCA_TS][end]\n");
			case_tree_init();
			qa_frame_run_case_by_list(argv[1], priority);
			printf("END ====[MCA_TS]=====\n[test_bed][MCA_TS][Exit][O_tb_exit()][end]\n");
		}
	}

}