1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| #include "../main/project_XXX/cmd_line_parser.h"
#include <string>
#define TEST_INVALID(PARAM, ERROR_ID) \
(PARAM.selected_switch == SWITCH_NONE) && (PARAM.list_values.size() == 0) && \
(PARAM.param_error == ERROR_ID) && (!PARAM.has_no_error) && \
(!PARAM.has_AID == 0) && (!PARAM.has_key == 0) && (PARAM.index_filename == 0) && \
(PARAM.has_port == false) && (PARAM.port == 0)
#define TEST_PARAM(PARAM, SWITCH_ID, AID, APK1) \
(PARAM.selected_switch == SWITCH_ID) && (PARAM.list_values.size() == 2) && \
(PARAM.param_error == P_ERR_NONE) && PARAM.has_no_error && \
(PARAM.index_AID > 0) && (PARAM.index_AID <= 2) && (PARAM.list_values[(size_t) (PARAM.index_AID - 1)] == AID) && \
(PARAM.index_APK1 > 0) && (PARAM.index_APK1 <= 2) && \
(PARAM.list_values[(size_t) (PARAM.index_APK1 - 1)] == APK1) && \
(PARAM.index_filename == 0) && \
(PARAM.has_port == false) && (PARAM.port == 0)
#define TEST_PARAM_FILENAME(PARAM, SWITCH_ID, FILENAME) \
(PARAM.selected_switch == SWITCH_ID) && (PARAM.list_values.size() == 1) && \
(PARAM.index_AID == 0) && (PARAM.index_APK1 == 0) && (PARAM.index_filename == 1) && \
(PARAM.list_values[(size_t) (PARAM.index_filename - 1)] == FILENAME) && \
(PARAM.has_port == false) && (PARAM.port == 0)
#define TEST_PARAM_WITH_PORT(PARAM, PORT, SWITCH_ID, AID, APK1) \
(PARAM.selected_switch == SWITCH_ID) && (PARAM.list_values.size() == 2) && \
(PARAM.param_error == P_ERR_NONE) && PARAM.has_no_error && \
(PARAM.index_AID > 0) && (PARAM.index_AID <= 2) && (PARAM.list_values[(size_t) (PARAM.index_AID - 1)] == AID) && \
(PARAM.index_APK1 > 0) && (PARAM.index_APK1 <= 2) && \
(PARAM.list_values[(size_t) (PARAM.index_APK1 - 1)] == APK1) && \
(PARAM.index_filename == 0) && \
PARAM.has_port && (PARAM.port == PORT)
#define TEST_params1_WITH_PORT(PARAM, PORT) \
(PARAM.selected_switch == SWITCH_GET_CARD_TYPE) && (PARAM.list_values.size() == 0) && \
(PARAM.param_error == P_ERR_NONE) && PARAM.has_no_error && \
(PARAM.index_AID == 0) && (PARAM.index_APK1 == 0) && (PARAM.index_filename == 0) && \
PARAM.has_port && (PARAM.port == PORT)
#define TEST_params2_WITH_PORT(PARAM, PORT, FILENAME) \
(PARAM.selected_switch == SWITCH_DEBUG) && (PARAM.list_values.size() == 1) && \
(PARAM.param_error == P_ERR_NONE) && PARAM.has_no_error && \
(PARAM.index_AID == 0) && (PARAM.index_APK1 == 0) && (PARAM.index_filename == 1) && \
(PARAM.list_values[(size_t) (PARAM.index_filename - 1)] == FILENAME) && \
PARAM.has_port && (PARAM.port == PORT)
#define TEST_VALID(PARAM, SWITCH_ID) \
(PARAM.selected_switch == SWITCH_ID) && (PARAM.list_values.size() == 0) && \
(PARAM.param_error == P_ERR_NONE) && PARAM.has_no_error && \
(PARAM.index_AID == 0) && (PARAM.index_APK1 == 0) && (PARAM.index_filename == 0) && \
(PARAM.has_port == false) && (PARAM.port == 0)
void test_parser(void)
{/*
Command_Feeder feeder(0, NULL);
Input_Params params1;
Input_Params params2;
Input_Params params3;
Input_Params params4;
Input_Params params5;
Input_Params params6;
Input_Params params7;
unsigned char c = 1;
{
char* argv1[4] = {"XXX", "-card_agent_get_id", "0E7500", "12345678901234567890123456789012"};
char* argv2[4] = {"XXX", "-card_agent_get_i", "0E7500", "12345678901234567890123456789012"};
char* argv3[4] = {"XXX", "-card_agent_get_id1", "0E7500", "12345678901234567890123456789012"};
parse(4, argv1, params1, false); // <- param.clear();
parse(4, argv2, params2, false); // <- param.clear();
parse(4, argv3, params3, false); // <- param.clear();
std::printf("Test %2u.1 - card_agent_get_id: %s\n", c, ((TEST_PARAM(params1, SWITCH_CARD_AGENT_GET_ID, argv1[2], argv1[3]))? "Success": "Error"));
std::printf("Test %2u.2 - card_agent_get_id: %s\n", c, (( TEST_INVALID(params2, P_ERR_INVALID_COMMAND) )? "Success": "Error"));
std::printf("Test %2u.3 - card_agent_get_id: %s\n", c, (( TEST_INVALID(params3, P_ERR_INVALID_COMMAND) )? "Success": "Error"));
}
++c;
{
char* argv1[2] = {"XXX", "-card_prog_read"};
char* argv2[2] = {"XXX", "-card_prog_rea"};
char* argv3[2] = {"XXX", "-card_prog_read1"};
parse(2, argv1, params1, false); // <- param.clear();
parse(2, argv2, params2, false); // <- param.clear();
parse(2, argv3, params3, false); // <- param.clear();
std::printf("Test %2u.1 - card_prog_read: %s\n", c, (( TEST_VALID(params1, SWITCH_CARD_PROG_READ) )? "Success": "Error"));
std::printf("Test %2u.2 - card_prog_read: %s\n", c, (( TEST_INVALID(params2, P_ERR_INVALID_COMMAND) )? "Success": "Error"));
std::printf("Test %2u.3 - card_prog_read: %s\n", c, (( TEST_INVALID(params3, P_ERR_INVALID_COMMAND) )? "Success": "Error"));
}
++c;
// ...
} |
Partager