Add test for E1 CUUP Setup Request

This commit is contained in:
Guido Casati
2025-01-23 17:34:03 +01:00
parent 414fc2e9a2
commit 8fbfcf48f6
+43 -2
View File
@@ -30,8 +30,10 @@
#include <stdint.h>
#include <stdio.h>
#include "E1AP/lib/e1ap_bearer_context_management.h"
#include "E1AP/lib/e1ap_lib_includes.h"
#include "common/utils/utils.h"
#include "e1ap_bearer_context_management.h"
#include "e1ap_interface_management.h"
#include "e1ap_lib_includes.h"
#include "common/utils/assertions.h"
void exit_function(const char *file, const char *function, const int line, const char *s, const int assert)
@@ -216,10 +218,49 @@ static void test_bearer_context_setup_response(void)
free_e1ap_context_setup_response(&orig);
}
/**
* @brief Test CU-UP Setup Request encoding/decoding
*/
static void test_e1_cuup_setup_request(void)
{
e1ap_setup_req_t orig = {.gNB_cu_up_id = 1234,
.gNB_cu_up_name = strdup("OAI CU-UP"),
.transac_id = 42,
.supported_plmns = 1,
.cn_support = cn_support_5GC,
.plmn[0] = {.id = {.mcc = 001, .mnc = 01, .mnc_digit_length = 2},
.supported_slices = 1}};
orig.plmn[0].slice = malloc_or_fail(sizeof(*orig.plmn[0].slice));
orig.plmn[0].slice->sst = 0x01;
orig.plmn[0].slice->sd = 0x01;
E1AP_E1AP_PDU_t *encoded = encode_e1ap_cuup_setup_request(&orig);
E1AP_E1AP_PDU_t *decoded_msg = e1ap_encode_decode(encoded);
e1ap_msg_free(encoded);
e1ap_setup_req_t decoded = {0};
bool ret = decode_e1ap_cuup_setup_request(decoded_msg, &decoded);
AssertFatal(ret, "Failed to decode setup request");
e1ap_msg_free(decoded_msg);
ret = eq_e1ap_cuup_setup_request(&orig, &decoded);
AssertFatal(ret, "Decoded setup request doesn't match original");
free_e1ap_cuup_setup_request(&decoded);
e1ap_setup_req_t cp = cp_e1ap_cuup_setup_request(&orig);
ret = eq_e1ap_cuup_setup_request(&orig, &cp);
AssertFatal(ret, "eq_e1ap_cuup_setup_request(): copied message doesn't match\n");
free_e1ap_cuup_setup_request(&orig);
free_e1ap_cuup_setup_request(&cp);
}
int main()
{
// E1 Bearer Context Setup
test_bearer_context_setup_request();
test_bearer_context_setup_response();
// E1 Interface Management
test_e1_cuup_setup_request();
return 0;
}