kopia lustrzana https://github.com/meshtastic/firmware
				
				
				
			merge create_test_packet duplicate usage into a shared function (#7752)
							rodzic
							
								
									09a0df3a1f
								
							
						
					
					
						commit
						289f90bdbe
					
				|  | @ -1,5 +1,63 @@ | |||
| #include "../test_helpers.h" | ||||
| 
 | ||||
| // test data initialization
 | ||||
| const int from = 0x11223344; | ||||
| const int to = 0x55667788; | ||||
| const int id = 0x9999; | ||||
| 
 | ||||
| // Helper function to create a test encrypted packet
 | ||||
| meshtastic_MeshPacket create_test_encrypted_packet(uint32_t from, uint32_t to, uint32_t id, const char *data) | ||||
| { | ||||
|     meshtastic_MeshPacket packet = meshtastic_MeshPacket_init_zero; | ||||
|     packet.from = from; | ||||
|     packet.to = to; | ||||
|     packet.id = id; | ||||
|     packet.which_payload_variant = meshtastic_MeshPacket_encrypted_tag; | ||||
| 
 | ||||
|     if (data) { | ||||
|         packet.encrypted.size = strlen(data); | ||||
|         memcpy(packet.encrypted.bytes, data, packet.encrypted.size); | ||||
|     } | ||||
| 
 | ||||
|     return packet; | ||||
| } | ||||
| 
 | ||||
| // Helper function for all encrypted packet assertions
 | ||||
| void assert_encrypted_packet(const std::string &json, meshtastic_MeshPacket packet) | ||||
| { | ||||
|     // Parse and validate JSON
 | ||||
|     TEST_ASSERT_TRUE(json.length() > 0); | ||||
| 
 | ||||
|     JSONValue *root = JSON::Parse(json.c_str()); | ||||
|     TEST_ASSERT_NOT_NULL(root); | ||||
|     TEST_ASSERT_TRUE(root->IsObject()); | ||||
| 
 | ||||
|     JSONObject jsonObj = root->AsObject(); | ||||
| 
 | ||||
|     // Assert basic packet fields
 | ||||
|     TEST_ASSERT_TRUE(jsonObj.find("from") != jsonObj.end()); | ||||
|     TEST_ASSERT_EQUAL(packet.from, (uint32_t)jsonObj.at("from")->AsNumber()); | ||||
| 
 | ||||
|     TEST_ASSERT_TRUE(jsonObj.find("to") != jsonObj.end()); | ||||
|     TEST_ASSERT_EQUAL(packet.to, (uint32_t)jsonObj.at("to")->AsNumber()); | ||||
| 
 | ||||
|     TEST_ASSERT_TRUE(jsonObj.find("id") != jsonObj.end()); | ||||
|     TEST_ASSERT_EQUAL(packet.id, (uint32_t)jsonObj.at("id")->AsNumber()); | ||||
| 
 | ||||
|     // Assert encrypted data fields
 | ||||
|     TEST_ASSERT_TRUE(jsonObj.find("bytes") != jsonObj.end()); | ||||
|     TEST_ASSERT_TRUE(jsonObj.at("bytes")->IsString()); | ||||
| 
 | ||||
|     TEST_ASSERT_TRUE(jsonObj.find("size") != jsonObj.end()); | ||||
|     TEST_ASSERT_EQUAL(packet.encrypted.size, (int)jsonObj.at("size")->AsNumber()); | ||||
| 
 | ||||
|     // Assert hex encoding
 | ||||
|     std::string encrypted_hex = jsonObj["bytes"]->AsString(); | ||||
|     TEST_ASSERT_EQUAL(packet.encrypted.size * 2, encrypted_hex.length()); | ||||
| 
 | ||||
|     delete root; | ||||
| } | ||||
| 
 | ||||
| // Test encrypted packet serialization
 | ||||
| void test_encrypted_packet_serialization() | ||||
| { | ||||
|  | @ -48,3 +106,14 @@ void test_encrypted_packet_serialization() | |||
| 
 | ||||
|     delete root; | ||||
| } | ||||
| 
 | ||||
| // Test empty encrypted packet
 | ||||
| void test_empty_encrypted_packet() | ||||
| { | ||||
|     const char *data = ""; | ||||
| 
 | ||||
|     meshtastic_MeshPacket packet = create_test_encrypted_packet(from, to, id, data); | ||||
|     std::string json = MeshPacketSerializer::JsonSerializeEncrypted(&packet); | ||||
| 
 | ||||
|     assert_encrypted_packet(json, packet); | ||||
| } | ||||
|  |  | |||
|  | @ -11,7 +11,8 @@ | |||
| #include <unity.h> | ||||
| 
 | ||||
| // Helper function to create a test packet with the given port and payload
 | ||||
| static meshtastic_MeshPacket create_test_packet(meshtastic_PortNum port, const uint8_t *payload, size_t payload_size) | ||||
| static meshtastic_MeshPacket create_test_packet(meshtastic_PortNum port, const uint8_t *payload, size_t payload_size, | ||||
|                                                 int payload_variant = meshtastic_MeshPacket_decoded_tag) | ||||
| { | ||||
|     meshtastic_MeshPacket packet = meshtastic_MeshPacket_init_zero; | ||||
| 
 | ||||
|  | @ -29,8 +30,12 @@ static meshtastic_MeshPacket create_test_packet(meshtastic_PortNum port, const u | |||
|     packet.delayed = meshtastic_MeshPacket_Delayed_NO_DELAY; | ||||
| 
 | ||||
|     // Set decoded variant
 | ||||
|     packet.which_payload_variant = meshtastic_MeshPacket_decoded_tag; | ||||
|     packet.which_payload_variant = payload_variant; | ||||
|     packet.decoded.portnum = port; | ||||
|     if (payload_variant == meshtastic_MeshPacket_encrypted_tag && payload) { | ||||
|         packet.encrypted.size = payload_size; | ||||
|         memcpy(packet.encrypted.bytes, payload, packet.encrypted.size); | ||||
|     } | ||||
|     memcpy(packet.decoded.payload.bytes, payload, payload_size); | ||||
|     packet.decoded.payload.size = payload_size; | ||||
|     packet.decoded.want_response = false; | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 TN
						TN