From 2bd6698fb9d403931568ddc80266d1bb61c09a8b Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 19 Apr 2024 14:07:50 -0700 Subject: [PATCH] altos/test: Add FEC test for simple 'hello' message This just tests the FEC code using a slightly different data source that makes sure odd lengths work correctly. Signed-off-by: Keith Packard --- src/test/ao_fec_test.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/test/ao_fec_test.c b/src/test/ao_fec_test.c index 5f234285..7c4e6f0e 100644 --- a/src/test/ao_fec_test.c +++ b/src/test/ao_fec_test.c @@ -303,6 +303,29 @@ ao_real_packet(void) return ok; } +int +ao_hello_packet(void) +{ + uint8_t message[5] = "hello"; + uint8_t encode[ENCODE_LEN(sizeof(message))]; + int encode_len; + uint8_t transmit[EXPAND_LEN(sizeof(message))]; + uint8_t decode[DECODE_LEN(sizeof(message))]; + int transmit_len; + int decode_ok; + + printf("Hello packet test:\n"); + ao_fec_dump_bytes(message, sizeof(message), "Message"); + encode_len = ao_fec_encode(message, sizeof(message), encode); + ao_fec_dump_bytes(encode, encode_len, "Encode"); + transmit_len = ao_expand(encode, encode_len, transmit); + ao_fec_dump_bytes(transmit, transmit_len, "Transmit"); + decode_ok = ao_fec_decode(transmit, transmit_len, decode, sizeof(message) + 2, NULL); + ao_fec_dump_bytes(decode, sizeof(message) + 2, "Receive"); + printf("Hello result: %s\n", decode_ok ? "success" : "fail"); + return decode_ok; +} + #define EXPECT_DECODE_FAIL 0 #define EXPECT_CRC_MISMATCH 6304 #define EXPECT_DATA_MISMATCH 0 @@ -336,6 +359,9 @@ main(int argc, char **argv) if (!ao_real_packet()) errors++; + if (!ao_hello_packet()) + errors++; + srandom(0); for (trial = 0; trial < 100000; trial++) { -- 2.30.2