boardd: split usbprotocol unittest and fix paren order in data length assert (#23065)
parent
048cc3ac9f
commit
65ca9be82a
|
@ -384,7 +384,7 @@ void Panda::pack_can_buffer(const capnp::List<cereal::CanData>::Reader &can_data
|
|||
}
|
||||
auto can_data = cmsg.getDat();
|
||||
uint8_t data_len_code = len_to_dlc(can_data.size());
|
||||
assert(can_data.size() <= (hw_type == cereal::PandaState::PandaType::RED_PANDA) ? 64 : 8);
|
||||
assert(can_data.size() <= ((hw_type == cereal::PandaState::PandaType::RED_PANDA) ? 64 : 8));
|
||||
assert(can_data.size() == dlc_to_len[data_len_code]);
|
||||
|
||||
can_header header;
|
||||
|
|
|
@ -16,7 +16,7 @@ int random_int(int min, int max) {
|
|||
}
|
||||
|
||||
struct PandaTest : public Panda {
|
||||
PandaTest(uint32_t bus_offset, int can_list_size);
|
||||
PandaTest(uint32_t bus_offset, int can_list_size, cereal::PandaState::PandaType hw_type);
|
||||
void test_can_send();
|
||||
void test_can_recv();
|
||||
|
||||
|
@ -27,9 +27,11 @@ struct PandaTest : public Panda {
|
|||
capnp::List<cereal::CanData>::Reader can_data_list;
|
||||
};
|
||||
|
||||
PandaTest::PandaTest(uint32_t bus_offset_, int can_list_size) : can_list_size(can_list_size), Panda(bus_offset_) {
|
||||
PandaTest::PandaTest(uint32_t bus_offset_, int can_list_size, cereal::PandaState::PandaType hw_type) : can_list_size(can_list_size), Panda(bus_offset_) {
|
||||
this->hw_type = hw_type;
|
||||
int data_limit = ((hw_type == cereal::PandaState::PandaType::RED_PANDA) ? std::size(dlc_to_len) : 8);
|
||||
// prepare test data
|
||||
for (int i = 0; i < std::size(dlc_to_len); ++i) {
|
||||
for (int i = 0; i < data_limit; ++i) {
|
||||
std::random_device rd;
|
||||
std::independent_bits_engine<std::default_random_engine, CHAR_BIT, unsigned char> rbe(rd());
|
||||
|
||||
|
@ -101,10 +103,23 @@ void PandaTest::test_can_recv() {
|
|||
}
|
||||
}
|
||||
|
||||
TEST_CASE("send/recv can packets") {
|
||||
TEST_CASE("send/recv CAN 2.0 packets") {
|
||||
auto bus_offset = GENERATE(0, 4);
|
||||
auto can_list_size = GENERATE(1, 3, 5, 10, 30, 60, 100, 200);
|
||||
PandaTest test(bus_offset, can_list_size);
|
||||
PandaTest test(bus_offset, can_list_size, cereal::PandaState::PandaType::DOS);
|
||||
|
||||
SECTION("can_send") {
|
||||
test.test_can_send();
|
||||
}
|
||||
SECTION("can_receive") {
|
||||
test.test_can_recv();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("send/recv CAN FD packets") {
|
||||
auto bus_offset = GENERATE(0, 4);
|
||||
auto can_list_size = GENERATE(1, 3, 5, 10, 30, 60, 100, 200);
|
||||
PandaTest test(bus_offset, can_list_size, cereal::PandaState::PandaType::RED_PANDA);
|
||||
|
||||
SECTION("can_send") {
|
||||
test.test_can_send();
|
||||
|
|
Loading…
Reference in New Issue