mirror of
https://github.com/meshtastic/firmware.git
synced 2025-10-28 15:22:55 +00:00
Fix merge conflict with test changes (#7902)
289f90bdbemerged a commit that relied on5b9db81819but the latter commit was not merged. This does manual wrangling to make sure the same file that exists on develop right now ends up on master.
This commit is contained in:
parent
37d14f942e
commit
f8b160595f
@ -1,27 +1,5 @@
|
|||||||
#include "../test_helpers.h"
|
#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
|
// Helper function for all encrypted packet assertions
|
||||||
void assert_encrypted_packet(const std::string &json, meshtastic_MeshPacket packet)
|
void assert_encrypted_packet(const std::string &json, meshtastic_MeshPacket packet)
|
||||||
{
|
{
|
||||||
@ -61,58 +39,20 @@ void assert_encrypted_packet(const std::string &json, meshtastic_MeshPacket pack
|
|||||||
// Test encrypted packet serialization
|
// Test encrypted packet serialization
|
||||||
void test_encrypted_packet_serialization()
|
void test_encrypted_packet_serialization()
|
||||||
{
|
{
|
||||||
meshtastic_MeshPacket packet = meshtastic_MeshPacket_init_zero;
|
const char *data = "encrypted_payload_data";
|
||||||
packet.from = 0x11223344;
|
meshtastic_MeshPacket packet =
|
||||||
packet.to = 0x55667788;
|
create_test_packet(meshtastic_PortNum_TEXT_MESSAGE_APP, reinterpret_cast<const uint8_t *>(data), strlen(data),
|
||||||
packet.id = 0x9999;
|
meshtastic_MeshPacket_encrypted_tag);
|
||||||
packet.which_payload_variant = meshtastic_MeshPacket_encrypted_tag;
|
|
||||||
|
|
||||||
// Add some dummy encrypted data
|
|
||||||
const char *encrypted_data = "encrypted_payload_data";
|
|
||||||
packet.encrypted.size = strlen(encrypted_data);
|
|
||||||
memcpy(packet.encrypted.bytes, encrypted_data, packet.encrypted.size);
|
|
||||||
|
|
||||||
std::string json = MeshPacketSerializer::JsonSerializeEncrypted(&packet);
|
std::string json = MeshPacketSerializer::JsonSerializeEncrypted(&packet);
|
||||||
TEST_ASSERT_TRUE(json.length() > 0);
|
|
||||||
|
|
||||||
JSONValue *root = JSON::Parse(json.c_str());
|
assert_encrypted_packet(json, packet);
|
||||||
TEST_ASSERT_NOT_NULL(root);
|
|
||||||
TEST_ASSERT_TRUE(root->IsObject());
|
|
||||||
|
|
||||||
JSONObject jsonObj = root->AsObject();
|
|
||||||
|
|
||||||
// Check basic packet fields
|
|
||||||
TEST_ASSERT_TRUE(jsonObj.find("from") != jsonObj.end());
|
|
||||||
TEST_ASSERT_EQUAL(0x11223344, (uint32_t)jsonObj["from"]->AsNumber());
|
|
||||||
|
|
||||||
TEST_ASSERT_TRUE(jsonObj.find("to") != jsonObj.end());
|
|
||||||
TEST_ASSERT_EQUAL(0x55667788, (uint32_t)jsonObj["to"]->AsNumber());
|
|
||||||
|
|
||||||
TEST_ASSERT_TRUE(jsonObj.find("id") != jsonObj.end());
|
|
||||||
TEST_ASSERT_EQUAL(0x9999, (uint32_t)jsonObj["id"]->AsNumber());
|
|
||||||
|
|
||||||
// Check that it has encrypted data fields (not "payload" but "bytes" and "size")
|
|
||||||
TEST_ASSERT_TRUE(jsonObj.find("bytes") != jsonObj.end());
|
|
||||||
TEST_ASSERT_TRUE(jsonObj["bytes"]->IsString());
|
|
||||||
|
|
||||||
TEST_ASSERT_TRUE(jsonObj.find("size") != jsonObj.end());
|
|
||||||
TEST_ASSERT_EQUAL(22, (int)jsonObj["size"]->AsNumber()); // strlen("encrypted_payload_data") = 22
|
|
||||||
|
|
||||||
// The encrypted data should be hex-encoded
|
|
||||||
std::string encrypted_hex = jsonObj["bytes"]->AsString();
|
|
||||||
TEST_ASSERT_TRUE(encrypted_hex.length() > 0);
|
|
||||||
// Should be twice the size of the original data (hex encoding)
|
|
||||||
TEST_ASSERT_EQUAL(44, encrypted_hex.length()); // 22 * 2 = 44
|
|
||||||
|
|
||||||
delete root;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test empty encrypted packet
|
// Test empty encrypted packet
|
||||||
void test_empty_encrypted_packet()
|
void test_empty_encrypted_packet()
|
||||||
{
|
{
|
||||||
const char *data = "";
|
meshtastic_MeshPacket packet =
|
||||||
|
create_test_packet(meshtastic_PortNum_TEXT_MESSAGE_APP, nullptr, 0, meshtastic_MeshPacket_encrypted_tag);
|
||||||
meshtastic_MeshPacket packet = create_test_encrypted_packet(from, to, id, data);
|
|
||||||
std::string json = MeshPacketSerializer::JsonSerializeEncrypted(&packet);
|
std::string json = MeshPacketSerializer::JsonSerializeEncrypted(&packet);
|
||||||
|
|
||||||
assert_encrypted_packet(json, packet);
|
assert_encrypted_packet(json, packet);
|
||||||
|
|||||||
@ -4,6 +4,10 @@
|
|||||||
|
|
||||||
// Forward declarations for test functions
|
// Forward declarations for test functions
|
||||||
void test_text_message_serialization();
|
void test_text_message_serialization();
|
||||||
|
void test_text_message_serialization_null();
|
||||||
|
void test_text_message_serialization_long_text();
|
||||||
|
void test_text_message_serialization_oversized();
|
||||||
|
void test_text_message_serialization_invalid_utf8();
|
||||||
void test_position_serialization();
|
void test_position_serialization();
|
||||||
void test_nodeinfo_serialization();
|
void test_nodeinfo_serialization();
|
||||||
void test_waypoint_serialization();
|
void test_waypoint_serialization();
|
||||||
@ -14,6 +18,7 @@ void test_telemetry_environment_metrics_missing_fields();
|
|||||||
void test_telemetry_environment_metrics_complete_coverage();
|
void test_telemetry_environment_metrics_complete_coverage();
|
||||||
void test_telemetry_environment_metrics_unset_fields();
|
void test_telemetry_environment_metrics_unset_fields();
|
||||||
void test_encrypted_packet_serialization();
|
void test_encrypted_packet_serialization();
|
||||||
|
void test_empty_encrypted_packet();
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
@ -21,6 +26,10 @@ void setup()
|
|||||||
|
|
||||||
// Text message tests
|
// Text message tests
|
||||||
RUN_TEST(test_text_message_serialization);
|
RUN_TEST(test_text_message_serialization);
|
||||||
|
RUN_TEST(test_text_message_serialization_null);
|
||||||
|
RUN_TEST(test_text_message_serialization_long_text);
|
||||||
|
RUN_TEST(test_text_message_serialization_oversized);
|
||||||
|
RUN_TEST(test_text_message_serialization_invalid_utf8);
|
||||||
|
|
||||||
// Position tests
|
// Position tests
|
||||||
RUN_TEST(test_position_serialization);
|
RUN_TEST(test_position_serialization);
|
||||||
@ -41,6 +50,7 @@ void setup()
|
|||||||
|
|
||||||
// Encrypted packet test
|
// Encrypted packet test
|
||||||
RUN_TEST(test_encrypted_packet_serialization);
|
RUN_TEST(test_encrypted_packet_serialization);
|
||||||
|
RUN_TEST(test_empty_encrypted_packet);
|
||||||
|
|
||||||
UNITY_END();
|
UNITY_END();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user