oap_client_test: print test descr to stderr, check stderr
Related: OS#1592 Change-Id: If1696c8e7bfa696b250f7eac24f08f85f8f492a2
This commit is contained in:
parent
28786bb209
commit
2e109f08c0
|
@ -12,6 +12,7 @@ AM_CFLAGS = \
|
|||
|
||||
EXTRA_DIST = \
|
||||
oap_client_test.ok \
|
||||
oap_client_test.err \
|
||||
$(NULL)
|
||||
|
||||
if HAVE_LIBGTP
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
static void test_oap_api(void)
|
||||
{
|
||||
printf("Testing OAP API\n - Config parsing\n");
|
||||
printf("Testing OAP API\n");
|
||||
|
||||
struct oap_client_config _config;
|
||||
struct oap_client_config *config = &_config;
|
||||
|
@ -43,20 +43,20 @@ static void test_oap_api(void)
|
|||
OSMO_ASSERT(osmo_hexparse("0102030405060708090a0b0c0d0e0f10", config->secret_k, 16) == 16);
|
||||
OSMO_ASSERT(osmo_hexparse("1112131415161718191a1b1c1d1e1f20", config->secret_opc, 16) == 16);
|
||||
|
||||
/* make sure filling with zeros means uninitialized */
|
||||
fprintf(stderr, "- make sure filling with zeros means uninitialized\n");
|
||||
OSMO_ASSERT(state->state == OAP_UNINITIALIZED);
|
||||
|
||||
/* invalid client_id and shared secret */
|
||||
fprintf(stderr, "- invalid client_id and shared secret\n");
|
||||
config->client_id = 0;
|
||||
config->secret_k_present = 0;
|
||||
config->secret_opc_present = 0;
|
||||
OSMO_ASSERT( oap_client_init(config, state) == 0 );
|
||||
OSMO_ASSERT(state->state == OAP_DISABLED);
|
||||
|
||||
/* reset state */
|
||||
fprintf(stderr, "- reset state\n");
|
||||
memset(state, 0, sizeof(*state));
|
||||
|
||||
/* only client_id is invalid */
|
||||
fprintf(stderr, "- only client_id is invalid\n");
|
||||
config->client_id = 0;
|
||||
config->secret_k_present = 1;
|
||||
config->secret_opc_present = 1;
|
||||
|
@ -65,7 +65,7 @@ static void test_oap_api(void)
|
|||
|
||||
memset(state, 0, sizeof(*state));
|
||||
|
||||
/* valid id, but omitted shared_secret (1/2) */
|
||||
fprintf(stderr, "- valid id, but omitted shared_secret (1/2)\n");
|
||||
config->client_id = 12345;
|
||||
config->secret_k_present = 0;
|
||||
config->secret_opc_present = 1;
|
||||
|
@ -74,7 +74,7 @@ static void test_oap_api(void)
|
|||
|
||||
memset(state, 0, sizeof(*state));
|
||||
|
||||
/* valid id, but omitted shared_secret (2/2) */
|
||||
fprintf(stderr, "- valid id, but omitted shared_secret (2/2)\n");
|
||||
config->client_id = 12345;
|
||||
config->secret_k_present = 1;
|
||||
config->secret_opc_present = 0;
|
||||
|
@ -84,7 +84,7 @@ static void test_oap_api(void)
|
|||
memset(state, 0, sizeof(*state));
|
||||
|
||||
|
||||
/* mint configuration */
|
||||
fprintf(stderr, "- mint configuration\n");
|
||||
config->client_id = 12345;
|
||||
config->secret_k_present = 1;
|
||||
config->secret_opc_present = 1;
|
||||
|
@ -92,16 +92,13 @@ static void test_oap_api(void)
|
|||
OSMO_ASSERT( oap_client_init(config, state) == 0 );
|
||||
OSMO_ASSERT(state->state == OAP_INITIALIZED);
|
||||
|
||||
printf(" - AUTN failures\n");
|
||||
|
||||
struct osmo_oap_message oap_rx;
|
||||
struct osmo_oap_message oap_tx;
|
||||
struct msgb *msg_rx;
|
||||
struct msgb *msg_tx;
|
||||
|
||||
fprintf(stderr, "- Missing challenge data\n");
|
||||
memset(&oap_rx, 0, sizeof(oap_rx));
|
||||
|
||||
/* Missing challenge data */
|
||||
oap_rx.message_type = OAP_MSGT_CHALLENGE_REQUEST;
|
||||
oap_rx.rand_present = 0;
|
||||
oap_rx.autn_present = 0;
|
||||
|
@ -110,7 +107,7 @@ static void test_oap_api(void)
|
|||
msgb_free(msg_rx);
|
||||
OSMO_ASSERT(!msg_tx);
|
||||
|
||||
/* AUTN missing */
|
||||
fprintf(stderr, "- AUTN missing\n");
|
||||
osmo_hexparse("0102030405060708090a0b0c0d0e0f10",
|
||||
oap_rx.rand, 16);
|
||||
oap_rx.rand_present = 1;
|
||||
|
@ -119,7 +116,7 @@ static void test_oap_api(void)
|
|||
msgb_free(msg_rx);
|
||||
OSMO_ASSERT(!msg_tx);
|
||||
|
||||
/* RAND missing */
|
||||
fprintf(stderr, "- RAND missing\n");
|
||||
oap_rx.rand_present = 0;
|
||||
osmo_hexparse("cec4e3848a33000086781158ca40f136",
|
||||
oap_rx.autn, 16);
|
||||
|
@ -129,7 +126,7 @@ static void test_oap_api(void)
|
|||
msgb_free(msg_rx);
|
||||
OSMO_ASSERT(!msg_tx);
|
||||
|
||||
/* wrong autn (by one bit) */
|
||||
fprintf(stderr, "- wrong autn (by one bit)\n");
|
||||
osmo_hexparse("0102030405060708090a0b0c0d0e0f10",
|
||||
oap_rx.rand, 16);
|
||||
osmo_hexparse("dec4e3848a33000086781158ca40f136",
|
||||
|
@ -141,12 +138,12 @@ static void test_oap_api(void)
|
|||
msgb_free(msg_rx);
|
||||
OSMO_ASSERT(!msg_tx);
|
||||
|
||||
/* all data correct */
|
||||
fprintf(stderr, "- all data correct\n");
|
||||
osmo_hexparse("cec4e3848a33000086781158ca40f136",
|
||||
oap_rx.autn, 16);
|
||||
msg_rx = oap_client_encoded(&oap_rx);
|
||||
|
||||
/* but refuse to evaluate in uninitialized state */
|
||||
fprintf(stderr, "- but refuse to evaluate in uninitialized state\n");
|
||||
OSMO_ASSERT(state->state == OAP_INITIALIZED);
|
||||
|
||||
state->state = OAP_UNINITIALIZED;
|
||||
|
@ -159,13 +156,12 @@ static void test_oap_api(void)
|
|||
|
||||
state->state = OAP_INITIALIZED;
|
||||
|
||||
/* now everything is correct */
|
||||
printf(" - AUTN success\n");
|
||||
fprintf(stderr, "- now everything is correct\n");
|
||||
/* a successful return value here indicates correct autn */
|
||||
OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == 0);
|
||||
msgb_free(msg_rx);
|
||||
|
||||
/* Expect the challenge response in msg_tx */
|
||||
fprintf(stderr, "- Expect the challenge response in msg_tx\n");
|
||||
OSMO_ASSERT(msg_tx);
|
||||
OSMO_ASSERT(osmo_oap_decode(&oap_tx, msg_tx->data, msg_tx->len) == 0);
|
||||
OSMO_ASSERT(oap_tx.message_type == OAP_MSGT_CHALLENGE_RESULT);
|
||||
|
@ -178,14 +174,13 @@ static void test_oap_api(void)
|
|||
|
||||
struct oap_client_state saved_state = _state;
|
||||
|
||||
printf(" - Registration failure\n");
|
||||
fprintf(stderr, "- Receive registration error for the first time.\n");
|
||||
|
||||
memset(&oap_rx, 0, sizeof(oap_rx));
|
||||
oap_rx.message_type = OAP_MSGT_REGISTER_ERROR;
|
||||
oap_rx.cause = GMM_CAUSE_PROTO_ERR_UNSPEC;
|
||||
msg_rx = oap_client_encoded(&oap_rx);
|
||||
|
||||
/* Receive registration error for the first time. */
|
||||
OSMO_ASSERT(state->registration_failures == 0);
|
||||
OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == 0);
|
||||
OSMO_ASSERT(state->registration_failures == 1);
|
||||
|
@ -196,7 +191,7 @@ static void test_oap_api(void)
|
|||
msgb_free(msg_tx);
|
||||
msg_tx = 0;
|
||||
|
||||
/* Receive registration error for the Nth time. */
|
||||
fprintf(stderr, "- Receive registration error for the Nth time.\n");
|
||||
state->registration_failures = 999;
|
||||
OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == -11);
|
||||
OSMO_ASSERT(!msg_tx);
|
||||
|
@ -206,7 +201,7 @@ static void test_oap_api(void)
|
|||
|
||||
msgb_free(msg_rx);
|
||||
|
||||
printf(" - Registration success\n");
|
||||
fprintf(stderr, "- Registration success\n");
|
||||
|
||||
_state = saved_state;
|
||||
memset(&oap_rx, 0, sizeof(oap_rx));
|
||||
|
@ -236,6 +231,12 @@ int main(int argc, char **argv)
|
|||
msgb_talloc_ctx_init(NULL, 0);
|
||||
osmo_init_logging(&info);
|
||||
|
||||
OSMO_ASSERT(osmo_stderr_target);
|
||||
osmo_stderr_target->use_color = 0;
|
||||
osmo_stderr_target->print_timestamp = 0;
|
||||
osmo_stderr_target->print_filename = 0;
|
||||
osmo_stderr_target->print_category = 1;
|
||||
|
||||
test_oap_api();
|
||||
printf("Done\n");
|
||||
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
- make sure filling with zeros means uninitialized
|
||||
- invalid client_id and shared secret
|
||||
- reset state
|
||||
- only client_id is invalid
|
||||
- valid id, but omitted shared_secret (1/2)
|
||||
DGPRS OAP: client ID set, but secret K missing.
|
||||
- valid id, but omitted shared_secret (2/2)
|
||||
DGPRS OAP: client ID set, but secret OPC missing.
|
||||
- mint configuration
|
||||
- Missing challenge data
|
||||
DGPRS OAP challenge incomplete (rand_present: 0, autn_present: 0)
|
||||
- AUTN missing
|
||||
DGPRS OAP challenge incomplete (rand_present: 1, autn_present: 0)
|
||||
- RAND missing
|
||||
DGPRS OAP challenge incomplete (rand_present: 0, autn_present: 1)
|
||||
- wrong autn (by one bit)
|
||||
DGPRS OAP: AUTN mismatch!
|
||||
DGPRS OAP: AUTN from server: dec4e3848a33000086781158ca40f136
|
||||
DGPRS OAP: AUTN expected: cec4e3848a33000086781158ca40f136
|
||||
- all data correct
|
||||
- but refuse to evaluate in uninitialized state
|
||||
- now everything is correct
|
||||
- Expect the challenge response in msg_tx
|
||||
- Receive registration error for the first time.
|
||||
DGPRS OAP registration failed
|
||||
- Receive registration error for the Nth time.
|
||||
DGPRS OAP registration failed
|
||||
- Registration success
|
|
@ -1,7 +1,2 @@
|
|||
Testing OAP API
|
||||
- Config parsing
|
||||
- AUTN failures
|
||||
- AUTN success
|
||||
- Registration failure
|
||||
- Registration success
|
||||
Done
|
||||
|
|
|
@ -108,7 +108,8 @@ AT_SETUP([oap])
|
|||
AT_KEYWORDS([oap])
|
||||
AT_CHECK([test "$enable_oap_test" != no || exit 77])
|
||||
cat $abs_srcdir/oap/oap_client_test.ok > expout
|
||||
AT_CHECK([$abs_top_builddir/tests/oap/oap_client_test], [], [expout], [ignore])
|
||||
cat $abs_srcdir/oap/oap_client_test.err > experr
|
||||
AT_CHECK([$abs_top_builddir/tests/oap/oap_client_test], [], [expout], [experr])
|
||||
AT_CLEANUP
|
||||
|
||||
AT_SETUP([gtphub])
|
||||
|
|
Loading…
Reference in New Issue