11 #include "VISAInstrumentBuffer.h"
21 std::cout <<
"PROMPT : " << S << std::endl;
26 void TestSCPIParsing::initTestCase()
29 void TestSCPIParsing::cleanupTestCase()
35 void TestSCPIParsing::ArbitraryBlock()
40 #define NOT_ARBITRARY_BLOCK "DUMMY"
41 #define ARBITRARY_BLOCK_INFINITE "#0abcd\0efgh1234#'?@~."
42 #define ARBITRARY_BLOCK_DEFINITE1 "#219abcd\0efgh1234#'?@~.NOTINBLOCK"
43 #define ARBITRARY_BLOCK_DEFINITE2 "#6000019abcd\0efgh1234#'?@~.NOTINBLOCK"
44 #define ARBITRARY_BLOCK_DEFINITE_TOO_SHORT "#6000019abcd\0efgh1234#'?@~"
45 size_t l_Offset, l_Len;
48 MTL::Instrument::CVISABuffer l_ArbBlockBuff;
50 QVERIFY(!
IsArbitraryBlock(l_ArbBlockBuff.begin(), l_ArbBlockBuff.end(), l_Offset, l_Len));
52 QVERIFY(
IsArbitraryBlock(l_ArbBlockBuff.begin(), l_ArbBlockBuff.end(), l_Offset, l_Len) && l_Offset == 2 && l_Len == 19);
54 QVERIFY(
IsArbitraryBlock(l_ArbBlockBuff.begin(), l_ArbBlockBuff.end(), l_Offset, l_Len) && l_Offset == 4 && l_Len == 19);
56 QVERIFY(
IsArbitraryBlock(l_ArbBlockBuff.begin(), l_ArbBlockBuff.end(), l_Offset, l_Len) && l_Offset == 8 && l_Len == 19);
58 QVERIFY(!
IsArbitraryBlock(l_ArbBlockBuff.begin(), l_ArbBlockBuff.end(), l_Offset, l_Len));
61 #define RAW_DATA_BLOCK "abcd\0efgh1234#'?@~."
62 #define ARBITRARY_BLOCK_DEFINITE "#219abcd\0efgh1234#'?@~."
63 std::string l_RawData, l_sArbBlock;
71 void TestSCPIParsing::StringChannelList()
76 #define NOT_CHANNEL "(1!2)"
77 #define CHANNEL_EMPTY "(@)"
78 #define CHANNEL_1PORT "(@1)"
79 #define CHANNEL_MULTIPORTS "(@1!2!255!18)"
80 #define CHANNEL_MULTIPORTS2 "(@1!2!255!18,3!8,7)"
84 std::string l_sChanlist;
87 QVERIFY(l_ChanList.empty());
90 QVERIFY(l_ChanList.empty());
94 QVERIFY(l_ChanList == ExpectedChanList);
97 ExpectedChanList = { { 1,2,255,18 } };
98 QVERIFY(l_ChanList == ExpectedChanList);
101 ExpectedChanList = { { 1,2,255,18 },{ 3,8 },{ 7 } };
102 QVERIFY(l_ChanList == ExpectedChanList);
105 std::string l_StrChanList;
109 l_ChanList = { { 1 } };
112 l_ChanList = { { 1,2,255,18 } };
115 l_ChanList = { { 1,2,255,18 },{ 3,8 },{ 7 } };
120 void TestSCPIParsing::BinaryChannelList()
125 #define BINARY_CHANNELLIST_EMPTY {}
126 #define BINARY_CHANNELLIST_1PORT {1}
127 #define BINARY_CHANNELLIST_MULTI {1,2,255,18}
128 #define BINARY_CHANNELLIST_MULTI2 {1,2,255,18,0,3,8,0,7}
132 std::vector<unsigned char> l_BinaryChanList;
135 QVERIFY(l_ChanList.empty());
139 QVERIFY(l_ChanList == ExpectedChanList);
141 ExpectedChanList = { { 1,2,255,18 } };
143 QVERIFY(l_ChanList == ExpectedChanList);
145 ExpectedChanList = { { 1,2,255,18 },{ 3,8 },{ 7 } };
147 QVERIFY(l_ChanList == ExpectedChanList);
150 std::vector<unsigned char> l_ExpectedBinaryChanList;
151 std::vector<char> l_ObtainedBinaryChanList;
155 QVERIFY(memcmp(l_ObtainedBinaryChanList.data(), l_ExpectedBinaryChanList.data(), l_ObtainedBinaryChanList.size()) == 0);
156 l_ChanList = { { 1 } };
159 QVERIFY(memcmp(l_ObtainedBinaryChanList.data(), l_ExpectedBinaryChanList.data(), l_ObtainedBinaryChanList.size()) == 0);
160 l_ChanList = { { 1,2,255,18 } };
163 QVERIFY(memcmp(l_ObtainedBinaryChanList.data(), l_ExpectedBinaryChanList.data(), l_ObtainedBinaryChanList.size()) == 0);
164 l_ChanList = { { 1,2,255,18 },{ 3,8 },{ 7 } };
167 QVERIFY(memcmp(l_ObtainedBinaryChanList.data(), l_ExpectedBinaryChanList.data(), l_ObtainedBinaryChanList.size()) == 0);