open source driving agent
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.1 KiB

#include "catch2/catch.hpp"
#include "tools/cabana/dbcmanager.h"
TEST_CASE("DBCManager::generateDBC") {
DBCManager dbc_origin(nullptr);
dbc_origin.open("toyota_new_mc_pt_generated");
QString dbc_string = dbc_origin.generateDBC();
DBCManager dbc_from_generated(nullptr);
dbc_from_generated.open("", dbc_string);
auto &msgs = dbc_origin.messages();
auto &new_msgs = dbc_from_generated.messages();
REQUIRE(msgs.size() == new_msgs.size());
for (auto &[address, m] : msgs) {
auto new_m = new_msgs.at(address);
REQUIRE(m.name == new_m.name);
REQUIRE(m.size == new_m.size);
REQUIRE(m.sigs.size() == new_m.sigs.size());
for (auto &[name, sig] : m.sigs) {
auto &new_sig = new_m.sigs[name];
REQUIRE(sig.name == new_sig.name);
REQUIRE(sig.start_bit == new_sig.start_bit);
REQUIRE(sig.msb == new_sig.msb);
REQUIRE(sig.lsb == new_sig.lsb);
REQUIRE(sig.size == new_sig.size);
REQUIRE(sig.is_signed == new_sig.is_signed);
REQUIRE(sig.factor == new_sig.factor);
REQUIRE(sig.offset == new_sig.offset);
REQUIRE(sig.is_little_endian == new_sig.is_little_endian);
}
}
}