|
|
|
|
|
|
|
#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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|