ud3tn/test/unit/test_bundle7Create.c
Felix Walter 17aec0f909 test/unit: Free used heap-allocated data
Closes: #104

Signed-off-by: Felix Walter <felix.walter@d3tn.com>
2026-03-18 09:57:10 +01:00

80 lines
1.9 KiB
C

// SPDX-License-Identifier: BSD-3-Clause OR Apache-2.0
#include "bundle7/create.h"
#include "ud3tn/bundle.h"
#include "ud3tn/eid.h"
#include "platform/hal_time.h"
#include "testud3tn_unity.h"
#include "testud3tn_eid_helpers.h"
#include <stddef.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
static const char test_payload[] = "PAYLOAD";
TEST_GROUP(bundle7Create);
TEST_SETUP(bundle7Create)
{
}
TEST_TEAR_DOWN(bundle7Create)
{
}
TEST(bundle7Create, create_bundle)
{
char *payload = malloc(sizeof(test_payload));
// 2020-11-12T09:51:03+00:00
uint64_t creation_timestamp_ms = 658489863000;
memcpy(payload, test_payload, sizeof(test_payload));
struct bundle *b = bundle7_create_local(
payload, sizeof(test_payload),
EID_DTN_UD3TN_AGENT,
EID_DTN_UD3TN_AGENT2,
EID_IPN_10,
creation_timestamp_ms, 1, 42000,
BUNDLE_FLAG_REPORT_DELIVERY);
TEST_ASSERT_NOT_NULL(b);
TEST_ASSERT_NOT_NULL(b->blocks);
TEST_ASSERT_NOT_NULL(b->blocks->data);
TEST_ASSERT_NULL(b->blocks->next);
TEST_ASSERT_NOT_NULL(b->payload_block);
TEST_ASSERT_EQUAL_PTR(b->payload_block, b->blocks->data);
TEST_ASSERT_EQUAL(sizeof(test_payload),
b->payload_block->length);
TEST_ASSERT_EQUAL_UINT8_ARRAY(
test_payload,
b->payload_block->data,
sizeof(test_payload)
);
TEST_ASSERT_EQUAL(1, b->payload_block->number);
TEST_ASSERT_EQUAL(0, b->payload_block->flags);
TEST_ASSERT_EQUAL(7, b->protocol_version);
TEST_ASSERT_EQUAL(BUNDLE_FLAG_REPORT_DELIVERY, b->proc_flags);
TEST_ASSERT_EQUAL(creation_timestamp_ms,
b->creation_timestamp_ms);
TEST_ASSERT_EQUAL(1, b->sequence_number);
TEST_ASSERT_EQUAL(42000, b->lifetime_ms);
TEST_ASSERT_NOT_EQUAL(0, b->primary_block_length);
TEST_ASSERT(eid_eq(EID_DTN_UD3TN_AGENT, b->source));
TEST_ASSERT(eid_eq(EID_DTN_UD3TN_AGENT2, b->destination));
TEST_ASSERT(eid_eq(EID_IPN_10, b->report_to));
bundle_free(b);
}
TEST_GROUP_RUNNER(bundle7Create)
{
RUN_TEST_CASE(bundle7Create, create_bundle);
}