1*4882a593Smuzhiyun 2*4882a593Smuzhiyun #ifndef __TEST_CASE_H__ 3*4882a593Smuzhiyun #define __TEST_CASE_H__ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include<pthread.h> 6*4882a593Smuzhiyun #include"list.h" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #define CATEGORY_AUTO 0 9*4882a593Smuzhiyun #define CATEGORY_MANUAL 1 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define WAIT_COMPLETION 0 12*4882a593Smuzhiyun #define NO_WAIT_COMPLETION 1 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun struct testcase_base_info 15*4882a593Smuzhiyun { 16*4882a593Smuzhiyun char name[32]; 17*4882a593Smuzhiyun char display_name[68]; 18*4882a593Smuzhiyun int activated; 19*4882a593Smuzhiyun char binary[20]; 20*4882a593Smuzhiyun int id; 21*4882a593Smuzhiyun int category; /* 0: auto, 1: manual */ 22*4882a593Smuzhiyun int run_type; 23*4882a593Smuzhiyun }; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun struct testcase_info 26*4882a593Smuzhiyun { 27*4882a593Smuzhiyun pthread_t tid; 28*4882a593Smuzhiyun int err; 29*4882a593Smuzhiyun struct testcase_base_info *base_info; 30*4882a593Smuzhiyun int x; //x,y positon and width height on the screen 31*4882a593Smuzhiyun int y; 32*4882a593Smuzhiyun int w; 33*4882a593Smuzhiyun int h; 34*4882a593Smuzhiyun int dev_id; //default 0,but some device have double,such as camera 35*4882a593Smuzhiyun int result; 36*4882a593Smuzhiyun void *msg; //this is for testcase spefic msg struct 37*4882a593Smuzhiyun void* (*func)(void *argv); //test function 38*4882a593Smuzhiyun struct list_head list; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #define INIT_CMD_PIPE() \ 42*4882a593Smuzhiyun FILE *cmd_pipe; \ 43*4882a593Smuzhiyun int test_case_id; \ 44*4882a593Smuzhiyun if (argc < 4) { \ 45*4882a593Smuzhiyun db_error("%s: invalid parameter, #%d\n", argv[0], argc);\ 46*4882a593Smuzhiyun return -1; \ 47*4882a593Smuzhiyun } \ 48*4882a593Smuzhiyun cmd_pipe = fopen(CMD_PIPE_NAME, "w"); \ 49*4882a593Smuzhiyun setlinebuf(cmd_pipe); \ 50*4882a593Smuzhiyun test_case_id = atoi(argv[3]) 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #define SEND_CMD_PIPE_OK() \ 53*4882a593Smuzhiyun fprintf(cmd_pipe, "%d 0\n", test_case_id) 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun #define SEND_CMD_PIPE_OK_EX(exdata) \ 56*4882a593Smuzhiyun fprintf(cmd_pipe, "%d 0 %s\n", test_case_id, exdata) 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun #define SEND_CMD_PIPE_FAIL() \ 59*4882a593Smuzhiyun fprintf(cmd_pipe, "%d 1\n", test_case_id) 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun #define SEND_CMD_PIPE_FAIL_EX(exdata) \ 62*4882a593Smuzhiyun fprintf(cmd_pipe, "%d 1 %s\n", test_case_id, exdata) 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun #define EXIT_CMD_PIPE() \ 65*4882a593Smuzhiyun fclose(cmd_pipe) 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun #endif /* __TEST_CASE_H__ */ 69