int main() { int mode = -1, timeout; test_begin: DEBUG("Select test mode: 0--Master,1--Slave.\n"); scanf("%d", &mode); if(mode == HOTKNOT_MASTER_END) { DEBUG("Input timeout count(time = count*50ms).\n"); scanf("%d", &timeout); DEBUG("Mode:MASTER, timeout:%d (x50ms)\n", timeout); factory_test(mode, timeout); } else if(mode == HOTKNOT_SLAVE_END) { DEBUG("Mode:SLAVE\n"); while(1) { factory_test(mode, 0); } } else { DEBUG("Invalid test mode,please select again.\n"); goto test_begin; } return 0; }
void test_run(void) { initialize(); #if TEST_CASE == LOGIC_TEST logic_test(); #elif TEST_CASE == TIMER_TEST timer_test(); #elif TEST_CASE == COMPONENT_TEST component_test(); #elif TEST_CASE == PROTOCOL_TEST protocol_test(); #elif TEST_CASE == POWER_TEST power_test(); #elif TEST_CASE == IDLE_TEST idle_test(); #elif TEST_CASE == STATE_TEST state_test(); #elif TEST_CASE == WORK_TEST work_test(); #elif TEST_CASE == FILE_TEST file_test(); #elif TEST_CASE == PICTURE_TEST picture_test(); #elif TEST_CASE == CONSUME_POWER consume_power(); #elif TEST_CASE == INIT_FILE init_file(); #elif TEST_CASE == FACTORY_TEST factory_test(); #elif TEST_CASE == MOBILE_STATE_TEST mobile_state_test(); #elif TEST_CASE == MESSAGE_REPLY_TEST message_reply_test(); #elif TEST_CASE == TF_TEST tf_test(); #elif TEST_CASE == SCREEN_TEST screen_test(); #elif TEST_CASE == UPGRADE_TEST upgrade_test(); #elif TEST_CASE == MOBILE_TEST mobile_test(); #endif }
static void *hotknot_handler(void *priv) { int i, pend, k = 0; struct hotknot *keys = (struct hotknot *)priv; struct itemview *iv = keys->iv; int count = 1, chkcnt = 10; int init_status, ret = -1; DEBUG("%s, %d\n", __FUNCTION__, __LINE__); //init NFC driver memset(keys->info, '\n', INFO_SIZE); sprintf(keys->info, "%s\n",uistr_info_hotknot_mode_select); iv->redraw(iv); sleep(1); init_status = 0; DEBUG("%s, %d\n", __FUNCTION__, __LINE__); if(init_status != 0) // nfc init fail { //memset(nfc->info, '\n', INFO_SIZE); //sprintf(nfc->info, "NFC failed! (%d)\n", init_status); //sprintf(nfc->info, "%s,%s\n", uistr_nfc,uistr_info_test_fail); //iv->redraw(iv); DEBUG("%s, %d\n", __FUNCTION__, __LINE__); } else { int exitThread = 0; //memset(keys->info, '\n', INFO_SIZE); //iv->redraw(iv); DEBUG("%s, %d\n", __FUNCTION__, __LINE__); while (!exitThread) { usleep(100000); // wake up every 0.1sec DEBUG("%s, %d\n", __FUNCTION__, __LINE__); if( k++ == 10) { DEBUG("[%s]TestItem_hotknot = %d\n", __FUNCTION__, TestItem_hotknot); k = 0; } if(TestItem_hotknot == ITEM_HOTKNOT_MASTER) { memset(keys->info, '\n', INFO_SIZE); sprintf(keys->info, "%s\n",uistr_info_hotknot_master); iv->redraw(iv); //timeout 10s: 10*1000/50 DEBUG("Master mode test\n"); ret = factory_test(HOTKNOT_MASTER_END, 10*1000/50, false); if(ret == 0) { memset(keys->info, '\n', INFO_SIZE); sprintf(keys->info, "%s\n",uistr_info_hotknot_pass); iv->redraw(iv); DEBUG("Master mode pass\n"); keys->mod->test_result = FTM_TEST_PASS; TestItem_hotknot = -1; } else { memset(keys->info, '\n', INFO_SIZE); sprintf(keys->info, "%s\n",uistr_info_hotknot_fail); iv->redraw(iv); DEBUG("Master mode fail\n"); keys->mod->test_result = FTM_TEST_FAIL; TestItem_hotknot = -1; } } if(TestItem_hotknot == ITEM_HOTKNOT_SLAVE) { usleep(2000*1000); memset(keys->info, '\n', INFO_SIZE); sprintf(keys->info, "%s\n",uistr_info_hotknot_slave); iv->redraw(iv); usleep(2000*1000); DEBUG("Slave mode test\n"); ret = factory_test(HOTKNOT_SLAVE_END, -1, keys->exit_thd); if(ret == 0) { memset(keys->info, '\n', INFO_SIZE); sprintf(keys->info, "%s\n",uistr_info_hotknot_pass); iv->redraw(iv); DEBUG("Slave mode pass\n"); //keys->mod->test_result = FTM_TEST_PASS; //break; } else { memset(keys->info, '\n', INFO_SIZE); sprintf(keys->info, "%s\n",uistr_info_hotknot_fail); iv->redraw(iv); DEBUG("Slave mode fail\n"); //keys->mod->test_result = FTM_TEST_FAIL; //break; } } if (keys->exit_thd) { //LOGD(TAG "%s, nfc->exit_thd = true,exitThread,%d\n", __FUNCTION__,exitThread); DEBUG("%s, nfc->exit_thd = true,exitThread,%d\n", __FUNCTION__,exitThread); exitThread = 1; break; } } } DEBUG("%s, %d\n", __FUNCTION__, __LINE__); pthread_exit(NULL); // thread exit return NULL; }