int main(int argc, char **argv) { if (argc != 2) return EXIT_FAILURE; int back_end_input[2]; int back_end_output[2]; if (pipe(back_end_input)) exit(EXIT_FAILURE); if (pipe(back_end_output)) exit(EXIT_FAILURE); switch (fork()) { case -1: exit(EXIT_FAILURE); case 0: if (dup2(back_end_input[0], STDIN_FILENO) == -1) exit(EXIT_FAILURE); if (dup2(back_end_output[1], STDOUT_FILENO) == -1) exit(EXIT_FAILURE); for (int i = 0; i < 2; i++) { if (close(back_end_input[i])) exit(EXIT_FAILURE); if (close(back_end_output[i])) exit(EXIT_FAILURE); } execl(argv[1], argv[1], (char *)NULL); exit(EXIT_FAILURE); } if (close(back_end_input[0])) exit(EXIT_FAILURE); if (close(back_end_output[1])) exit(EXIT_FAILURE); FILE *bei_file = fdopen(back_end_input[1], "wb"); if (!bei_file) exit(EXIT_FAILURE); FILE *beo_file = fdopen(back_end_output[0], "rb"); if (!beo_file) exit(EXIT_FAILURE); protocol_test(bei_file, beo_file); if (fclose(bei_file)) exit(EXIT_FAILURE); if (fclose(beo_file)) exit(EXIT_FAILURE); return EXIT_SUCCESS; }
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 }