Add test for E1 CUUP Setup Failure

This commit is contained in:
Guido Casati
2025-01-24 11:13:17 +01:00
parent beb74b3e62
commit 75b238633c
+42
View File
@@ -294,6 +294,47 @@ static void test_e1_cuup_setup_response(void)
free_e1ap_cuup_setup_response(&cp);
}
// Test for E1AP CU-UP Setup Failure
static void test_e1_cuup_setup_failure(void)
{
e1ap_setup_fail_t orig = {.transac_id = 42,
.cause.type = E1AP_CAUSE_RADIO_NETWORK,
.cause.value = E1AP_RADIO_CAUSE_NORMAL_RELEASE,
.time_to_wait = malloc_or_fail(sizeof(long)),
.crit_diag = malloc_or_fail(sizeof(criticality_diagnostics_t))};
*orig.time_to_wait = 5;
orig.crit_diag->procedure_code = malloc_or_fail(sizeof(*orig.crit_diag->procedure_code));
*orig.crit_diag->procedure_code = 99;
orig.crit_diag->triggering_msg = malloc_or_fail(sizeof(*orig.crit_diag->triggering_msg));
*orig.crit_diag->triggering_msg = TRIGGERING_MSG_SUCCESSFUL_OUTCOME;
orig.crit_diag->procedure_criticality = malloc_or_fail(sizeof(*orig.crit_diag->procedure_criticality));
*orig.crit_diag->procedure_criticality = CRITICALITY_IGNORE;
orig.crit_diag->num_errors = 1;
orig.crit_diag->errors[0].ie_id = 66;
orig.crit_diag->errors[0].error_type = ERROR_TYPE_MISSING;
orig.crit_diag->errors[0].criticality = CRITICALITY_IGNORE;
E1AP_E1AP_PDU_t *encoded = encode_e1ap_cuup_setup_failure(&orig);
E1AP_E1AP_PDU_t *decoded_msg = e1ap_encode_decode(encoded);
e1ap_msg_free(encoded);
e1ap_setup_fail_t decoded = {0};
bool ret = decode_e1ap_cuup_setup_failure(decoded_msg, &decoded);
AssertFatal(ret, "Failed to decode setup failure");
e1ap_msg_free(decoded_msg);
ret = eq_e1ap_cuup_setup_failure(&orig, &decoded);
AssertFatal(ret, "Decoded setup failure doesn't match original");
free_e1ap_cuup_setup_failure(&decoded);
e1ap_setup_fail_t cp = cp_e1ap_cuup_setup_failure(&orig);
ret = eq_e1ap_cuup_setup_failure(&orig, &cp);
AssertFatal(ret, "eq_e1ap_cuup_setup_failure(): copied message doesn't match\n");
free_e1ap_cuup_setup_failure(&cp);
free_e1ap_cuup_setup_failure(&orig);
}
int main()
{
// E1 Bearer Context Setup
@@ -302,5 +343,6 @@ int main()
// E1 Interface Management
test_e1_cuup_setup_request();
test_e1_cuup_setup_response();
test_e1_cuup_setup_failure();
return 0;
}