From 53547d417726efec147307ff9338fdbaf25411cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20R=C3=B8nningstad?= Date: Mon, 20 Mar 2023 12:55:20 +0100 Subject: [PATCH] zcbor_decode.c: Add a function for printing CBOR data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit zcbor_print_cbor() prints the CBOR data pointed to by the state variable, marked up with color and indentation. Repurpose zcbor_any_skip() for the traversal. Add helper functions to zcbor_print.h. Add test for printing function. Add info about the function to the README. Signed-off-by: Øyvind Rønningstad --- .github/workflows/run-tests.yaml | 2 +- README.md | 24 + images/zcbor_print_cbor_ex1.png | Bin 0 -> 220966 bytes include/zcbor_common.h | 4 + include/zcbor_decode.h | 11 + include/zcbor_print.h | 241 +++++++++ samples/pet/src/pet_decode.c | 1 + samples/pet/src/pet_encode.c | 1 + src/zcbor_decode.c | 105 +++- tests/cmake/test_template.cmake | 8 + tests/decode/test2_suit/CMakeLists.txt | 2 +- .../decode/test5_corner_cases/CMakeLists.txt | 2 +- tests/encode/test4_senml/CMakeLists.txt | 2 +- tests/scripts/test_repo_files.py | 2 +- tests/unit/test4_print_cbor/CMakeLists.txt | 23 + tests/unit/test4_print_cbor/prj.conf | 7 + tests/unit/test4_print_cbor/src/main.c | 161 ++++++ tests/unit/test4_print_cbor/testcase.yaml | 474 ++++++++++++++++++ zcbor/zcbor.py | 1 + 19 files changed, 1043 insertions(+), 28 deletions(-) create mode 100644 images/zcbor_print_cbor_ex1.png create mode 100644 tests/unit/test4_print_cbor/CMakeLists.txt create mode 100644 tests/unit/test4_print_cbor/prj.conf create mode 100644 tests/unit/test4_print_cbor/src/main.c create mode 100644 tests/unit/test4_print_cbor/testcase.yaml diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index e1a115f5..b2e582df 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -12,7 +12,7 @@ jobs: strategy: matrix: platform: ["native_posix", "native_posix_64", "mps2_an521"] - asserts: ["", "-x VERBOSE=ON -x ASSERTS=ON"] + asserts: ["", "-x VERBOSE=ON -x ASSERTS=ON -e no_verbose"] name: Merge tests 1 (${{ matrix.platform }}${{ matrix.asserts != '' && ' with asserts' || '' }}) steps: - name: Checkout the code diff --git a/README.md b/README.md index 00c86ee4..43da8c5f 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,27 @@ ZCBOR_STATE_D(decode_state, n, payload, payload_len, elem_count, n_flags); ZCBOR_STATE_E(encode_state, n, payload, payload_len, 0); ``` +Diagnostic printing of CBOR data +-------------------------------- + +The C library contains a function (`zcbor_print_cbor()`) for printing CBOR data to terminal in a human readable way. +The functionality must be enabled via the `ZCBOR_PRINT_CBOR` configuration option for the function to be available. +By also defining `ZCBOR_PRINT_CBOR_PRETTY`, the output is made more readable via more thorough interpretation, and colorized using ANSI escape codes, see the figure below for the difference. +The color choices can be configured via the `ZCBOR_PRINT_CBOR_COLOR_*` (`HEADER`, `VALUE`, `DESC`, `TAG`), the defaults are red, blue, green, and yellow respectively. +If the `ZCBOR_PRINT_CBOR_PRETTY` functionality is wanted without the color, set all the `ZCBOR_*_COLOR` definitions to empty strings. +If changing the color, the defines should be full ANSI escape codes: + +```c +/* Make the header green */ +#define ZCBOR_PRINT_CBOR_COLOR_HEADER "\x1B[32m" +``` + +![`zcbor_print_cbor() output`](images/zcbor_print_cbor_ex1.png) +Figure: Example output from `zcbor_print_cbor()`, without and with `ZCBOR_PRINT_CBOR_PRETTY`. + +By default, `zcbor_print_cbor()` uses Zephyr's `printk` to print. +To change this, define `ZCBOR_PRINT_FUNC` to your preferred function (must follow the `printf` signature). + Configuration ------------- @@ -98,6 +119,9 @@ Name | Description `ZCBOR_STOP_ON_ERROR` | Enable the `stop_on_error` functionality. This makes all functions abort their execution if called when an error has already happened. `ZCBOR_BIG_ENDIAN` | All decoded values are returned as big-endian. The default is little-endian. `ZCBOR_MAP_SMART_SEARCH` | Applies to decoding of unordered maps. When enabled, a flag is kept for each element in an array, ensuring it is not processed twice. If disabled, a count is kept for map as a whole. Enabling increases code size and memory usage, and requires the state variable to possess the memory necessary for the flags. +`ZCBOR_PRINT_CBOR` | Enable the `zcbor_print_cbor()` function for printing CBOR. +`ZCBOR_PRINT_CBOR_PRETTY` | Enable color printing and better readability for `zcbor_print_cbor()`. `ZCBOR_PRINT_CBOR` must also be defined. This leads to bigger code size. +`ZCBOR_PRINT_FUNC` | Function used for all printing (`zcbor_log*()`, `zcbor_trace()`, `zcbor_print*()`). When undefined, the default is `printf` Python script and module diff --git a/images/zcbor_print_cbor_ex1.png b/images/zcbor_print_cbor_ex1.png new file mode 100644 index 0000000000000000000000000000000000000000..a807434ef9eef1cc9138008d1ed201cd12c1e243 GIT binary patch literal 220966 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

