| | 153 | // |
| | 154 | // Test for creating and extracting a truncated packet of type PACKET_RS_512 |
| | 155 | // |
| | 156 | void test_CreateExtract_PACKET_RS_512_02() { |
| | 157 | PacketEncoder p; |
| | 158 | PacketDecoder d; |
| | 159 | |
| | 160 | // generate truncated input buffer |
| | 161 | unsigned char input[147]; |
| | 162 | for (unsigned int i=0; i<147; i++) |
| | 163 | input[i] = rand() & 0x01; |
| | 164 | |
| | 165 | // generate packet buffer |
| | 166 | unsigned char packet[2048]; |
| | 167 | memset( packet, 0x01, 2048*sizeof(char) ); |
| | 168 | unsigned int nr; |
| | 169 | unsigned int nw; |
| | 170 | |
| | 171 | // generate output buffer |
| | 172 | unsigned char output[2048]; |
| | 173 | memset( output, 0xFF, 2048*sizeof(char) ); |
| | 174 | |
| | 175 | // Initialize properties |
| | 176 | p.packet_id = 32768; |
| | 177 | p.src_id = 247; |
| | 178 | p.dst_id = 129; |
| | 179 | p.port_id = 189; |
| | 180 | p.app_id = 10; |
| | 181 | p.ConfigurePacketType( PACKET_RS_512 ); |
| | 182 | |
| | 183 | // encode packet data |
| | 184 | |
| | 185 | p.CreatePacket( input, 147, nr, &packet[0], 2048, nw ); |
| | 186 | TS_ASSERT_EQUALS( nr, 147 ); |
| | 187 | TS_ASSERT_EQUALS( nw, 1024 ); |
| | 188 | |
| | 189 | // extract and decode packet data |
| | 190 | |
| | 191 | bool packet_extracted; |
| | 192 | d.packet_id = 0; |
| | 193 | d.src_id = 0; |
| | 194 | d.dst_id = 0; |
| | 195 | d.port_id = 0; |
| | 196 | d.app_id = 0; |
| | 197 | packet_extracted = d.ExtractPacket(packet, 2048, nr, output, 2048, nw); |
| | 198 | |
| | 199 | TS_ASSERT_EQUALS( packet_extracted, true ); |
| | 200 | TS_ASSERT_EQUALS( d.packet_id, p.packet_id ); |
| | 201 | TS_ASSERT_EQUALS( d.src_id, p.src_id ); |
| | 202 | TS_ASSERT_EQUALS( d.dst_id, p.dst_id ); |
| | 203 | TS_ASSERT_EQUALS( d.port_id, p.port_id ); |
| | 204 | TS_ASSERT_EQUALS( d.app_id, p.app_id ); |
| | 205 | TS_ASSERT_EQUALS( nr, 1024 ); |
| | 206 | TS_ASSERT_EQUALS( nw, 147 ); |
| | 207 | TS_ASSERT_SAME_DATA( input, output, 147 ); |
| | 208 | |
| | 209 | } |
| | 210 | |