Skip to content

Commit 739c92c

Browse files
pdcp: add log spy to RX test and check warnings and errors
1 parent 3fc5745 commit 739c92c

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

tests/unittests/pdcp/pdcp_rx_test.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ TEST_P(pdcp_rx_test, create_new_entity)
2525

2626
ASSERT_NE(pdcp_rx, nullptr);
2727
ASSERT_NE(test_frame, nullptr);
28+
29+
// No warnings or errors during construction
30+
EXPECT_EQ(test_spy.get_warning_counter(), 0);
31+
EXPECT_EQ(test_spy.get_error_counter(), 0);
2832
}
2933

3034
/// Test extraction of PDCP sequence numbers
@@ -54,6 +58,10 @@ TEST_P(pdcp_rx_test, sn_unpack)
5458
} else {
5559
FAIL();
5660
}
61+
62+
// No warnings or errors
63+
EXPECT_EQ(test_spy.get_warning_counter(), 0);
64+
EXPECT_EQ(test_spy.get_error_counter(), 0);
5765
}
5866

5967
/// Test in-order reception of PDCP PDUs
@@ -95,6 +103,10 @@ TEST_P(pdcp_rx_test, rx_in_order)
95103
} else {
96104
FAIL();
97105
}
106+
107+
// No warnings or errors
108+
EXPECT_EQ(test_spy.get_warning_counter(), 0);
109+
EXPECT_EQ(test_spy.get_error_counter(), 0);
98110
}
99111

100112
/// Test out of order reception of PDUs.
@@ -160,6 +172,10 @@ TEST_P(pdcp_rx_test, rx_out_of_order)
160172
} else {
161173
FAIL();
162174
}
175+
176+
// No warnings or errors
177+
EXPECT_EQ(test_spy.get_warning_counter(), 0);
178+
EXPECT_EQ(test_spy.get_error_counter(), 0);
163179
}
164180

165181
/// Test out of order reception of PDUs.
@@ -209,6 +225,10 @@ TEST_P(pdcp_rx_test, rx_reordering_timer)
209225
} else {
210226
FAIL();
211227
}
228+
229+
// No warnings or errors
230+
EXPECT_EQ(test_spy.get_warning_counter(), 0);
231+
EXPECT_EQ(test_spy.get_error_counter(), 0);
212232
}
213233

214234
/// Test out of order reception of PDUs.
@@ -256,6 +276,10 @@ TEST_P(pdcp_rx_test, rx_reordering_timer_0ms)
256276
} else {
257277
FAIL();
258278
}
279+
280+
// No warnings or errors
281+
EXPECT_EQ(test_spy.get_warning_counter(), 0);
282+
EXPECT_EQ(test_spy.get_error_counter(), 0);
259283
}
260284

261285
/// Test out of order reception of PDUs.
@@ -306,6 +330,10 @@ TEST_P(pdcp_rx_test, rx_reordering_timer_infinite)
306330
} else {
307331
FAIL();
308332
}
333+
334+
// One warning but no errors
335+
EXPECT_EQ(test_spy.get_warning_counter(), 1);
336+
EXPECT_EQ(test_spy.get_error_counter(), 0);
309337
}
310338

311339
/// Test reception of PDUs with bad integrity checks.
@@ -344,6 +372,10 @@ TEST_P(pdcp_rx_test, rx_integrity_fail)
344372
} else {
345373
FAIL();
346374
}
375+
376+
// Three warnings but no errors
377+
EXPECT_EQ(test_spy.get_warning_counter(), 3);
378+
EXPECT_EQ(test_spy.get_error_counter(), 0);
347379
}
348380

349381
/// Test count wrap-around protection for PDCP RX
@@ -383,6 +415,10 @@ TEST_P(pdcp_rx_test, count_wraparound)
383415
};
384416

385417
test_max_count(rx_next_start);
418+
419+
// One warning and one error
420+
EXPECT_EQ(test_spy.get_warning_counter(), 1);
421+
EXPECT_EQ(test_spy.get_error_counter(), 1);
386422
}
387423

388424
/// Test TX SDU buffering.
@@ -420,6 +456,10 @@ TEST_P(pdcp_rx_test, rx_buffer)
420456
wait_pending_crypto();
421457
worker.run_pending_tasks();
422458
FLUSH_AND_ASSERT_EQ(2, test_frame->sdu_queue.size());
459+
460+
// No warnings or errors
461+
EXPECT_EQ(test_spy.get_warning_counter(), 0);
462+
EXPECT_EQ(test_spy.get_error_counter(), 0);
423463
}
424464

425465
///////////////////////////////////////////////////////////////////

tests/unittests/pdcp/pdcp_rx_test.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,26 @@
1111
#pragma once
1212

1313
#include "pdcp_rx_test_helpers.h"
14+
#include "srsran/support/test_utils.h"
1415
#include <gtest/gtest.h>
1516

1617
namespace srsran {
1718

19+
srsran::log_sink_spy& test_spy = []() -> srsran::log_sink_spy& {
20+
if (!srslog::install_custom_sink(
21+
srsran::log_sink_spy::name(),
22+
std::unique_ptr<srsran::log_sink_spy>(new srsran::log_sink_spy(srslog::get_default_log_formatter())))) {
23+
report_fatal_error("Unable to create logger spy");
24+
}
25+
auto* spy = static_cast<srsran::log_sink_spy*>(srslog::find_sink(srsran::log_sink_spy::name()));
26+
if (spy == nullptr) {
27+
report_fatal_error("Unable to create logger spy");
28+
}
29+
30+
srslog::fetch_basic_logger("PDCP", *spy, true);
31+
return *spy;
32+
}();
33+
1834
/// Fixture class for PDCP tests
1935
/// It requires TEST_P() and INSTANTIATE_TEST_SUITE_P() to create/spawn tests for each supported SN size
2036
class pdcp_rx_test : public pdcp_rx_test_helper_default_crypto,
@@ -28,6 +44,9 @@ class pdcp_rx_test : public pdcp_rx_test_helper_default_crypto,
2844
srslog::init();
2945
logger.set_level(srslog::basic_levels::debug);
3046

47+
// reset log spy
48+
test_spy.reset_counters();
49+
3150
// init RLC logger
3251
srslog::fetch_basic_logger("PDCP", false).set_level(srslog::basic_levels::debug);
3352
srslog::fetch_basic_logger("PDCP", false).set_hex_dump_max_size(100);

0 commit comments

Comments
 (0)