TGH9x#Q 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 xe}$d*<> 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 Q-!D_A1;?c$b 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ȷAW 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 H-{bxP&-hC{ literal 0 HcmV?d00001 diff --git a/include/zcbor_common.h b/include/zcbor_common.h index 87988971..48cd7f4f 100644 --- a/include/zcbor_common.h +++ b/include/zcbor_common.h @@ -48,6 +48,10 @@ struct zcbor_string_fragment { #define MAX(a, b) (((a) < (b)) ? (b) : (a)) #endif +#ifndef NAN +#define NAN (0.0/0.0) +#endif + #ifndef ZCBOR_ARRAY_SIZE #define ZCBOR_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) #endif diff --git a/include/zcbor_decode.h b/include/zcbor_decode.h index 61a6f176..fa39e31a 100644 --- a/include/zcbor_decode.h +++ b/include/zcbor_decode.h @@ -440,6 +440,17 @@ void zcbor_bstr_next_fragment(zcbor_state_t *state, /** Can be used on any fragment to tell if it is the final fragment of the string. */ bool zcbor_is_last_fragment(const struct zcbor_string_fragment *fragment); +/** Diagnostic printing of CBOR data + * + * Traverses and prints one CBOR element, analogous to @ref zcbor_any_skip. + * Must be enabled via ZCBOR_PRINT_CBOR. Can be modified via + * ZCBOR_PRINT_CBOR_PRETTY, ZCBOR_PRINT_CBOR_COLOR_HEADER, ZCBOR_PRINT_CBOR_COLOR_VALUE, + * ZCBOR_PRINT_CBOR_COLOR_DESC, ZCBOR_PRINT_CBOR_COLOR_TAG, and ZCBOR_PRINT_FUNC. + * + * See the README for more information. +*/ +bool zcbor_print_cbor(zcbor_state_t *state); + #ifdef __cplusplus } #endif diff --git a/include/zcbor_print.h b/include/zcbor_print.h index ee7db693..2ba96462 100644 --- a/include/zcbor_print.h +++ b/include/zcbor_print.h @@ -147,6 +147,247 @@ static void zcbor_print_error(int error) zcbor_do_print("%s\r\n", zcbor_error_str(error)); } +#ifdef ZCBOR_PRINT_CBOR +static bool indent_printed = false; + +__attribute__((used)) +static void zcbor_print_indent(size_t indent_len) +{ + if (!indent_printed) { + for (int i = 0; i < indent_len; i++) { + zcbor_do_print("| "); + } + indent_printed = true; + } +} + +__attribute__((used)) +static void zcbor_print_newline(void) +{ + zcbor_do_print("\r\n"); + indent_printed = false; +} + +#define BYTES_PER_LINE 16 + +__attribute__((used)) +static void zcbor_print_str(const uint8_t *str, size_t len, size_t indent_len) +{ + for (size_t i = 0; i < len; i++) { + if (!(i % BYTES_PER_LINE)) { + if (i > 0) {zcbor_print_newline();} + zcbor_print_indent(indent_len); + zcbor_do_print("0x"); + } + zcbor_do_print("%02x ", str[i]); + } +} + +__attribute__((used)) +static void zcbor_print_bstr(uint8_t const *payload, size_t len, size_t indent_len) +{ + zcbor_print_str(payload, len, indent_len); + zcbor_print_newline(); +} + +static void zcbor_print_tstr(uint8_t const *payload, size_t len, size_t indent_len); + +__attribute__((used)) +static void zcbor_print_btstr(uint8_t const *payload, size_t len, bool is_bstr, size_t indent_len) +{ + if (is_bstr) { + zcbor_print_bstr(payload, len, indent_len); + } else { + zcbor_print_tstr(payload, len, indent_len); + } +} + + +#ifdef ZCBOR_PRINT_CBOR_PRETTY +#include +#include +#include +#include +#include "zcbor_common.h" +#define RESET_COLOR "\x1B[0m" + +#ifndef ZCBOR_PRINT_CBOR_COLOR_HEADER +#define ZCBOR_PRINT_CBOR_COLOR_HEADER "\x1B[31m" /* red */ +#endif +#ifndef ZCBOR_PRINT_CBOR_COLOR_VALUE +#define ZCBOR_PRINT_CBOR_COLOR_VALUE "\x1B[34m" /* blue */ +#endif +#ifndef ZCBOR_PRINT_CBOR_COLOR_DESC +#define ZCBOR_PRINT_CBOR_COLOR_DESC "\x1B[32m" /* green */ +#endif +#ifndef ZCBOR_PRINT_CBOR_COLOR_TAG +#define ZCBOR_PRINT_CBOR_COLOR_TAG "\x1B[33m" /* yellow */ +#endif + + +const static char *zcbor_header_byte_strings[] = { + "", "", "bstr", "tstr", "list", "map", "tag", "simple" +}; + + +__attribute__((used)) +static const char *zcbor_header_byte_str(uint8_t header_byte) +{ + zcbor_major_type_t major_type = ZCBOR_MAJOR_TYPE(header_byte); + uint8_t additional = ZCBOR_ADDITIONAL(header_byte); + const char *simple_strings[] = {"false", "true", "nil", "undefined"}; + + if ((major_type < ZCBOR_MAJOR_TYPE_SIMPLE) + || (additional < ZCBOR_BOOL_TO_SIMPLE) + || (additional == ZCBOR_VALUE_IS_1_BYTE)) { + return zcbor_header_byte_strings[major_type]; + } else if (additional <= ZCBOR_VALUE_IN_HEADER) { + return simple_strings[additional - ZCBOR_BOOL_TO_SIMPLE]; + } + + return ""; +} + +__attribute__((used)) +static bool zcbor_print_float(int8_t additional, uint64_t value) +{ + uint32_t value32; + double dvalue; + + switch(additional) { + case ZCBOR_VALUE_IS_2_BYTES: + dvalue = (double)zcbor_float16_to_32((uint16_t)value); + break; + case ZCBOR_VALUE_IS_4_BYTES: + value32 = (uint32_t)value; + dvalue = (double)(*(float *)&value32); + break; + case ZCBOR_VALUE_IS_8_BYTES: + dvalue = *(double *)&value; + break; + default: + return false; + } + zcbor_do_print("%f", dvalue); + return true; +} + +__attribute__((used)) +static void zcbor_print_numeric(uint8_t header_byte, uint64_t value) +{ + zcbor_major_type_t major_type = ZCBOR_MAJOR_TYPE(header_byte); + uint8_t additional = ZCBOR_ADDITIONAL(header_byte); + + if (major_type == ZCBOR_MAJOR_TYPE_NINT) { + zcbor_do_print("-%llu", value + 1); + } else if (major_type == ZCBOR_MAJOR_TYPE_SIMPLE + && additional >= ZCBOR_BOOL_TO_SIMPLE + && additional <= ZCBOR_VALUE_IN_HEADER) { + /* Do nothing */ + } else if (additional == ZCBOR_VALUE_IS_INDEFINITE_LENGTH) { + /* Do nothing */ + } else if (major_type == ZCBOR_MAJOR_TYPE_SIMPLE + && zcbor_print_float(additional, value)) { + /* Do nothing, already printed */ + } else { + zcbor_do_print("%llu", value); + } +} + +__attribute__((used)) +static void zcbor_print_value(uint8_t const *payload, size_t len, uint64_t value, size_t indent_len) +{ + uint8_t header_byte = *payload; + + zcbor_print_indent(indent_len); + zcbor_do_print(ZCBOR_PRINT_CBOR_COLOR_HEADER "0x%02x " ZCBOR_PRINT_CBOR_COLOR_VALUE, + header_byte); + if (len > 0) { + zcbor_print_str(payload + 1, len - 1, 0); + } + zcbor_do_print(ZCBOR_PRINT_CBOR_COLOR_DESC "(%s", zcbor_header_byte_str(header_byte)); + zcbor_print_numeric(header_byte, value); + zcbor_do_print(")" RESET_COLOR); + zcbor_print_newline(); +} + +__attribute__((used)) +static void zcbor_print_tstr(uint8_t const *payload, size_t len, size_t indent_len) +{ + zcbor_print_indent(indent_len); + zcbor_do_print("\""); + size_t prev_i = 0; + + for (size_t i = 0; i < len; i++) { + if (payload[i] == '\n') { + /* Add indent after newlines. */ + zcbor_do_print("%.*s", i - prev_i, payload + prev_i); + prev_i = i + 1; + zcbor_print_newline(); + zcbor_print_indent(indent_len); + } + } + zcbor_do_print("%.*s\"", len - prev_i, payload + prev_i); + zcbor_print_newline(); +} + +__attribute__((used)) +static void zcbor_print_tag(uint32_t tag, size_t indent_len) +{ + zcbor_print_indent(indent_len); + zcbor_do_print(ZCBOR_PRINT_CBOR_COLOR_TAG "0x%02x ", tag); +} + +__attribute__((used)) +static void zcbor_print_end(zcbor_major_type_t major_type, size_t indent_len) +{ + zcbor_print_indent(indent_len); + zcbor_do_print(ZCBOR_PRINT_CBOR_COLOR_HEADER "0xff " ZCBOR_PRINT_CBOR_COLOR_DESC "(%s end)" RESET_COLOR, + zcbor_header_byte_strings[major_type]); + zcbor_print_newline(); +} + +#else + +__attribute__((used)) +static void zcbor_print_tstr(uint8_t const *payload, size_t len, size_t indent_len) +{ + zcbor_do_print("\"%.*s\"", len, payload); + zcbor_print_newline(); +} + +__attribute__((used)) +static void zcbor_print_value(uint8_t const *payload, size_t len, uint64_t value, size_t indent_len) +{ + zcbor_print_str(payload, len, indent_len); + if (len) { + if (ZCBOR_ADDITIONAL(*payload) == ZCBOR_VALUE_IS_INDEFINITE_LENGTH) { + zcbor_do_print("(start)"); + } else { + zcbor_do_print("(%llu)", value); + } + zcbor_print_newline(); + } +} + +__attribute__((used)) +static void zcbor_print_tag(uint32_t tag, size_t indent_len) +{ + zcbor_print_indent(indent_len); + zcbor_do_print("0x%02x ", tag); +} + +__attribute__((used)) +static void zcbor_print_end(zcbor_major_type_t major_type, size_t indent_len) +{ + zcbor_print_indent(indent_len); + zcbor_do_print("0xff (end)"); + zcbor_print_newline(); +} + +#endif +#endif + #ifdef __cplusplus } #endif diff --git a/samples/pet/src/pet_decode.c b/samples/pet/src/pet_decode.c index 8f6e50dd..128a9a2d 100644 --- a/samples/pet/src/pet_decode.c +++ b/samples/pet/src/pet_decode.c @@ -13,6 +13,7 @@ #include #include #include "zcbor_decode.h" +#include "zcbor_print.h" #include "pet_decode.h" #include "zcbor_print.h" diff --git a/samples/pet/src/pet_encode.c b/samples/pet/src/pet_encode.c index e006a490..1bb464ba 100644 --- a/samples/pet/src/pet_encode.c +++ b/samples/pet/src/pet_encode.c @@ -13,6 +13,7 @@ #include #include #include "zcbor_encode.h" +#include "zcbor_print.h" #include "pet_encode.h" #include "zcbor_print.h" diff --git a/src/zcbor_decode.c b/src/zcbor_decode.c index 92f9fe51..21df2aa2 100644 --- a/src/zcbor_decode.c +++ b/src/zcbor_decode.c @@ -962,6 +962,7 @@ bool zcbor_search_key_tstr_term(zcbor_state_t *state, char const *str, size_t ma } +#ifndef ZCBOR_CANONICAL static bool array_end_expect(zcbor_state_t *state) { INITIAL_CHECKS(); @@ -970,6 +971,7 @@ static bool array_end_expect(zcbor_state_t *state) state->payload++; return true; } +#endif static bool list_map_end_decode(zcbor_state_t *state) @@ -1397,46 +1399,71 @@ bool zcbor_float_pexpect(zcbor_state_t *state, double *expected) } -bool zcbor_any_skip(zcbor_state_t *state, void *result) +#ifdef ZCBOR_PRINT_CBOR +static bool traverse_element(zcbor_state_t *state, bool do_print, uint8_t indent_len); + +bool zcbor_print_cbor(zcbor_state_t *state) { - PRINT_FUNC(); - zcbor_assert_state(result == NULL, - "'any' type cannot be returned, only skipped.\r\n"); - (void)result; + return traverse_element(state, true, 0); +} - INITIAL_CHECKS(); - zcbor_major_type_t major_type = ZCBOR_MAJOR_TYPE(*state->payload); - uint8_t additional = ZCBOR_ADDITIONAL(*state->payload); - uint64_t value = 0; /* In case of indefinite_length_array. */ +static void print_cbor_if_valid(zcbor_state_t *state, size_t len, uint8_t indent_len); + +static void print_btstr_w_cbor(zcbor_state_t *state, size_t len, bool is_bstr, uint8_t indent_len) +{ + if (len) { + zcbor_print_btstr(state->payload, len, is_bstr, indent_len); + if (is_bstr) { + print_cbor_if_valid(state, len, indent_len); + } + } +} + +#define PRINT_CBOR_IF(do_print, func, ...) do { \ + if (do_print) func(__VA_ARGS__); \ +} while (0) + +#else +#define PRINT_CBOR_IF(do_print, func, ...) /* Disabled */ +#endif + +static bool traverse_element(zcbor_state_t *state, bool do_print, uint8_t indent_len) +{ + /* INITIAL_CHECKS(); done by zcbor_tag_decode() below. */ zcbor_state_t state_copy; + uint32_t tag_dummy; memcpy(&state_copy, state, sizeof(zcbor_state_t)); - while (major_type == ZCBOR_MAJOR_TYPE_TAG) { - uint32_t tag_dummy; - - if (!zcbor_tag_decode(&state_copy, &tag_dummy)) { - ZCBOR_FAIL(); - } - ZCBOR_ERR_IF(state_copy.payload >= state_copy.payload_end, ZCBOR_ERR_NO_PAYLOAD); - major_type = ZCBOR_MAJOR_TYPE(*state_copy.payload); - additional = ZCBOR_ADDITIONAL(*state_copy.payload); + while (zcbor_tag_decode(&state_copy, &tag_dummy)) { + PRINT_CBOR_IF(do_print, zcbor_print_tag, tag_dummy, indent_len); } + zcbor_major_type_t major_type = ZCBOR_MAJOR_TYPE(*state_copy.payload); + uint64_t value = 0; /* 0 in case of indefinite_length_array. */ + uint8_t const *payload_after_tags = state_copy.payload; + (void)payload_after_tags; /* Not always used. */ #ifdef ZCBOR_CANONICAL const bool indefinite_length_array = false; #else + uint8_t additional = ZCBOR_ADDITIONAL(*state_copy.payload); const bool indefinite_length_array = ((additional == ZCBOR_VALUE_IS_INDEFINITE_LENGTH) && ((major_type == ZCBOR_MAJOR_TYPE_LIST) || (major_type == ZCBOR_MAJOR_TYPE_MAP))); #endif - if (!indefinite_length_array && !value_extract(&state_copy, &value, sizeof(value))) { + if (indefinite_length_array) { + state_copy.payload++; + } else if (!value_extract(&state_copy, &value, sizeof(value))) { /* Can happen because of elem_count (or payload_end) */ ZCBOR_FAIL(); } + PRINT_CBOR_IF(do_print, zcbor_print_value, payload_after_tags, + state_copy.payload - payload_after_tags, value, indent_len); + switch (major_type) { case ZCBOR_MAJOR_TYPE_BSTR: + /* Fallthrough */ case ZCBOR_MAJOR_TYPE_TSTR: /* 'value' is the length of the BSTR or TSTR. * The subtraction is safe because value_extract() above @@ -1444,6 +1471,10 @@ bool zcbor_any_skip(zcbor_state_t *state, void *result) ZCBOR_ERR_IF( value > (uint64_t)(state_copy.payload_end - state_copy.payload), ZCBOR_ERR_NO_PAYLOAD); + + PRINT_CBOR_IF(do_print, print_btstr_w_cbor, &state_copy, (size_t)value, + major_type == ZCBOR_MAJOR_TYPE_BSTR, indent_len + 1); + (state_copy.payload) += value; break; case ZCBOR_MAJOR_TYPE_MAP: @@ -1452,18 +1483,18 @@ bool zcbor_any_skip(zcbor_state_t *state, void *result) /* fallthrough */ case ZCBOR_MAJOR_TYPE_LIST: if (indefinite_length_array) { - state_copy.payload++; value = ZCBOR_LARGE_ELEM_COUNT; } state_copy.elem_count = (size_t)value; state_copy.decode_state.indefinite_length_array = indefinite_length_array; while (!zcbor_array_at_end(&state_copy)) { - if (!zcbor_any_skip(&state_copy, NULL)) { + if (!traverse_element(&state_copy, do_print, indent_len + 1)) { ZCBOR_FAIL(); } } - if (indefinite_length_array && !array_end_expect(&state_copy)) { - ZCBOR_FAIL(); + if (indefinite_length_array) { + state_copy.payload++; /* payload bounds checked by zcbor_array_at_end(). */ + PRINT_CBOR_IF(do_print, zcbor_print_end, major_type, indent_len); } break; default: @@ -1477,6 +1508,34 @@ bool zcbor_any_skip(zcbor_state_t *state, void *result) return true; } +__attribute__((used)) +static void print_cbor_if_valid(zcbor_state_t *state, size_t len, uint8_t indent_len) +{ + uint8_t const *payload_bak = state->payload; + size_t elem_count_bak = state->elem_count; + + state->elem_count++; + if (traverse_element(state, false, indent_len) + && (state->payload == (payload_bak + len))) { + state->elem_count++; + state->payload = payload_bak; + (void)traverse_element(state, true, indent_len); + } + state->payload = payload_bak; + state->elem_count = elem_count_bak; +} + + +bool zcbor_any_skip(zcbor_state_t *state, void *result) +{ + PRINT_FUNC(); + zcbor_assert_state(result == NULL, + "'any' type cannot be returned, only skipped.\r\n"); + (void)result; + + return traverse_element(state, false, 0); +} + bool zcbor_tag_decode(zcbor_state_t *state, uint32_t *result) { diff --git a/tests/cmake/test_template.cmake b/tests/cmake/test_template.cmake index a87a7fb5..41b8d17e 100644 --- a/tests/cmake/test_template.cmake +++ b/tests/cmake/test_template.cmake @@ -16,6 +16,14 @@ if (CANONICAL) zephyr_compile_definitions(ZCBOR_CANONICAL) endif() +if (ZCBOR_PRINT_CBOR) + zephyr_compile_definitions(ZCBOR_PRINT_CBOR) +endif() + +if (ZCBOR_PRINT_COLORS) + zephyr_compile_definitions(ZCBOR_PRINT_CBOR_PRETTY) +endif() + if (CONFIG_BIG_ENDIAN OR BIG_ENDIAN) zephyr_compile_definitions(ZCBOR_BIG_ENDIAN) endif() diff --git a/tests/decode/test2_suit/CMakeLists.txt b/tests/decode/test2_suit/CMakeLists.txt index bc2d4ae4..63595f38 100644 --- a/tests/decode/test2_suit/CMakeLists.txt +++ b/tests/decode/test2_suit/CMakeLists.txt @@ -36,7 +36,7 @@ include(${PROJECT_BINARY_DIR}/manifest2.cmake) target_link_libraries(manifest2 PRIVATE zephyr_interface) target_link_libraries(app PRIVATE manifest2) -if (NOT VERBOSE) +if (NOT VERBOSE AND NOT ZCBOR_PRINT_CBOR) # VERBOSE means including printk which doesn't build with these options. target_compile_options(manifest2 PRIVATE -Wpedantic -Wconversion -Wdouble-promotion) endif() diff --git a/tests/decode/test5_corner_cases/CMakeLists.txt b/tests/decode/test5_corner_cases/CMakeLists.txt index 18a586aa..9e54d97a 100644 --- a/tests/decode/test5_corner_cases/CMakeLists.txt +++ b/tests/decode/test5_corner_cases/CMakeLists.txt @@ -79,7 +79,7 @@ if (TEST_INDEFINITE_LENGTH_ARRAYS) target_compile_definitions(app PUBLIC TEST_INDEFINITE_LENGTH_ARRAYS) endif() -if (NOT VERBOSE AND CONFIG_MINIMAL_LIBC) +if (NOT VERBOSE AND CONFIG_MINIMAL_LIBC AND NOT ZCBOR_PRINT_CBOR) # VERBOSE means including printk which doesn't build with these options. target_compile_options(corner_cases PRIVATE -Wpedantic -Wconversion -Wdouble-promotion) endif() diff --git a/tests/encode/test4_senml/CMakeLists.txt b/tests/encode/test4_senml/CMakeLists.txt index dfd858e7..5d882e24 100644 --- a/tests/encode/test4_senml/CMakeLists.txt +++ b/tests/encode/test4_senml/CMakeLists.txt @@ -32,7 +32,7 @@ include(${PROJECT_BINARY_DIR}/senml.cmake) target_link_libraries(senml PRIVATE zephyr_interface) target_link_libraries(app PRIVATE senml) -if (NOT VERBOSE) +if (NOT VERBOSE AND NOT ZCBOR_PRINT_CBOR) # VERBOSE means including printk which doesn't build with these options. target_compile_options(senml PRIVATE -Wpedantic -Wconversion) endif() diff --git a/tests/scripts/test_repo_files.py b/tests/scripts/test_repo_files.py index e7f89d79..7547a8a4 100644 --- a/tests/scripts/test_repo_files.py +++ b/tests/scripts/test_repo_files.py @@ -142,7 +142,7 @@ def __init__(self, *args, **kwargs): repo_url_args = ['git', 'remote', 'get-url', remote] repo_url = check_output(repo_url_args).decode('utf-8').strip().strip('.git') if 'github.com' in repo_url: - self.base_url = (repo_url + '/tree/' + remote_branch + '/') + self.base_url = (repo_url + '/blob/' + remote_branch + '/') else: # The URL is not in github.com, so we are not sure it is constructed correctly. self.base_url = None diff --git a/tests/unit/test4_print_cbor/CMakeLists.txt b/tests/unit/test4_print_cbor/CMakeLists.txt new file mode 100644 index 00000000..b7ac9bb7 --- /dev/null +++ b/tests/unit/test4_print_cbor/CMakeLists.txt @@ -0,0 +1,23 @@ +# +# Copyright (c) 2023 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: Apache-2.0 +# + +cmake_minimum_required(VERSION 3.13.1) + +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) +project(test4_print_cbor) + +set(REPO_ROOT ${CMAKE_CURRENT_LIST_DIR}/../../..) + +include(${REPO_ROOT}/tests/cmake/test_template.cmake) + +FILE(GLOB zcbor_sources ${REPO_ROOT}/src/*.c) +target_sources(app PRIVATE + ${zcbor_sources}) + +target_include_directories(app PRIVATE ${REPO_ROOT}/include) + +zephyr_compile_definitions(ZCBOR_STOP_ON_ERROR) +zephyr_compile_definitions(ZCBOR_PRINT_CBOR) diff --git a/tests/unit/test4_print_cbor/prj.conf b/tests/unit/test4_print_cbor/prj.conf new file mode 100644 index 00000000..106c73da --- /dev/null +++ b/tests/unit/test4_print_cbor/prj.conf @@ -0,0 +1,7 @@ +# +# Copyright (c) 2023 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: Apache-2.0 +# + +CONFIG_CBPRINTF_FP_SUPPORT=y diff --git a/tests/unit/test4_print_cbor/src/main.c b/tests/unit/test4_print_cbor/src/main.c new file mode 100644 index 00000000..8a7ba276 --- /dev/null +++ b/tests/unit/test4_print_cbor/src/main.c @@ -0,0 +1,161 @@ +/* + * Copyright (c) 2023 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include + + +uint8_t suit_example[] = { + 0xd8, 0x6b, 0xa4, 0x02, 0x58, 0x73, 0x82, 0x58, 0x24, 0x82, 0x2f, + 0x58, 0x20, 0x86, 0xbb, 0xcc, 0x88, 0x23, 0xf3, 0xa4, 0x44, 0x19, + 0x56, 0xf0, 0x2b, 0x00, 0x13, 0x02, 0xf5, 0x03, 0x48, 0x74, 0x61, + 0xfb, 0x77, 0xfa, 0xb0, 0x86, 0xef, 0xe3, 0x15, 0x30, 0x88, 0x1f, + 0x97, 0x58, 0x4a, 0xd2, 0x84, 0x43, 0xa1, 0x01, 0x26, 0xa0, 0xf6, + 0x58, 0x40, 0x8c, 0x6b, 0xf0, 0x14, 0xb6, 0x2f, 0xa7, 0xb8, 0x0d, + 0xd5, 0xeb, 0x2f, 0xf7, 0x02, 0x4a, 0xb5, 0x2a, 0x11, 0x6c, 0xd1, + 0xbc, 0x0d, 0xb1, 0xf1, 0x03, 0x11, 0xb3, 0x1e, 0x7b, 0x29, 0xe3, + 0xbe, 0xae, 0x76, 0x5f, 0xad, 0x42, 0xfb, 0x86, 0x00, 0xfa, 0x13, + 0xa6, 0xbf, 0x6d, 0x5e, 0x45, 0x92, 0x9a, 0x05, 0xa6, 0x07, 0x67, + 0xf9, 0xb7, 0x42, 0x0a, 0x50, 0x02, 0xa0, 0x5d, 0x95, 0xe4, 0x9e, + 0x03, 0x58, 0xbb, 0xa7, 0x01, 0x01, 0x02, 0x02, 0x03, 0x58, 0x5f, + 0xa2, 0x02, 0x81, 0x81, 0x41, 0x00, 0x04, 0x58, 0x56, 0x86, 0x14, + 0xa4, 0x01, 0x50, 0xfa, 0x6b, 0x4a, 0x53, 0xd5, 0xad, 0x5f, 0xdf, + 0xbe, 0x9d, 0xe6, 0x63, 0xe4, 0xd4, 0x1f, 0xfe, 0x02, 0x50, 0x14, + 0x92, 0xaf, 0x14, 0x25, 0x69, 0x5e, 0x48, 0xbf, 0x42, 0x9b, 0x2d, + 0x51, 0xf2, 0xab, 0x45, 0x03, 0x58, 0x24, 0x82, 0x2f, 0x58, 0x20, + 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, + 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, + 0xcd, 0xef, 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 0x0e, + 0x19, 0x87, 0xd0, 0x01, 0x0f, 0x02, 0x0f, 0x07, 0x43, 0x82, 0x03, + 0x0f, 0x09, 0x43, 0x82, 0x17, 0x02, 0x11, 0x82, 0x2f, 0x58, 0x20, + 0xcf, 0xa9, 0x0c, 0x5c, 0x58, 0x59, 0x5e, 0x7f, 0x51, 0x19, 0xa7, + 0x2f, 0x80, 0x3f, 0xd0, 0x37, 0x0b, 0x3e, 0x6a, 0xbb, 0xec, 0x63, + 0x15, 0xcd, 0x38, 0xf6, 0x31, 0x35, 0x28, 0x1b, 0xc4, 0x98, 0x17, + 0x82, 0x2f, 0x58, 0x20, 0x2b, 0xfc, 0x4d, 0x0c, 0xc6, 0x68, 0x0b, + 0xe7, 0xdd, 0x9f, 0x5c, 0xa3, 0x0a, 0xa2, 0xbb, 0x5d, 0x19, 0x98, + 0x14, 0x5d, 0xe3, 0x3d, 0x54, 0x10, 0x1b, 0x80, 0xe2, 0xca, 0x49, + 0xfa, 0xf9, 0x18, 0x11, 0x58, 0x3c, 0x86, 0x14, 0xa1, 0x15, 0x78, + 0x32, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x65, + 0x72, 0x79, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x2f, 0x70, 0x61, 0x74, + 0x68, 0x2f, 0x74, 0x6f, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x66, + 0x69, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x6e, 0x15, 0x02, 0x03, 0x0f, + 0x17, 0x59, 0x02, 0x04, 0xa2, 0x01, 0x79, 0x01, 0x9d, 0x23, 0x23, + 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x32, 0x3a, + 0x20, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x74, 0x61, 0x6e, 0x65, 0x6f, + 0x75, 0x73, 0x20, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x2c, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, + 0x20, 0x42, 0x6f, 0x6f, 0x74, 0x2c, 0x20, 0x53, 0x65, 0x76, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x65, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x20, 0x28, 0x7b, 0x7b, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2d, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x7d, 0x7d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2a, + 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x42, 0x6f, 0x6f, + 0x74, 0x20, 0x28, 0x7b, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x2d, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x62, + 0x6f, 0x6f, 0x74, 0x7d, 0x7d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x2a, 0x20, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x20, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x7b, + 0x7b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2d, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x7d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, + 0x73, 0x6f, 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x28, 0x7b, 0x7b, 0x6f, 0x76, 0x72, 0x2d, 0x73, 0x65, + 0x76, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x7d, 0x7d, 0x29, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x28, + 0x7b, 0x7b, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x2d, + 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x2d, 0x74, 0x65, 0x78, 0x74, + 0x7d, 0x7d, 0x29, 0x2e, 0x81, 0x41, 0x00, 0xa2, 0x03, 0x67, 0x61, + 0x72, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x05, 0x78, 0x52, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x64, 0x65, 0x6d, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x20, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x2c, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, 0x6f, + 0x6e, 0x65, 0x2e +}; + + +int main(void) +{ + uint8_t payload[150] = {0}; + uint8_t bstr_ex[] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, + 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, + 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; + + ZCBOR_STATE_E(state_e, 3, payload, sizeof(payload), 0); + ZCBOR_STATE_D(print_state1, 3, payload, sizeof(payload), 30, 0); + ZCBOR_STATE_D(print_state2, 3, suit_example, sizeof(suit_example), 30, 0); + + state_e->constant_state->stop_on_error = true; + + zcbor_list_start_encode(state_e, 0); + zcbor_int32_put(state_e, 0); + zcbor_int32_put(state_e, 0x1234); + zcbor_int64_put(state_e, 9876543210); + zcbor_bstr_put_arr(state_e, bstr_ex); + zcbor_tstr_put_lit(state_e, "Hello World"); + zcbor_tag_encode(state_e, &(uint32_t){9}); + zcbor_tag_put(state_e, 0x1234); + zcbor_bool_put(state_e, true); + zcbor_bool_put(state_e, false); + zcbor_float16_put(state_e, 3.14); + zcbor_float32_put(state_e, 10.5); + zcbor_float64_put(state_e, 12.7); + zcbor_nil_put(state_e, NULL); + zcbor_undefined_put(state_e, NULL); + zcbor_bstr_start_encode(state_e); + zcbor_bstr_end_encode(state_e, NULL); + zcbor_list_start_encode(state_e, 1); + zcbor_map_start_encode(state_e, 2); + zcbor_tstr_put_lit(state_e, "Key0"); + zcbor_float32_put(state_e, 0.0); + zcbor_int32_put(state_e, 1); + zcbor_tstr_put_lit(state_e, "Value1"); + zcbor_map_end_encode(state_e, 2); + zcbor_list_end_encode(state_e, 1); + bool ret = zcbor_list_end_encode(state_e, 0); + + if (!ret) { + printk("Encode error: %d\r\n", zcbor_peek_error(state_e)); + return 1; + } + + k_msleep(1); + ret = zcbor_print_cbor(print_state1); + + if (!ret) { + printk("Print error 1: %d\r\n", zcbor_peek_error(print_state1)); + return 1; + } + + ret = zcbor_print_cbor(print_state2); + + if (!ret) { + printk("Print error 2: %d\r\n", zcbor_peek_error(print_state2)); + return 1; + } + + return 0; +} diff --git a/tests/unit/test4_print_cbor/testcase.yaml b/tests/unit/test4_print_cbor/testcase.yaml new file mode 100644 index 00000000..d56cd920 --- /dev/null +++ b/tests/unit/test4_print_cbor/testcase.yaml @@ -0,0 +1,474 @@ +tests: + zcbor.unit.test4_print_cbor: + # Note: mps2_an521 sometimes faults during printing and so is excluded here + # I don't know why, but I think it's unrelated. + platform_allow: native_posix qemu_malta_be + extra_args: ZCBOR_PRINT_CBOR=ON + tags: zcbor unit test4 print_cbor no_verbose + timeout: 10 + harness: console + harness_config: + type: multi_line + regex: + - '0x9f \(start\)' + - '\| 0x00 \(0\)' + - '\| 0x19 12 34 \(4660\)' + - '\| 0x1b 00 00 00 02 4c b0 16 ea \(9876543210\)' + - '\| 0x58 20 \(32\)' + - '\| \| 0x01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10' + - '\| \| 0x00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff' + - '\| 0x6b \(11\)' + - '"Hello World"' + - '\| 0x09 0x1234 0xf5 \(21\)' + - '\| 0xf4 \(20\)' + - '\| 0xf9 42 48 \(16968\)' + - '\| 0xfa 41 28 00 00 \(1093140480\)' + - '\| 0xfb 40 29 66 66 66 66 66 66 \(4623339082463209062\)' + - '\| 0xf6 \(22\)' + - '\| 0xf7 \(23\)' + - '\| 0x40 \(0\)' + - '\| 0x9f \(start\)' + - '\| \| 0xbf \(start\)' + - '\| \| \| 0x64 \(4\)' + - '"Key0"' + - '\| \| \| 0xfa 00 00 00 00 \(0\)' + - '\| \| \| 0x01 \(1\)' + - '\| \| \| 0x66 \(6\)' + - '"Value1"' + - '\| \| 0xff \(end\)' + - '\| 0xff \(end\)' + - '0xff \(end\)' + - '0x6b 0xa4 \(4\)' + - '\| 0x02 \(2\)' + - '\| 0x58 73 \(115\)' + - '\| \| 0x82 58 24 82 2f 58 20 86 bb cc 88 23 f3 a4 44 19' + - '\| \| 0x56 f0 2b 00 13 02 f5 03 48 74 61 fb 77 fa b0 86' + - '\| \| 0xef e3 15 30 88 1f 97 58 4a d2 84 43 a1 01 26 a0' + - '\| \| 0xf6 58 40 8c 6b f0 14 b6 2f a7 b8 0d d5 eb 2f f7' + - '\| \| 0x02 4a b5 2a 11 6c d1 bc 0d b1 f1 03 11 b3 1e 7b' + - '\| \| 0x29 e3 be ae 76 5f ad 42 fb 86 00 fa 13 a6 bf 6d' + - '\| \| 0x5e 45 92 9a 05 a6 07 67 f9 b7 42 0a 50 02 a0 5d' + - '\| \| 0x95 e4 9e' + - '\| \| 0x82 \(2\)' + - '\| \| \| 0x58 24 \(36\)' + - '\| \| \| \| 0x82 2f 58 20 86 bb cc 88 23 f3 a4 44 19 56 f0 2b' + - '\| \| \| \| 0x00 13 02 f5 03 48 74 61 fb 77 fa b0 86 ef e3 15' + - '\| \| \| \| 0x30 88 1f 97' + - '\| \| \| \| 0x82 \(2\)' + - '\| \| \| \| \| 0x2f \(15\)' + - '\| \| \| \| \| 0x58 20 \(32\)' + - '\| \| \| \| \| \| 0x86 bb cc 88 23 f3 a4 44 19 56 f0 2b 00 13 02 f5' + - '\| \| \| \| \| \| 0x03 48 74 61 fb 77 fa b0 86 ef e3 15 30 88 1f 97' + - '\| \| \| 0x58 4a \(74\)' + - '\| \| \| \| 0xd2 84 43 a1 01 26 a0 f6 58 40 8c 6b f0 14 b6 2f' + - '\| \| \| \| 0xa7 b8 0d d5 eb 2f f7 02 4a b5 2a 11 6c d1 bc 0d' + - '\| \| \| \| 0xb1 f1 03 11 b3 1e 7b 29 e3 be ae 76 5f ad 42 fb' + - '\| \| \| \| 0x86 00 fa 13 a6 bf 6d 5e 45 92 9a 05 a6 07 67 f9' + - '\| \| \| \| 0xb7 42 0a 50 02 a0 5d 95 e4 9e' + - '\| \| \| \| 0x12 0x84 \(4\)' + - '\| \| \| \| \| 0x43 \(3\)' + - '\| \| \| \| \| \| 0xa1 \(1\)' + - '\| \| \| \| \| \| \| 0x01 \(1\)' + - '\| \| \| \| \| \| \| 0x26 \(6\)' + - '\| \| \| \| \| 0xa0 \(0\)' + - '\| \| \| \| \| 0xf6 \(22\)' + - '\| \| \| \| \| 0x58 40 \(64\)' + - '\| \| \| \| \| \| 0x8c 6b f0 14 b6 2f a7 b8 0d d5 eb 2f f7 02 4a b5' + - '\| \| \| \| \| \| 0x2a 11 6c d1 bc 0d b1 f1 03 11 b3 1e 7b 29 e3 be' + - '\| \| \| \| \| \| 0xae 76 5f ad 42 fb 86 00 fa 13 a6 bf 6d 5e 45 92' + - '\| \| \| \| \| \| 0x9a 05 a6 07 67 f9 b7 42 0a 50 02 a0 5d 95 e4 9e' + - '\| 0x03 \(3\)' + - '\| 0x58 bb \(187\)' + - '\| \| 0xa7 01 01 02 02 03 58 5f a2 02 81 81 41 00 04 58' + - '\| \| 0x56 86 14 a4 01 50 fa 6b 4a 53 d5 ad 5f df be 9d' + - '\| \| 0xe6 63 e4 d4 1f fe 02 50 14 92 af 14 25 69 5e 48' + - '\| \| 0xbf 42 9b 2d 51 f2 ab 45 03 58 24 82 2f 58 20 00' + - '\| \| 0x11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 01' + - '\| \| 0x23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 0e' + - '\| \| 0x19 87 d0 01 0f 02 0f 07 43 82 03 0f 09 43 82 17' + - '\| \| 0x02 11 82 2f 58 20 cf a9 0c 5c 58 59 5e 7f 51 19' + - '\| \| 0xa7 2f 80 3f d0 37 0b 3e 6a bb ec 63 15 cd 38 f6' + - '\| \| 0x31 35 28 1b c4 98 17 82 2f 58 20 2b fc 4d 0c c6' + - '\| \| 0x68 0b e7 dd 9f 5c a3 0a a2 bb 5d 19 98 14 5d e3' + - '\| \| 0x3d 54 10 1b 80 e2 ca 49 fa f9 18' + - '\| \| 0xa7 \(7\)' + - '\| \| \| 0x01 \(1\)' + - '\| \| \| 0x01 \(1\)' + - '\| \| \| 0x02 \(2\)' + - '\| \| \| 0x02 \(2\)' + - '\| \| \| 0x03 \(3\)' + - '\| \| \| 0x58 5f \(95\)' + - '\| \| \| \| 0xa2 02 81 81 41 00 04 58 56 86 14 a4 01 50 fa 6b' + - '\| \| \| \| 0x4a 53 d5 ad 5f df be 9d e6 63 e4 d4 1f fe 02 50' + - '\| \| \| \| 0x14 92 af 14 25 69 5e 48 bf 42 9b 2d 51 f2 ab 45' + - '\| \| \| \| 0x03 58 24 82 2f 58 20 00 11 22 33 44 55 66 77 88' + - '\| \| \| \| 0x99 aa bb cc dd ee ff 01 23 45 67 89 ab cd ef fe' + - '\| \| \| \| 0xdc ba 98 76 54 32 10 0e 19 87 d0 01 0f 02 0f' + - '\| \| \| \| 0xa2 \(2\)' + - '\| \| \| \| \| 0x02 \(2\)' + - '\| \| \| \| \| 0x81 \(1\)' + - '\| \| \| \| \| \| 0x81 \(1\)' + - '\| \| \| \| \| \| \| 0x41 \(1\)' + - '\| \| \| \| \| \| \| \| 0x00 \(0\)' + - '\| \| \| \| \| 0x04 \(4\)' + - '\| \| \| \| \| 0x58 56 \(86\)' + - '\| \| \| \| \| \| 0x86 14 a4 01 50 fa 6b 4a 53 d5 ad 5f df be 9d e6' + - '\| \| \| \| \| \| 0x63 e4 d4 1f fe 02 50 14 92 af 14 25 69 5e 48 bf' + - '\| \| \| \| \| \| 0x42 9b 2d 51 f2 ab 45 03 58 24 82 2f 58 20 00 11' + - '\| \| \| \| \| \| 0x22 33 44 55 66 77 88 99 aa bb cc dd ee ff 01 23' + - '\| \| \| \| \| \| 0x45 67 89 ab cd ef fe dc ba 98 76 54 32 10 0e 19' + - '\| \| \| \| \| \| 0x87 d0 01 0f 02 0f' + - '\| \| \| \| \| \| 0x86 \(6\)' + - '\| \| \| \| \| \| \| 0x14 \(20\)' + - '\| \| \| \| \| \| \| 0xa4 \(4\)' + - '\| \| \| \| \| \| \| \| 0x01 \(1\)' + - '\| \| \| \| \| \| \| \| 0x50 \(16\)' + - '\| \| \| \| \| \| \| \| \| 0xfa 6b 4a 53 d5 ad 5f df be 9d e6 63 e4 d4 1f fe' + - '\| \| \| \| \| \| \| \| 0x02 \(2\)' + - '\| \| \| \| \| \| \| \| 0x50 \(16\)' + - '\| \| \| \| \| \| \| \| \| 0x14 92 af 14 25 69 5e 48 bf 42 9b 2d 51 f2 ab 45' + - '\| \| \| \| \| \| \| \| 0x03 \(3\)' + - '\| \| \| \| \| \| \| \| 0x58 24 \(36\)' + - '\| \| \| \| \| \| \| \| \| 0x82 2f 58 20 00 11 22 33 44 55 66 77 88 99 aa bb' + - '\| \| \| \| \| \| \| \| \| 0xcc dd ee ff 01 23 45 67 89 ab cd ef fe dc ba 98' + - '\| \| \| \| \| \| \| \| \| 0x76 54 32 10' + - '\| \| \| \| \| \| \| \| \| 0x82 \(2\)' + - '\| \| \| \| \| \| \| \| \| \| 0x2f \(15\)' + - '\| \| \| \| \| \| \| \| \| \| 0x58 20 \(32\)' + - '\| \| \| \| \| \| \| \| \| \| \| 0x00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff' + - '\| \| \| \| \| \| \| \| \| \| \| 0x01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10' + - '\| \| \| \| \| \| \| \| 0x0e \(14\)' + - '\| \| \| \| \| \| \| \| 0x19 87 d0 \(34768\)' + - '\| \| \| \| \| \| \| 0x01 \(1\)' + - '\| \| \| \| \| \| \| 0x0f \(15\)' + - '\| \| \| \| \| \| \| 0x02 \(2\)' + - '\| \| \| \| \| \| \| 0x0f \(15\)' + - '\| \| \| 0x07 \(7\)' + - '\| \| \| 0x43 \(3\)' + - '\| \| \| \| 0x82 \(2\)' + - '\| \| \| \| \| 0x03 \(3\)' + - '\| \| \| \| \| 0x0f \(15\)' + - '\| \| \| 0x09 \(9\)' + - '\| \| \| 0x43 \(3\)' + - '\| \| \| \| 0x82 \(2\)' + - '\| \| \| \| \| 0x17 \(23\)' + - '\| \| \| \| \| 0x02 \(2\)' + - '\| \| \| 0x11 \(17\)' + - '\| \| \| 0x82 \(2\)' + - '\| \| \| \| 0x2f \(15\)' + - '\| \| \| \| 0x58 20 \(32\)' + - '\| \| \| \| \| 0xcf a9 0c 5c 58 59 5e 7f 51 19 a7 2f 80 3f d0 37' + - '\| \| \| \| \| 0x0b 3e 6a bb ec 63 15 cd 38 f6 31 35 28 1b c4 98' + - '\| \| \| 0x17 \(23\)' + - '\| \| \| 0x82 \(2\)' + - '\| \| \| \| 0x2f \(15\)' + - '\| \| \| \| 0x58 20 \(32\)' + - '\| \| \| \| \| 0x2b fc 4d 0c c6 68 0b e7 dd 9f 5c a3 0a a2 bb 5d' + - '\| \| \| \| \| 0x19 98 14 5d e3 3d 54 10 1b 80 e2 ca 49 fa f9 18' + - '\| 0x11 \(17\)' + - '\| 0x58 3c \(60\)' + - '\| \| 0x86 14 a1 15 78 32 68 74 74 70 3a 2f 2f 65 78 61' + - '\| \| 0x6d 70 6c 65 2e 63 6f 6d 2f 76 65 72 79 2f 6c 6f' + - '\| \| 0x6e 67 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2f' + - '\| \| 0x66 69 6c 65 2e 62 69 6e 15 02 03 0f' + - '\| \| 0x86 \(6\)' + - '\| \| \| 0x14 \(20\)' + - '\| \| \| 0xa1 \(1\)' + - '\| \| \| \| 0x15 \(21\)' + - '\| \| \| \| 0x78 32 \(50\)' + - '"http://example.com/very/long/path/to/file/file\.bin"' + - '\| \| \| 0x15 \(21\)' + - '\| \| \| 0x02 \(2\)' + - '\| \| \| 0x03 \(3\)' + - '\| \| \| 0x0f \(15\)' + - '\| 0x17 \(23\)' + - '\| 0x59 02 04 \(516\)' + - '\| \| 0xa2 01 79 01 9d 23 23 20 45 78 61 6d 70 6c 65 20' + - '\| \| 0x32 3a 20 53 69 6d 75 6c 74 61 6e 65 6f 75 73 20' + - '\| \| 0x44 6f 77 6e 6c 6f 61 64 2c 20 49 6e 73 74 61 6c' + - '\| \| 0x6c 61 74 69 6f 6e 2c 20 53 65 63 75 72 65 20 42' + - '\| \| 0x6f 6f 74 2c 20 53 65 76 65 72 65 64 20 46 69 65' + - '\| \| 0x6c 64 73 0a 0a 20 20 20 20 54 68 69 73 20 65 78' + - '\| \| 0x61 6d 70 6c 65 20 63 6f 76 65 72 73 20 74 68 65' + - '\| \| 0x20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 6d 70 6c' + - '\| \| 0x61 74 65 73 3a 0a 20 20 20 20 0a 20 20 20 20 2a' + - '\| \| 0x20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 43' + - '\| \| 0x68 65 63 6b 20 28 7b 7b 74 65 6d 70 6c 61 74 65' + - '\| \| 0x2d 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2d 63' + - '\| \| 0x68 65 63 6b 7d 7d 29 0a 20 20 20 20 2a 20 53 65' + - '\| \| 0x63 75 72 65 20 42 6f 6f 74 20 28 7b 7b 74 65 6d' + - '\| \| 0x70 6c 61 74 65 2d 73 65 63 75 72 65 2d 62 6f 6f' + - '\| \| 0x74 7d 7d 29 0a 20 20 20 20 2a 20 46 69 72 6d 77' + - '\| \| 0x61 72 65 20 44 6f 77 6e 6c 6f 61 64 20 28 7b 7b' + - '\| \| 0x66 69 72 6d 77 61 72 65 2d 64 6f 77 6e 6c 6f 61' + - '\| \| 0x64 2d 74 65 6d 70 6c 61 74 65 7d 7d 29 0a 20 20' + - '\| \| 0x20 20 0a 20 20 20 20 54 68 69 73 20 65 78 61 6d' + - '\| \| 0x70 6c 65 20 61 6c 73 6f 20 64 65 6d 6f 6e 73 74' + - '\| \| 0x72 61 74 65 73 20 73 65 76 65 72 61 62 6c 65 20' + - '\| \| 0x65 6c 65 6d 65 6e 74 73 20 28 7b 7b 6f 76 72 2d' + - '\| \| 0x73 65 76 65 72 61 62 6c 65 7d 7d 29 2c 20 61 6e' + - '\| \| 0x64 20 74 65 78 74 20 28 7b 7b 6d 61 6e 69 66 65' + - '\| \| 0x73 74 2d 64 69 67 65 73 74 2d 74 65 78 74 7d 7d' + - '\| \| 0x29 2e 81 41 00 a2 03 67 61 72 6d 2e 63 6f 6d 05' + - '\| \| 0x78 52 54 68 69 73 20 63 6f 6d 70 6f 6e 65 6e 74' + - '\| \| 0x20 69 73 20 61 20 64 65 6d 6f 6e 73 74 72 61 74' + - '\| \| 0x69 6f 6e 2e 20 54 68 65 20 64 69 67 65 73 74 20' + - '\| \| 0x69 73 20 61 20 73 61 6d 70 6c 65 20 70 61 74 74' + - '\| \| 0x65 72 6e 2c 20 6e 6f 74 20 61 20 72 65 61 6c 20' + - '\| \| 0x6f 6e 65 2e' + - '\| \| 0xa2 \(2\)' + - '\| \| \| 0x01 \(1\)' + - '\| \| \| 0x79 01 9d \(413\)' + - '"## Example 2: Simultaneous Download, Installation, Secure Boot, Severed Fields' + - 'This example covers the following templates:' + - '\* Compatibility Check \(\{\{template-compatibility-check\}\}\)' + - '\* Secure Boot \(\{\{template-secure-boot\}\}\)' + - '\* Firmware Download \(\{\{firmware-download-template\}\}\)' + - 'This example also demonstrates severable elements \(\{\{ovr-severable\}\}\), and text \(\{\{manifest-digest-text\}\}\)\."' + - '\| \| \| 0x81 \(1\)' + - '\| \| \| \| 0x41 \(1\)' + - '\| \| \| \| \| 0x00 \(0\)' + - '\| \| \| 0xa2 \(2\)' + - '\| \| \| \| 0x03 \(3\)' + - '\| \| \| \| 0x67 \(7\)' + - '\"arm.com\"' + - '\| \| \| \| 0x05 \(5\)' + - '\| \| \| \| 0x78 52 \(82\)' + - '\"This component is a demonstration\. The digest is a sample pattern, not a real one\.\"' + zcbor.unit.test4_print_cbor.colors: + platform_allow: native_posix qemu_malta_be + extra_args: ZCBOR_PRINT_CBOR=ON ZCBOR_PRINT_COLORS=ON + tags: zcbor unit test4 print_cbor no_verbose colors + timeout: 10 + harness: console + harness_config: + type: multi_line + regex: + - '.\[31m0x9f .\[34m.\[32m\(list\).\[0m' + - '\| .\[31m0x00 .\[34m.\[32m\(0\).\[0m' + - '\| .\[31m0x19 .\[34m0x12 34 .\[32m\(4660\).\[0m' + - '\| .\[31m0x1b .\[34m0x00 00 00 02 4c b0 16 ea .\[32m\(9876543210\).\[0m' + - '\| .\[31m0x58 .\[34m0x20 .\[32m\(bstr32\).\[0m' + - '\| \| 0x01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10' + - '\| \| 0x00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff' + - '\| .\[31m0x6b .\[34m.\[32m\(tstr11\).\[0m' + - '\| \| .Hello World.' + - '\| .\[33m0x09 .\[33m0x1234 .\[31m0xf5 .\[34m.\[32m\(true\).\[0m' + - '\| .\[31m0xf4 .\[34m.\[32m\(false\).\[0m' + - '\| .\[31m0xf9 .\[34m0x42 48 .\[32m\(3.140625\).\[0m' + - '\| .\[31m0xfa .\[34m0x41 28 00 00 .\[32m\(10.500000\).\[0m' + - '\| .\[31m0xfb .\[34m0x40 29 66 66 66 66 66 66 .\[32m\(12.700000\).\[0m' + - '\| .\[31m0xf6 .\[34m.\[32m\(nil\).\[0m' + - '\| .\[31m0xf7 .\[34m.\[32m\(undefined\).\[0m' + - '\| .\[31m0x40 .\[34m.\[32m\(bstr0\).\[0m' + - '\| .\[31m0x9f .\[34m.\[32m\(list\).\[0m' + - '\| \| .\[31m0xbf .\[34m.\[32m\(map\).\[0m' + - '\| \| \| .\[31m0x64 .\[34m.\[32m\(tstr4\).\[0m' + - '\| \| \| \| .Key0.' + - '\| \| \| .\[31m0xfa .\[34m0x00 00 00 00 .\[32m\(0.000000\).\[0m' + - '\| \| \| .\[31m0x01 .\[34m.\[32m\(1\).\[0m' + - '\| \| \| .\[31m0x66 .\[34m.\[32m\(tstr6\).\[0m' + - '\| \| \| \| .Value1.' + - '\| \| .\[31m0xff .\[32m\(map end\).\[0m' + - '\| .\[31m0xff .\[32m\(list end\).\[0m' + - '.\[31m0xff .\[32m\(list end\).\[0m' + - '.\[33m0x6b .\[31m0xa4 .\[34m.\[32m\(map4\).\[0m' + - '\| .\[31m0x02 .\[34m.\[32m\(2\).\[0m' + - '\| .\[31m0x58 .\[34m0x73 .\[32m\(bstr115\).\[0m' + - '\| \| 0x82 58 24 82 2f 58 20 86 bb cc 88 23 f3 a4 44 19' + - '\| \| 0x56 f0 2b 00 13 02 f5 03 48 74 61 fb 77 fa b0 86' + - '\| \| 0xef e3 15 30 88 1f 97 58 4a d2 84 43 a1 01 26 a0' + - '\| \| 0xf6 58 40 8c 6b f0 14 b6 2f a7 b8 0d d5 eb 2f f7' + - '\| \| 0x02 4a b5 2a 11 6c d1 bc 0d b1 f1 03 11 b3 1e 7b' + - '\| \| 0x29 e3 be ae 76 5f ad 42 fb 86 00 fa 13 a6 bf 6d' + - '\| \| 0x5e 45 92 9a 05 a6 07 67 f9 b7 42 0a 50 02 a0 5d' + - '\| \| 0x95 e4 9e' + - '\| \| .\[31m0x82 .\[34m.\[32m\(list2\).\[0m' + - '\| \| \| .\[31m0x58 .\[34m0x24 .\[32m\(bstr36\).\[0m' + - '\| \| \| \| 0x82 2f 58 20 86 bb cc 88 23 f3 a4 44 19 56 f0 2b' + - '\| \| \| \| 0x00 13 02 f5 03 48 74 61 fb 77 fa b0 86 ef e3 15' + - '\| \| \| \| 0x30 88 1f 97' + - '\| \| \| \| .\[31m0x82 .\[34m.\[32m\(list2\).\[0m' + - '\| \| \| \| \| .\[31m0x2f .\[34m.\[32m\(-16\).\[0m' + - '\| \| \| \| \| .\[31m0x58 .\[34m0x20 .\[32m\(bstr32\).\[0m' + - '\| \| \| \| \| \| 0x86 bb cc 88 23 f3 a4 44 19 56 f0 2b 00 13 02 f5' + - '\| \| \| \| \| \| 0x03 48 74 61 fb 77 fa b0 86 ef e3 15 30 88 1f 97' + - '\| \| \| .\[31m0x58 .\[34m0x4a .\[32m\(bstr74\).\[0m' + - '\| \| \| \| 0xd2 84 43 a1 01 26 a0 f6 58 40 8c 6b f0 14 b6 2f' + - '\| \| \| \| 0xa7 b8 0d d5 eb 2f f7 02 4a b5 2a 11 6c d1 bc 0d' + - '\| \| \| \| 0xb1 f1 03 11 b3 1e 7b 29 e3 be ae 76 5f ad 42 fb' + - '\| \| \| \| 0x86 00 fa 13 a6 bf 6d 5e 45 92 9a 05 a6 07 67 f9' + - '\| \| \| \| 0xb7 42 0a 50 02 a0 5d 95 e4 9e' + - '\| \| \| \| .\[33m0x12 .\[31m0x84 .\[34m.\[32m\(list4\).\[0m' + - '\| \| \| \| \| .\[31m0x43 .\[34m.\[32m\(bstr3\).\[0m' + - '\| \| \| \| \| \| .\[31m0xa1 .\[34m.\[32m\(map1\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0x01 .\[34m.\[32m\(1\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0x26 .\[34m.\[32m\(-7\).\[0m' + - '\| \| \| \| \| .\[31m0xa0 .\[34m.\[32m\(map0\).\[0m' + - '\| \| \| \| \| .\[31m0xf6 .\[34m.\[32m\(nil\).\[0m' + - '\| \| \| \| \| .\[31m0x58 .\[34m0x40 .\[32m\(bstr64\).\[0m' + - '\| \| \| \| \| \| 0x8c 6b f0 14 b6 2f a7 b8 0d d5 eb 2f f7 02 4a b5' + - '\| \| \| \| \| \| 0x2a 11 6c d1 bc 0d b1 f1 03 11 b3 1e 7b 29 e3 be' + - '\| \| \| \| \| \| 0xae 76 5f ad 42 fb 86 00 fa 13 a6 bf 6d 5e 45 92' + - '\| \| \| \| \| \| 0x9a 05 a6 07 67 f9 b7 42 0a 50 02 a0 5d 95 e4 9e' + - '\| .\[31m0x03 .\[34m.\[32m\(3\).\[0m' + - '\| .\[31m0x58 .\[34m0xbb .\[32m\(bstr187\).\[0m' + - '\| \| 0xa7 01 01 02 02 03 58 5f a2 02 81 81 41 00 04 58' + - '\| \| 0x56 86 14 a4 01 50 fa 6b 4a 53 d5 ad 5f df be 9d' + - '\| \| 0xe6 63 e4 d4 1f fe 02 50 14 92 af 14 25 69 5e 48' + - '\| \| 0xbf 42 9b 2d 51 f2 ab 45 03 58 24 82 2f 58 20 00' + - '\| \| 0x11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 01' + - '\| \| 0x23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 0e' + - '\| \| 0x19 87 d0 01 0f 02 0f 07 43 82 03 0f 09 43 82 17' + - '\| \| 0x02 11 82 2f 58 20 cf a9 0c 5c 58 59 5e 7f 51 19' + - '\| \| 0xa7 2f 80 3f d0 37 0b 3e 6a bb ec 63 15 cd 38 f6' + - '\| \| 0x31 35 28 1b c4 98 17 82 2f 58 20 2b fc 4d 0c c6' + - '\| \| 0x68 0b e7 dd 9f 5c a3 0a a2 bb 5d 19 98 14 5d e3' + - '\| \| 0x3d 54 10 1b 80 e2 ca 49 fa f9 18' + - '\| \| .\[31m0xa7 .\[34m.\[32m\(map7\).\[0m' + - '\| \| \| .\[31m0x01 .\[34m.\[32m\(1\).\[0m' + - '\| \| \| .\[31m0x01 .\[34m.\[32m\(1\).\[0m' + - '\| \| \| .\[31m0x02 .\[34m.\[32m\(2\).\[0m' + - '\| \| \| .\[31m0x02 .\[34m.\[32m\(2\).\[0m' + - '\| \| \| .\[31m0x03 .\[34m.\[32m\(3\).\[0m' + - '\| \| \| .\[31m0x58 .\[34m0x5f .\[32m\(bstr95\).\[0m' + - '\| \| \| \| 0xa2 02 81 81 41 00 04 58 56 86 14 a4 01 50 fa 6b' + - '\| \| \| \| 0x4a 53 d5 ad 5f df be 9d e6 63 e4 d4 1f fe 02 50' + - '\| \| \| \| 0x14 92 af 14 25 69 5e 48 bf 42 9b 2d 51 f2 ab 45' + - '\| \| \| \| 0x03 58 24 82 2f 58 20 00 11 22 33 44 55 66 77 88' + - '\| \| \| \| 0x99 aa bb cc dd ee ff 01 23 45 67 89 ab cd ef fe' + - '\| \| \| \| 0xdc ba 98 76 54 32 10 0e 19 87 d0 01 0f 02 0f' + - '\| \| \| \| .\[31m0xa2 .\[34m.\[32m\(map2\).\[0m' + - '\| \| \| \| \| .\[31m0x02 .\[34m.\[32m\(2\).\[0m' + - '\| \| \| \| \| .\[31m0x81 .\[34m.\[32m\(list1\).\[0m' + - '\| \| \| \| \| \| .\[31m0x81 .\[34m.\[32m\(list1\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0x41 .\[34m.\[32m\(bstr1\).\[0m' + - '\| \| \| \| \| \| \| \| .\[31m0x00 .\[34m.\[32m\(0\).\[0m' + - '\| \| \| \| \| .\[31m0x04 .\[34m.\[32m\(4\).\[0m' + - '\| \| \| \| \| .\[31m0x58 .\[34m0x56 .\[32m\(bstr86\).\[0m' + - '\| \| \| \| \| \| 0x86 14 a4 01 50 fa 6b 4a 53 d5 ad 5f df be 9d e6' + - '\| \| \| \| \| \| 0x63 e4 d4 1f fe 02 50 14 92 af 14 25 69 5e 48 bf' + - '\| \| \| \| \| \| 0x42 9b 2d 51 f2 ab 45 03 58 24 82 2f 58 20 00 11' + - '\| \| \| \| \| \| 0x22 33 44 55 66 77 88 99 aa bb cc dd ee ff 01 23' + - '\| \| \| \| \| \| 0x45 67 89 ab cd ef fe dc ba 98 76 54 32 10 0e 19' + - '\| \| \| \| \| \| 0x87 d0 01 0f 02 0f' + - '\| \| \| \| \| \| .\[31m0x86 .\[34m.\[32m\(list6\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0x14 .\[34m.\[32m\(20\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0xa4 .\[34m.\[32m\(map4\).\[0m' + - '\| \| \| \| \| \| \| \| .\[31m0x01 .\[34m.\[32m\(1\).\[0m' + - '\| \| \| \| \| \| \| \| .\[31m0x50 .\[34m.\[32m\(bstr16\).\[0m' + - '\| \| \| \| \| \| \| \| \| 0xfa 6b 4a 53 d5 ad 5f df be 9d e6 63 e4 d4 1f fe' + - '\| \| \| \| \| \| \| \| .\[31m0x02 .\[34m.\[32m\(2\).\[0m' + - '\| \| \| \| \| \| \| \| .\[31m0x50 .\[34m.\[32m\(bstr16\).\[0m' + - '\| \| \| \| \| \| \| \| \| 0x14 92 af 14 25 69 5e 48 bf 42 9b 2d 51 f2 ab 45' + - '\| \| \| \| \| \| \| \| .\[31m0x03 .\[34m.\[32m\(3\).\[0m' + - '\| \| \| \| \| \| \| \| .\[31m0x58 .\[34m0x24 .\[32m\(bstr36\).\[0m' + - '\| \| \| \| \| \| \| \| \| 0x82 2f 58 20 00 11 22 33 44 55 66 77 88 99 aa bb' + - '\| \| \| \| \| \| \| \| \| 0xcc dd ee ff 01 23 45 67 89 ab cd ef fe dc ba 98' + - '\| \| \| \| \| \| \| \| \| 0x76 54 32 10' + - '\| \| \| \| \| \| \| \| \| .\[31m0x82 .\[34m.\[32m\(list2\).\[0m' + - '\| \| \| \| \| \| \| \| \| \| .\[31m0x2f .\[34m.\[32m\(-16\).\[0m' + - '\| \| \| \| \| \| \| \| \| \| .\[31m0x58 .\[34m0x20 .\[32m\(bstr32\).\[0m' + - '\| \| \| \| \| \| \| \| \| \| \| 0x00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff' + - '\| \| \| \| \| \| \| \| \| \| \| 0x01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10' + - '\| \| \| \| \| \| \| \| .\[31m0x0e .\[34m.\[32m\(14\).\[0m' + - '\| \| \| \| \| \| \| \| .\[31m0x19 .\[34m0x87 d0 .\[32m\(34768\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0x01 .\[34m.\[32m\(1\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0x0f .\[34m.\[32m\(15\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0x02 .\[34m.\[32m\(2\).\[0m' + - '\| \| \| \| \| \| \| .\[31m0x0f .\[34m.\[32m\(15\).\[0m' + - '\| \| \| .\[31m0x07 .\[34m.\[32m\(7\).\[0m' + - '\| \| \| .\[31m0x43 .\[34m.\[32m\(bstr3\).\[0m' + - '\| \| \| \| .\[31m0x82 .\[34m.\[32m\(list2\).\[0m' + - '\| \| \| \| \| .\[31m0x03 .\[34m.\[32m\(3\).\[0m' + - '\| \| \| \| \| .\[31m0x0f .\[34m.\[32m\(15\).\[0m' + - '\| \| \| .\[31m0x09 .\[34m.\[32m\(9\).\[0m' + - '\| \| \| .\[31m0x43 .\[34m.\[32m\(bstr3\).\[0m' + - '\| \| \| \| .\[31m0x82 .\[34m.\[32m\(list2\).\[0m' + - '\| \| \| \| \| .\[31m0x17 .\[34m.\[32m\(23\).\[0m' + - '\| \| \| \| \| .\[31m0x02 .\[34m.\[32m\(2\).\[0m' + - '\| \| \| .\[31m0x11 .\[34m.\[32m\(17\).\[0m' + - '\| \| \| .\[31m0x82 .\[34m.\[32m\(list2\).\[0m' + - '\| \| \| \| .\[31m0x2f .\[34m.\[32m\(-16\).\[0m' + - '\| \| \| \| .\[31m0x58 .\[34m0x20 .\[32m\(bstr32\).\[0m' + - '\| \| \| \| \| 0xcf a9 0c 5c 58 59 5e 7f 51 19 a7 2f 80 3f d0 37' + - '\| \| \| \| \| 0x0b 3e 6a bb ec 63 15 cd 38 f6 31 35 28 1b c4 98' + - '\| \| \| .\[31m0x17 .\[34m.\[32m\(23\).\[0m' + - '\| \| \| .\[31m0x82 .\[34m.\[32m\(list2\).\[0m' + - '\| \| \| \| .\[31m0x2f .\[34m.\[32m\(-16\).\[0m' + - '\| \| \| \| .\[31m0x58 .\[34m0x20 .\[32m\(bstr32\).\[0m' + - '\| \| \| \| \| 0x2b fc 4d 0c c6 68 0b e7 dd 9f 5c a3 0a a2 bb 5d' + - '\| \| \| \| \| 0x19 98 14 5d e3 3d 54 10 1b 80 e2 ca 49 fa f9 18' + - '\| .\[31m0x11 .\[34m.\[32m\(17\).\[0m' + - '\| .\[31m0x58 .\[34m0x3c .\[32m\(bstr60\).\[0m' + - '\| \| 0x86 14 a1 15 78 32 68 74 74 70 3a 2f 2f 65 78 61' + - '\| \| 0x6d 70 6c 65 2e 63 6f 6d 2f 76 65 72 79 2f 6c 6f' + - '\| \| 0x6e 67 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2f' + - '\| \| 0x66 69 6c 65 2e 62 69 6e 15 02 03 0f' + - '\| \| .\[31m0x86 .\[34m.\[32m\(list6\).\[0m' + - '\| \| \| .\[31m0x14 .\[34m.\[32m\(20\).\[0m' + - '\| \| \| .\[31m0xa1 .\[34m.\[32m\(map1\).\[0m' + - '\| \| \| \| .\[31m0x15 .\[34m.\[32m\(21\).\[0m' + - '\| \| \| \| .\[31m0x78 .\[34m0x32 .\[32m\(tstr50\).\[0m' + - '\| \| \| \| \| .http://example.com/very/long/path/to/file/file.bin.' + - '\| \| \| .\[31m0x15 .\[34m.\[32m\(21\).\[0m' + - '\| \| \| .\[31m0x02 .\[34m.\[32m\(2\).\[0m' + - '\| \| \| .\[31m0x03 .\[34m.\[32m\(3\).\[0m' + - '\| \| \| .\[31m0x0f .\[34m.\[32m\(15\).\[0m' + - '\| .\[31m0x17 .\[34m.\[32m\(23\).\[0m' + - '\| .\[31m0x59 .\[34m0x02 04 .\[32m\(bstr516\).\[0m' + - '\| \| 0xa2 01 79 01 9d 23 23 20 45 78 61 6d 70 6c 65 20' + - '\| \| 0x32 3a 20 53 69 6d 75 6c 74 61 6e 65 6f 75 73 20' + - '\| \| 0x44 6f 77 6e 6c 6f 61 64 2c 20 49 6e 73 74 61 6c' + - '\| \| 0x6c 61 74 69 6f 6e 2c 20 53 65 63 75 72 65 20 42' + - '\| \| 0x6f 6f 74 2c 20 53 65 76 65 72 65 64 20 46 69 65' + - '\| \| 0x6c 64 73 0a 0a 20 20 20 20 54 68 69 73 20 65 78' + - '\| \| 0x61 6d 70 6c 65 20 63 6f 76 65 72 73 20 74 68 65' + - '\| \| 0x20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 6d 70 6c' + - '\| \| 0x61 74 65 73 3a 0a 20 20 20 20 0a 20 20 20 20 2a' + - '\| \| 0x20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 43' + - '\| \| 0x68 65 63 6b 20 28 7b 7b 74 65 6d 70 6c 61 74 65' + - '\| \| 0x2d 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2d 63' + - '\| \| 0x68 65 63 6b 7d 7d 29 0a 20 20 20 20 2a 20 53 65' + - '\| \| 0x63 75 72 65 20 42 6f 6f 74 20 28 7b 7b 74 65 6d' + - '\| \| 0x70 6c 61 74 65 2d 73 65 63 75 72 65 2d 62 6f 6f' + - '\| \| 0x74 7d 7d 29 0a 20 20 20 20 2a 20 46 69 72 6d 77' + - '\| \| 0x61 72 65 20 44 6f 77 6e 6c 6f 61 64 20 28 7b 7b' + - '\| \| 0x66 69 72 6d 77 61 72 65 2d 64 6f 77 6e 6c 6f 61' + - '\| \| 0x64 2d 74 65 6d 70 6c 61 74 65 7d 7d 29 0a 20 20' + - '\| \| 0x20 20 0a 20 20 20 20 54 68 69 73 20 65 78 61 6d' + - '\| \| 0x70 6c 65 20 61 6c 73 6f 20 64 65 6d 6f 6e 73 74' + - '\| \| 0x72 61 74 65 73 20 73 65 76 65 72 61 62 6c 65 20' + - '\| \| 0x65 6c 65 6d 65 6e 74 73 20 28 7b 7b 6f 76 72 2d' + - '\| \| 0x73 65 76 65 72 61 62 6c 65 7d 7d 29 2c 20 61 6e' + - '\| \| 0x64 20 74 65 78 74 20 28 7b 7b 6d 61 6e 69 66 65' + - '\| \| 0x73 74 2d 64 69 67 65 73 74 2d 74 65 78 74 7d 7d' + - '\| \| 0x29 2e 81 41 00 a2 03 67 61 72 6d 2e 63 6f 6d 05' + - '\| \| 0x78 52 54 68 69 73 20 63 6f 6d 70 6f 6e 65 6e 74' + - '\| \| 0x20 69 73 20 61 20 64 65 6d 6f 6e 73 74 72 61 74' + - '\| \| 0x69 6f 6e 2e 20 54 68 65 20 64 69 67 65 73 74 20' + - '\| \| 0x69 73 20 61 20 73 61 6d 70 6c 65 20 70 61 74 74' + - '\| \| 0x65 72 6e 2c 20 6e 6f 74 20 61 20 72 65 61 6c 20' + - '\| \| 0x6f 6e 65 2e' + - '\| \| .\[31m0xa2 .\[34m.\[32m\(map2\).\[0m' + - '\| \| \| .\[31m0x01 .\[34m.\[32m\(1\).\[0m' + - '\| \| \| .\[31m0x79 .\[34m0x01 9d .\[32m\(tstr413\).\[0m' + - '\| \| \| \| .\#\# Example 2\: Simultaneous Download, Installation, Secure Boot, Severed Fields' + - '\| \| \| \|' + - '\| \| \| \| This example covers the following templates\:' + - '\| \| \| \|' + - '\| \| \| \| \* Compatibility Check \(\{\{template-compatibility-check\}\}\)' + - '\| \| \| \| \* Secure Boot \(\{\{template-secure-boot\}\}\)' + - '\| \| \| \| \* Firmware Download \(\{\{firmware-download-template\}\}\)' + - '\| \| \| \|' + - '\| \| \| \| This example also demonstrates severable elements \(\{\{ovr-severable\}\}\), and text \(\{\{manifest-digest-text\}\}\)..' + - '\| \| \| .\[31m0x81 .\[34m.\[32m\(list1\).\[0m' + - '\| \| \| \| .\[31m0x41 .\[34m.\[32m\(bstr1\).\[0m' + - '\| \| \| \| \| .\[31m0x00 .\[34m.\[32m\(0\).\[0m' + - '\| \| \| .\[31m0xa2 .\[34m.\[32m\(map2\).\[0m' + - '\| \| \| \| .\[31m0x03 .\[34m.\[32m\(3\).\[0m' + - '\| \| \| \| .\[31m0x67 .\[34m.\[32m\(tstr7\).\[0m' + - '\| \| \| \| \| .arm.com.' + - '\| \| \| \| .\[31m0x05 .\[34m.\[32m\(5\).\[0m' + - '\| \| \| \| .\[31m0x78 .\[34m0x52 .\[32m\(tstr82\).\[0m' + - '\| \| \| \| \| .This component is a demonstration. The digest is a sample pattern, not a real one..' diff --git a/zcbor/zcbor.py b/zcbor/zcbor.py index 143b9f00..29ed9dfc 100755 --- a/zcbor/zcbor.py +++ b/zcbor/zcbor.py @@ -2668,6 +2668,7 @@ def render_c_file(self, header_file_name, mode): #include #include #include "zcbor_{mode}.h" +#include "zcbor_print.h" #include "{header_file_name}" #include "zcbor_print.h"