packet_storage_test.cpp
Go to the documentation of this file.
1 /*********************************************************************
2  * Software License Agreement (Apache 2.0)
3  *
4  * Copyright (c) 2019, The MITRE Corporation.
5  * All rights reserved.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * https://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  * Sections of this project contains content developed by The MITRE Corporation.
20  * If this code is used in a deployment or embedded within another project,
21  * it is requested that you send an email to opensource@mitre.org in order to
22  * let us know where this software is being used.
23  *********************************************************************/
24 
25 #include <gtest/gtest.h>
27 #include "init_vars.hpp"
28 
29 TEST(PacketStorage, initZero)
30 {
31  kvh::KvhPacketStorage packetStorage;
32  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::zeroRequest));
33  EXPECT_EQ(0, packetStorage.Size());
34 }
35 
36 TEST(PacketStorage, initSmallRequest)
37 {
38  kvh::KvhPacketStorage packetStorage;
39  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
40  EXPECT_EQ(2, packetStorage.Size());
41 }
42 
43 TEST(PacketStorage, initLargeRequest)
44 {
45  kvh::KvhPacketStorage packetStorage;
46  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::largeRequest));
47  EXPECT_EQ(8, packetStorage.Size());
48 }
49 
50 TEST(PacketStorage, initDuplicate)
51 {
52  kvh::KvhPacketStorage packetStorage;
53  EXPECT_EQ(-1, packetStorage.Init(KvhPackReqEnv::duplicateRequest));
54 }
55 
56 TEST(PacketStorage, initUnsupported)
57 {
58  kvh::KvhPacketStorage packetStorage;
59  EXPECT_EQ(-2, packetStorage.Init(KvhPackReqEnv::unsupportedRequest));
60 }
61 
62 TEST(PacketStorage, updatePacket)
63 {
64  kvh::KvhPacketStorage packetStorage;
65  system_state_packet_t sysPacket;
66  sysPacket.system_status.r = 10;
67  sysPacket.filter_status.r = 27;
68  sysPacket.unix_time_seconds = 123456;
69  sysPacket.microseconds = 98765;
70  sysPacket.latitude = 123.456;
71  sysPacket.longitude = 456.789;
72  sysPacket.height = 100100;
73  sysPacket.velocity[0] = 0;
74  sysPacket.velocity[1] = 1;
75  sysPacket.velocity[2] = 2;
76  sysPacket.body_acceleration[0] = 4;
77  sysPacket.body_acceleration[1] = 4;
78  sysPacket.body_acceleration[2] = 4;
79  sysPacket.g_force = 10;
80  sysPacket.orientation[0] = 0;
81  sysPacket.orientation[1] = 1;
82  sysPacket.orientation[2] = 2;
83  sysPacket.angular_velocity[0] = 0;
84  sysPacket.angular_velocity[1] = 1;
85  sysPacket.angular_velocity[2] = 2;
86  sysPacket.standard_deviation[0] = 0;
87  sysPacket.standard_deviation[1] = 1;
88  sysPacket.standard_deviation[2] = 2;
89 
90  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
91  EXPECT_EQ(0, packetStorage.UpdatePacket(packet_id_system_state, sysPacket));
92 }
93 
94 TEST(PacketStorage, updateIncorrectType)
95 {
96  kvh::KvhPacketStorage packetStorage;
97  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
98  system_state_packet_t sysPacket;
99  sysPacket.height = 32;
100 
101  EXPECT_EQ(-1, packetStorage.UpdatePacket(packet_id_raw_sensors, sysPacket));
102 }
103 
104 TEST(PacketStorage, updateUncontained)
105 {
106  kvh::KvhPacketStorage packetStorage;
107  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
108  kvh::utm_fix utmPacket;
109  utmPacket.position[0] = 12;
110 
111  EXPECT_EQ(-2, packetStorage.UpdatePacket(packet_id_utm_position, utmPacket));
112 }
113 
114 TEST(PacketStorage, updateUnsupportedandUncontained)
115 {
116  kvh::KvhPacketStorage packetStorage;
117  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
118  wind_packet_t windPacket;
119  EXPECT_EQ(-1, packetStorage.UpdatePacket(packet_id_wind, windPacket));
120 }
121 
122 TEST(PacketStorage, setPacketUpdatedandPacketIsUpdated)
123 {
124  kvh::KvhPacketStorage packetStorage;
125  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
126  system_state_packet_t sysPacket;
127  sysPacket.height = 32;
128 
129  // Update packet and set to true
130  EXPECT_EQ(0, packetStorage.UpdatePacket(packet_id_system_state, sysPacket));
131  EXPECT_EQ(0, packetStorage.SetPacketUpdated(packet_id_system_state, true));
132  EXPECT_EQ(true, packetStorage.PacketIsUpdated(packet_id_system_state));
133 
134  EXPECT_EQ(0, packetStorage.SetPacketUpdated(packet_id_system_state, false));
135  EXPECT_EQ(false, packetStorage.PacketIsUpdated(packet_id_system_state));
136 }
137 
138 TEST(PacketStorage, packetIsUpdatedNotInit)
139 {
140  kvh::KvhPacketStorage packetStorage;
141  EXPECT_EQ(false, packetStorage.PacketIsUpdated(packet_id_system_state));
142 }
143 
144 TEST(PacketStorage, setPacketUpdatedUncontained)
145 {
146  kvh::KvhPacketStorage packetStorage;
147  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
148  EXPECT_EQ(-1, packetStorage.SetPacketUpdated(packet_id_wind, true));
149 }
150 
151 TEST(PacketStorage, packetIsUpdatedUncontained)
152 {
153  kvh::KvhPacketStorage packetStorage;
154  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
155  EXPECT_EQ(false, packetStorage.PacketIsUpdated(packet_id_wind));
156 }
157 
158 TEST(PacketStorage, getPacket)
159 {
160  kvh::KvhPacketStorage packetStorage;
161  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
162  system_state_packet_t sysPacket;
163  EXPECT_EQ(0, packetStorage.GetPacket(packet_id_system_state, sysPacket));
164 }
165 
166 // \todo Make sure getPacketNotInit test works
167 TEST(PacketStorage, getPacketNotInit)
168 {
169  kvh::KvhPacketStorage packetStorage;
170  system_state_packet_t sysPacket;
171  EXPECT_EQ(-2, packetStorage.GetPacket(packet_id_system_state, sysPacket));
172 }
173 
174 TEST(PacketStorage, getPacketIncorrectType)
175 {
176  kvh::KvhPacketStorage packetStorage;
177  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
178  wind_packet_t windPacket;
179  EXPECT_EQ(-1, packetStorage.GetPacket(packet_id_utm_position, windPacket));
180 }
181 
182 TEST(PacketStorage, getPacketUncontained)
183 {
184  kvh::KvhPacketStorage packetStorage;
185  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
186  kvh::utm_fix utmPacket;
187  EXPECT_EQ(-2, packetStorage.GetPacket(packet_id_utm_position, utmPacket));
188 }
189 
190 TEST(PacketStorage, getPacketUnsupportedandUncontained)
191 {
192  kvh::KvhPacketStorage packetStorage;
193  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
194  wind_packet_t windPacket;
195  EXPECT_EQ(-1, packetStorage.GetPacket(packet_id_wind, windPacket));
196 }
197 
198 TEST(PacketStorage, updatePacketandGetPacket)
199 {
200  kvh::KvhPacketStorage packetStorage;
201  system_state_packet_t sysPacket;
202  sysPacket.system_status.r = 10;
203  sysPacket.filter_status.r = 27;
204  sysPacket.unix_time_seconds = 123456;
205  sysPacket.microseconds = 98765;
206  sysPacket.latitude = 123.456;
207  sysPacket.longitude = 456.789;
208  sysPacket.height = 100100;
209  sysPacket.velocity[0] = 0;
210  sysPacket.velocity[1] = 1;
211  sysPacket.velocity[2] = 2;
212  sysPacket.body_acceleration[0] = 4;
213  sysPacket.body_acceleration[1] = 4;
214  sysPacket.body_acceleration[2] = 4;
215  sysPacket.g_force = 10;
216  sysPacket.orientation[0] = 0;
217  sysPacket.orientation[1] = 1;
218  sysPacket.orientation[2] = 2;
219  sysPacket.angular_velocity[0] = 0;
220  sysPacket.angular_velocity[1] = 1;
221  sysPacket.angular_velocity[2] = 2;
222  sysPacket.standard_deviation[0] = 0;
223  sysPacket.standard_deviation[1] = 1;
224  sysPacket.standard_deviation[2] = 2;
225 
226  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
227  EXPECT_EQ(0, packetStorage.UpdatePacket(packet_id_system_state, sysPacket));
228  system_state_packet_t sysPacket2;
229  EXPECT_EQ(0, packetStorage.GetPacket<system_state_packet_t>(packet_id_system_state, sysPacket2));
230 
231  // Compare structs
232  EXPECT_EQ(sysPacket.system_status.r, sysPacket2.system_status.r);
233  EXPECT_EQ(sysPacket.filter_status.r, sysPacket2.filter_status.r);
234  EXPECT_EQ(sysPacket.unix_time_seconds, sysPacket2.unix_time_seconds);
235  EXPECT_EQ(sysPacket.microseconds, sysPacket2.microseconds);
236  EXPECT_EQ(sysPacket.latitude, sysPacket2.latitude);
237  EXPECT_EQ(sysPacket.longitude, sysPacket2.longitude);
238  EXPECT_EQ(sysPacket.height, sysPacket2.height);
239  EXPECT_EQ(sysPacket.velocity[0], sysPacket2.velocity[0]);
240  EXPECT_EQ(sysPacket.velocity[1], sysPacket2.velocity[1]);
241  EXPECT_EQ(sysPacket.velocity[2], sysPacket2.velocity[2]);
242  EXPECT_EQ(sysPacket.body_acceleration[0], sysPacket2.body_acceleration[0]);
243  EXPECT_EQ(sysPacket.body_acceleration[1], sysPacket2.body_acceleration[1]);
244  EXPECT_EQ(sysPacket.body_acceleration[2], sysPacket2.body_acceleration[2]);
245  EXPECT_EQ(sysPacket.g_force, sysPacket2.g_force);
246  EXPECT_EQ(sysPacket.orientation[0], sysPacket2.orientation[0]);
247  EXPECT_EQ(sysPacket.orientation[1], sysPacket2.orientation[1]);
248  EXPECT_EQ(sysPacket.orientation[2], sysPacket2.orientation[2]);
249  EXPECT_EQ(sysPacket.angular_velocity[0], sysPacket2.angular_velocity[0]);
250  EXPECT_EQ(sysPacket.angular_velocity[1], sysPacket2.angular_velocity[1]);
251  EXPECT_EQ(sysPacket.angular_velocity[2], sysPacket2.angular_velocity[2]);
252  EXPECT_EQ(sysPacket.standard_deviation[0], sysPacket2.standard_deviation[0]);
253  EXPECT_EQ(sysPacket.standard_deviation[1], sysPacket2.standard_deviation[1]);
254  EXPECT_EQ(sysPacket.standard_deviation[2], sysPacket2.standard_deviation[2]);
255 }
256 
257 // This test is included in addtion to the one above since we needed to make
258 // modifications to the utm packet.
259 TEST(PacketStorage, UTM_UpdateAndGetPacket)
260 {
261  kvh::KvhPacketStorage packetStorage;
262  kvh::utm_fix utmPacket;
263  utmPacket.position[0] = 32;
264  utmPacket.position[1] = 42;
265  utmPacket.position[2] = 133;
266  utmPacket.zone = 'B';
267  utmPacket.zone_num = 12;
268 
269  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::largeRequest));
270  EXPECT_EQ(0, packetStorage.UpdatePacket(packet_id_utm_position, utmPacket));
271  kvh::utm_fix utmPacket2;
272  EXPECT_EQ(0, packetStorage.GetPacket<kvh::utm_fix>(packet_id_utm_position, utmPacket2));
273 
274  // Compare structs
275  EXPECT_EQ(utmPacket.position[0], utmPacket2.position[0]);
276  EXPECT_EQ(utmPacket.position[1], utmPacket2.position[1]);
277  EXPECT_EQ(utmPacket.position[2], utmPacket2.position[2]);
278  EXPECT_EQ(utmPacket.zone, utmPacket2.zone);
279  EXPECT_EQ(utmPacket.zone_num, utmPacket2.zone_num);
280 }
281 
282 TEST(PacketStorage, containsTrue)
283 {
284  kvh::KvhPacketStorage packetStorage;
285  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
286  EXPECT_EQ(true, packetStorage.Contains(packet_id_system_state));
287  EXPECT_EQ(true, packetStorage.Contains(packet_id_raw_sensors));
288 }
289 
290 TEST(PacketStorage, containsFalse)
291 {
292  kvh::KvhPacketStorage packetStorage;
293  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
294  EXPECT_EQ(false, packetStorage.Contains(packet_id_wind));
295 }
296 
297 TEST(PacketStorage, sizeSmall)
298 {
299  kvh::KvhPacketStorage packetStorage;
300  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::smallRequest));
301  EXPECT_EQ(2, packetStorage.Size());
302 }
303 
304 TEST(PacketStorage, sizeLarge)
305 {
306  kvh::KvhPacketStorage packetStorage;
307  EXPECT_EQ(0, packetStorage.Init(KvhPackReqEnv::largeRequest));
308  EXPECT_EQ(8, packetStorage.Size());
309 }
310 
311 TEST(PacketStorage, printPacketTypes)
312 {
313  EXPECT_NO_FATAL_FAILURE(kvh::KvhPacketStorage::PrintPacketTypes());
314 }
315 
316 TEST(PacketStorage, printPacketSizes)
317 {
318  EXPECT_NO_FATAL_FAILURE(kvh::KvhPacketStorage::PrintPacketSizes());
319 }
union system_state_packet_t::@1 filter_status
TEST(PacketStorage, initZero)
static kvh::KvhPacketRequest zeroRequest
Definition: init_vars.hpp:37
KVH Packet storing class header.
static kvh::KvhPacketRequest duplicateRequest
Definition: init_vars.hpp:44
static kvh::KvhPacketRequest unsupportedRequest
Definition: init_vars.hpp:45
static kvh::KvhPacketRequest largeRequest
Definition: init_vars.hpp:39
int Init(KvhPacketRequest &)
Correctly sets up a KvhPacketMap for the requested packets.
int GetPacket(packet_id_e _packetId, T &_packet)
int SetPacketUpdated(packet_id_e, bool)
bool PacketIsUpdated(packet_id_e)
static void PrintPacketTypes()
static void PrintPacketSizes()
static kvh::KvhPacketRequest smallRequest
Definition: init_vars.hpp:38
bool Contains(packet_id_e)
int UpdatePacket(packet_id_e _packetId, T &_packetData)
union system_state_packet_t::@0 system_status


kvh_geo_fog_3d_driver
Author(s): Trevor Bostic , Zach LaCelle
autogenerated on Fri Jan 24 2020 03:18:17