Skip to content

Commit 2c979f5

Browse files
robertfalkenbergcodebot
authored andcommitted
cu_up: add unit test for n3_ext_addr
1 parent 89a82c0 commit 2c979f5

File tree

2 files changed

+43
-5
lines changed

2 files changed

+43
-5
lines changed

tests/unittests/cu_up/pdu_session_manager_test.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ using namespace srsran;
1616
using namespace srs_cu_up;
1717

1818
/// PDU session handling tests (creation/deletion)
19-
TEST_F(pdu_session_manager_test, when_valid_pdu_session_setup_item_session_can_be_added)
19+
TEST_P(pdu_session_manager_test_set_n3_ext_addr, when_valid_pdu_session_setup_item_session_can_be_added)
2020
{
2121
// no sessions added yet
2222
ASSERT_EQ(pdu_session_mng->get_nof_pdu_sessions(), 0);
@@ -35,6 +35,10 @@ TEST_F(pdu_session_manager_test, when_valid_pdu_session_setup_item_session_can_b
3535
// check successful outcome
3636
ASSERT_TRUE(setup_result.success);
3737
ASSERT_EQ(setup_result.gtp_tunnel.gtp_teid.value(), 1);
38+
const std::string tp_address_expect = net_config.n3_ext_addr.empty() || net_config.n3_ext_addr == "auto"
39+
? net_config.n3_bind_addr
40+
: net_config.n3_ext_addr;
41+
ASSERT_EQ(setup_result.gtp_tunnel.tp_address.to_string(), tp_address_expect);
3842
ASSERT_EQ(setup_result.drb_setup_results[0].gtp_tunnel.gtp_teid.value(), 0);
3943
ASSERT_EQ(pdu_session_mng->get_nof_pdu_sessions(), 1);
4044

@@ -387,6 +391,10 @@ TEST_F(pdu_session_manager_test, when_new_ul_info_is_requested_f1u_is_disconnect
387391
ASSERT_EQ(pdu_session_mng->get_nof_pdu_sessions(), 1);
388392
}
389393

394+
INSTANTIATE_TEST_SUITE_P(pdu_session_manager_test_n3_ext_addr,
395+
pdu_session_manager_test_set_n3_ext_addr,
396+
::testing::Values("", "auto", "1.2.3.4"));
397+
390398
int main(int argc, char** argv)
391399
{
392400
::testing::InitGoogleTest(&argc, argv);

tests/unittests/cu_up/pdu_session_manager_test.h

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,16 @@
1818
using namespace srsran;
1919
using namespace srs_cu_up;
2020

21-
/// Fixture class for UE manager tests
22-
class pdu_session_manager_test : public ::testing::Test
21+
const network_interface_config net_config_default = {};
22+
23+
/// Fixture base class for PDU session manager tests
24+
class pdu_session_manager_test_base
2325
{
2426
protected:
25-
void SetUp() override
27+
virtual ~pdu_session_manager_test_base() = default;
28+
virtual network_interface_config get_net_config() = 0;
29+
30+
void init()
2631
{
2732
srslog::fetch_basic_logger("TEST").set_level(srslog::basic_levels::debug);
2833
srslog::init();
@@ -42,6 +47,7 @@ class pdu_session_manager_test : public ::testing::Test
4247

4348
manual_task_worker teid_worker{128};
4449

50+
net_config = get_net_config();
4551
pdu_session_mng = std::make_unique<pdu_session_manager_impl>(MIN_UE_INDEX,
4652
qos,
4753
security_info,
@@ -63,7 +69,7 @@ class pdu_session_manager_test : public ::testing::Test
6369
gtpu_pcap);
6470
}
6571

66-
void TearDown() override
72+
void finish()
6773
{
6874
// flush logger after each test
6975
srslog::flush();
@@ -86,6 +92,30 @@ class pdu_session_manager_test : public ::testing::Test
8692
cu_up_ue_logger logger{"CU-UP", {MIN_UE_INDEX}};
8793
};
8894

95+
/// Fixture class for PDU session manager tests with default network interface config
96+
class pdu_session_manager_test : public pdu_session_manager_test_base, public ::testing::Test
97+
{
98+
protected:
99+
network_interface_config get_net_config() override { return net_config_default; }
100+
void SetUp() override { init(); }
101+
void TearDown() override { finish(); }
102+
};
103+
104+
/// Fixture class for PDU session manager tests with configurable N3 ext addr
105+
class pdu_session_manager_test_set_n3_ext_addr : public pdu_session_manager_test_base,
106+
public ::testing::TestWithParam<const char*>
107+
{
108+
protected:
109+
network_interface_config get_net_config() override
110+
{
111+
network_interface_config cfg = net_config_default;
112+
cfg.n3_ext_addr = GetParam();
113+
return cfg;
114+
}
115+
void SetUp() override { init(); }
116+
void TearDown() override { finish(); }
117+
};
118+
89119
inline e1ap_pdu_session_res_to_setup_item
90120
generate_pdu_session_res_to_setup_item(pdu_session_id_t psi, drb_id_t drb_id, qos_flow_id_t qfi, five_qi_t five_qi)
91121
{

0 commit comments

Comments
 (0)