test_signal.cpp
Go to the documentation of this file.
1 /*********************************************************************
2  * C++ unit test for dataspeed_can_tools/DbcSignal.hpp
3  *********************************************************************/
4 
5 #include <gtest/gtest.h>
6 
7 // String stream
8 #include <iostream>
9 #include <sstream>
10 #include <string>
11 
12 // File under test
13 #include "../src/DbcSignal.hpp"
14 
15 // Check that parsing valid signals does not cause an error.
16 TEST(SIGNAL, parsing)
17 {
18  Signal sig;
19  std::istringstream in;
20 
21  // Normal (non-Multiplexed) bool
22  in.str("SG_ TEST : 8|1@1+ (1,0) [0|0] \"\" MAB");
23  in >> sig;
24  ASSERT_FALSE(in.fail());
25  in.clear();
26 
27  // Multiplexed (0) bool
28  in.str("SG_ FEAT_BASE_ENABLED m0 : 16|1@1+ (1,0) [0|0] \"\" MAB");
29  in >> sig;
30  ASSERT_FALSE(in.fail());
31  in.clear();
32 
33  // Multiplexor
34  in.str("SG_ MUX M : 0|8@1+ (1,0) [0|0] \"\" MAB");
35  in >> sig;
36  ASSERT_FALSE(in.fail());
37  in.clear();
38 
39  // Multiplexed (129) short
40  in.str("SG_ DATE1 m129 : 24|8@1+ (1,0) [0|0] \"\" MAB");
41  in >> sig;
42  ASSERT_FALSE(in.fail());
43  in.clear();
44 }
45 
46 // Check the values output by parsing valid signals.
47 TEST(SIGNAL, data)
48 {
49  Signal sig;
50  std::istringstream in;
51 
52  // Normal (non-Multiplexed) bool
53  in.str("SG_ TEST : 8|1@1+ (1,0) [0|0] \"\" MAB");
54  in >> sig;
55  ASSERT_FALSE(in.fail());
56  EXPECT_EQ(sig.getName(), "TEST");
57  EXPECT_EQ(sig.getMultiplexor(), NONE);
58  //EXPECT_EQ(sig.getMultiplexedNumber(), 0);
59  EXPECT_EQ(sig.getStartbit(), 8);
60  EXPECT_EQ(sig.getLength(), 1);
61  EXPECT_EQ(sig.getByteOrder(), INTEL);
62  EXPECT_EQ(sig.getSign(), UNSIGNED);
63  EXPECT_EQ(sig.getFactor(), 1);
64  EXPECT_EQ(sig.getOffset(), 0);
65  EXPECT_EQ(sig.getMinimum(), 0);
66  EXPECT_EQ(sig.getMaximum(), 0);
67  EXPECT_EQ(sig.getUnit(), "");
68  // Receivers?
69  in.clear();
70 
71  // Multiplexed (0) bool
72  in.str("SG_ FEAT_BASE_ENABLED m0 : 16|1@1+ (1,0) [0|0] \"\" MAB");
73  in >> sig;
74  ASSERT_FALSE(in.fail());
75  EXPECT_EQ(sig.getName(), "FEAT_BASE_ENABLED");
76  EXPECT_EQ(sig.getMultiplexor(), MULTIPLEXED);
77  EXPECT_EQ(sig.getMultiplexedNumber(), 0);
78  EXPECT_EQ(sig.getStartbit(), 16);
79  EXPECT_EQ(sig.getLength(), 1);
80  EXPECT_EQ(sig.getByteOrder(), INTEL);
81  EXPECT_EQ(sig.getSign(), UNSIGNED);
82  EXPECT_EQ(sig.getFactor(), 1);
83  EXPECT_EQ(sig.getOffset(), 0);
84  EXPECT_EQ(sig.getMinimum(), 0);
85  EXPECT_EQ(sig.getMaximum(), 0);
86  EXPECT_EQ(sig.getUnit(), "");
87  // Receivers?
88  in.clear();
89 
90  // Multiplexor
91  in.str("SG_ MUX M : 0|8@1+ (1,0) [0|0] \"\" MAB");
92  in >> sig;
93  ASSERT_FALSE(in.fail());
94  EXPECT_EQ(sig.getName(), "MUX");
95  EXPECT_EQ(sig.getMultiplexor(), MULTIPLEXOR);
96  //EXPECT_EQ(sig.getMultiplexedNumber(), 129);
97  EXPECT_EQ(sig.getStartbit(), 0);
98  EXPECT_EQ(sig.getLength(), 8);
99  EXPECT_EQ(sig.getByteOrder(), INTEL);
100  EXPECT_EQ(sig.getSign(), UNSIGNED);
101  EXPECT_EQ(sig.getFactor(), 1);
102  EXPECT_EQ(sig.getOffset(), 0);
103  EXPECT_EQ(sig.getMinimum(), 0);
104  EXPECT_EQ(sig.getMaximum(), 0);
105  EXPECT_EQ(sig.getUnit(), "");
106  // Receivers?
107  in.clear();
108 
109  // Multiplexed (129) short
110  in.str("SG_ DATE1 m129 : 24|8@1+ (1,0) [0|0] \"\" MAB");
111  in >> sig;
112  ASSERT_FALSE(in.fail());
113  EXPECT_EQ(sig.getName(), "DATE1");
114  EXPECT_EQ(sig.getMultiplexor(), MULTIPLEXED);
115  EXPECT_EQ(sig.getMultiplexedNumber(), 129);
116  EXPECT_EQ(sig.getStartbit(), 24);
117  EXPECT_EQ(sig.getLength(), 8);
118  EXPECT_EQ(sig.getByteOrder(), INTEL);
119  EXPECT_EQ(sig.getSign(), UNSIGNED);
120  EXPECT_EQ(sig.getFactor(), 1);
121  EXPECT_EQ(sig.getOffset(), 0);
122  EXPECT_EQ(sig.getMinimum(), 0);
123  EXPECT_EQ(sig.getMaximum(), 0);
124  EXPECT_EQ(sig.getUnit(), "");
125  // Receivers?
126  in.clear();
127 }
128 
129 int main(int argc, char **argv)
130 {
131  testing::InitGoogleTest(&argc, argv);
132  return RUN_ALL_TESTS();
133 }
134 
int main(int argc, char **argv)
TEST(SIGNAL, parsing)
Definition: test_signal.cpp:16


dataspeed_can_tools
Author(s): Micho Radovnikovich
autogenerated on Thu Jul 9 2020 03:41:59