Skip to content

Commit c246cdd

Browse files
committed
add testcases for negative values
1 parent 16da8be commit c246cdd

File tree

2 files changed

+53
-1
lines changed

2 files changed

+53
-1
lines changed

test/defines.hpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,14 @@ static const std::string MISSING_NEW_SYMBOLS_DBC_FILE = std::string(TESTDBCFILES
99
static const std::string MISSING_VERSION_DBC_FILE = std::string(TESTDBCFILES_PATH) + "/MissingVersion.dbc";
1010
static const std::string MISSING_BIT_TIMING_DBC_FILE = std::string(TESTDBCFILES_PATH) + "/MissingBitTiming.dbc";
1111
static const std::string TEXT_FILE = std::string(TESTDBCFILES_PATH) + "/TextFile.txt";
12+
13+
static const std::string PRIMITIVE_DBC =
14+
R"(VERSION "1.0.0"
15+
16+
NS_ :
17+
18+
BS_:
19+
20+
BU_: DBG DRIVER IO MOTOR SENSOR
21+
22+
)";

test/test_dbc.cpp

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,45 @@ TEST_CASE("Testing dbc file loading", "[fileio]") {
4949
REQUIRE(parser->get_messages().front().signals == msg.signals);
5050
}
5151

52-
}
52+
}
53+
54+
TEST_CASE("Testing negative values") {
55+
const auto* filename = std::tmpnam(NULL);
56+
57+
auto* file = std::fopen(filename, "w");
58+
CHECK(file);
59+
60+
std::fputs(PRIMITIVE_DBC.c_str(), file);
61+
std::fputs(R"(BO_ 234 MSG1: 8 Vector__XXX
62+
SG_ Sig1 : 55|16@0- (0.1,0) [-3276.8|-3276.7] "C" Vector__XXX
63+
SG_ Sig2 : 39|16@0- (0.1,0) [-3276.8|-3276.7] "C" Vector__XXX
64+
SG_ Sig3 : 23|16@0- (0.1,0) [-3276.8|-3276.7] "C" Vector__XXX
65+
SG_ Sig4 : 7|16@0- (1,0) [0|32767] "" Vector__XXX)", file);
66+
std::fclose(file);
67+
68+
auto parser = libdbc::DbcParser();
69+
parser.parse_file(std::string(filename));
70+
71+
REQUIRE(parser.get_messages().size() == 1);
72+
REQUIRE(parser.get_messages().at(0).signals.size() == 4);
73+
{
74+
const auto signal = parser.get_messages().at(0).signals.at(0);
75+
REQUIRE(signal.min == -3276.8);
76+
REQUIRE(signal.max == -3276.7);
77+
}
78+
{
79+
const auto signal = parser.get_messages().at(1).signals.at(0);
80+
REQUIRE(signal.min == -3276.8);
81+
REQUIRE(signal.max == -3276.7);
82+
}
83+
{
84+
const auto signal = parser.get_messages().at(2).signals.at(0);
85+
REQUIRE(signal.min == -3276.8);
86+
REQUIRE(signal.max == -3276.7);
87+
}
88+
{
89+
const auto signal = parser.get_messages().at(3).signals.at(0);
90+
REQUIRE(signal.min == -3276.8);
91+
REQUIRE(signal.max == -3276.7);
92+
}
93+
}

0 commit comments

Comments
 (0)