Adding PDCP LTE SRB1 test. Test failing for now.

This commit is contained in:
Pedro Alvarez 2020-02-18 19:12:29 +00:00 committed by Andre Puschmann
parent 284a0f7b4e
commit dbb5c6c06c
3 changed files with 40 additions and 7 deletions

View File

@ -100,15 +100,35 @@ private:
class rrc_dummy : public srsue::rrc_interface_pdcp
{
public:
rrc_dummy(srslte::log* log_) {}
rrc_dummy(srslte::log* log_) { log = log_; }
void write_pdu(uint32_t lcid, srslte::unique_byte_buffer_t pdu) {}
void write_pdu_bcch_bch(srslte::unique_byte_buffer_t pdu) {}
void write_pdu_bcch_dlsch(srslte::unique_byte_buffer_t pdu) {}
void write_pdu_pcch(srslte::unique_byte_buffer_t pdu) {}
void write_pdu_mch(uint32_t lcid, srslte::unique_byte_buffer_t pdu) {}
std::string get_rb_name(uint32_t lcid) { return "None"; }
srslte::log* log;
// Members for testing
uint32_t rx_count = 0;
srslte::unique_byte_buffer_t last_pdu;
// Methods for testing
void get_last_pdu(const srslte::unique_byte_buffer_t& pdu)
{
memcpy(pdu->msg, last_pdu->msg, last_pdu->N_bytes);
pdu->N_bytes = last_pdu->N_bytes;
return;
}
void write_pdu(uint32_t lcid, srslte::unique_byte_buffer_t pdu)
{
log->info_hex(pdu->msg, pdu->N_bytes, "RRC PDU");
rx_count++;
last_pdu.swap(pdu);
}
};
class gw_dummy : public srsue::gw_interface_pdcp

View File

@ -55,7 +55,7 @@ pdcp_security_cfg sec_cfg = {
k_int,
k_enc,
srslte::INTEGRITY_ALGORITHM_ID_128_EIA2,
srslte::CIPHERING_ALGORITHM_ID_128_EEA2,
srslte::CIPHERING_ALGORITHM_ID_EEA0,
};
// Test SDUs for tx

View File

@ -46,6 +46,7 @@ int test_rx(std::vector<pdcp_test_event_t> events,
pdcp_lte_test_helper pdcp_hlp_rx(cfg_rx, sec_cfg, log);
srslte::pdcp_entity_lte* pdcp_rx = &pdcp_hlp_rx.pdcp;
gw_dummy* gw_rx = &pdcp_hlp_rx.gw;
rrc_dummy* rrc_rx = &pdcp_hlp_rx.rrc;
srslte::timer_handler* timers_rx = &pdcp_hlp_rx.timers;
pdcp_hlp_rx.set_pdcp_initial_state(init_state);
@ -59,11 +60,23 @@ int test_rx(std::vector<pdcp_test_event_t> events,
}
}
log->debug("%d", gw_rx->rx_count);
log->debug("%d", rrc_rx->rx_count);
// Test if the number of RX packets
TESTASSERT(gw_rx->rx_count == n_sdus_exp);
srslte::unique_byte_buffer_t sdu_act = allocate_unique_buffer(*pool);
gw_rx->get_last_pdu(sdu_act);
TESTASSERT(compare_two_packets(sdu_exp, sdu_act) == 0);
if (rb_type == srslte::PDCP_RB_IS_DRB) {
TESTASSERT(gw_rx->rx_count == n_sdus_exp);
srslte::unique_byte_buffer_t sdu_act = allocate_unique_buffer(*pool);
gw_rx->get_last_pdu(sdu_act);
TESTASSERT(compare_two_packets(sdu_exp, sdu_act) == 0);
} else {
log->debug("%d", rrc_rx->rx_count);
TESTASSERT(rrc_rx->rx_count == n_sdus_exp);
srslte::unique_byte_buffer_t sdu_act = allocate_unique_buffer(*pool);
rrc_rx->get_last_pdu(sdu_act);
log->debug("%d", sdu_act->N_bytes);
log->debug("%d", sdu_exp->N_bytes);
TESTASSERT(compare_two_packets(sdu_exp, sdu_act) == 0);
}
return 0;
}