From 464aa265655d1fe6e8a07d90423ef4632a02035d Mon Sep 17 00:00:00 2001 From: Koen Zandberg Date: Thu, 24 Sep 2020 13:26:31 +0200 Subject: [PATCH] tests/suit_manifest: extend with multi-component test --- tests/suit_manifest/Makefile | 3 +++ tests/suit_manifest/create_test_data.sh | 12 ++++++++---- tests/suit_manifest/main.c | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/suit_manifest/Makefile b/tests/suit_manifest/Makefile index c4daddf12a..d85237ab2d 100644 --- a/tests/suit_manifest/Makefile +++ b/tests/suit_manifest/Makefile @@ -17,9 +17,12 @@ BLOBS += $(MANIFEST_DIR)/manifest0.bin BLOBS += $(MANIFEST_DIR)/manifest1.bin BLOBS += $(MANIFEST_DIR)/manifest2.bin BLOBS += $(MANIFEST_DIR)/manifest3.bin +BLOBS += $(MANIFEST_DIR)/manifest4.bin USEMODULE += suit_transport_mock +CFLAGS += -DCONFIG_SUIT_COMPONENT_MAX=2 + # Use a version of 'native' that includes flash page support ifeq (native, $(BOARD)) EXTERNAL_BOARD_DIRS = $(CURDIR)/native_flashpage diff --git a/tests/suit_manifest/create_test_data.sh b/tests/suit_manifest/create_test_data.sh index 4c337047bb..1cc9c98074 100644 --- a/tests/suit_manifest/create_test_data.sh +++ b/tests/suit_manifest/create_test_data.sh @@ -15,7 +15,7 @@ gen_manifest() { --uuid-vendor "riot-os.org" \ --uuid-class "${BOARD}" \ -o "$out.tmp" \ - "${1}:$((0x1000))" "${2}:$((0x2000))" + "${@}" ${SUIT_TOOL} create -f suit -i "$out.tmp" -o "$out" @@ -34,14 +34,18 @@ echo foo > "${MANIFEST_DIR}/file1.bin" echo bar > "${MANIFEST_DIR}/file2.bin" # random valid cbor (manifest but not signed, missing cose auth) -gen_manifest "${MANIFEST_DIR}/manifest0.bin" 1 "${MANIFEST_DIR}/file1.bin" "${MANIFEST_DIR}/file2.bin" +gen_manifest "${MANIFEST_DIR}/manifest0.bin" 1 "${MANIFEST_DIR}/file1.bin:$((0x1000))" "${MANIFEST_DIR}/file2.bin:$((0x2000))" # manifest with invalid seqnr sign_manifest "${MANIFEST_DIR}/manifest0.bin" "${MANIFEST_DIR}/manifest1.bin" -(BOARD=invalid gen_manifest "${MANIFEST_DIR}/manifest2.bin".unsigned 2 "${MANIFEST_DIR}/file1.bin" "${MANIFEST_DIR}/file2.bin") +(BOARD=invalid gen_manifest "${MANIFEST_DIR}/manifest2.bin".unsigned 2 "${MANIFEST_DIR}/file1.bin:$((0x1000))" "${MANIFEST_DIR}/file2.bin:$((0x2000))") sign_manifest "${MANIFEST_DIR}/manifest2.bin".unsigned "${MANIFEST_DIR}/manifest2.bin" # valid manifest, valid seqnr, signed -gen_manifest "${MANIFEST_DIR}/manifest3.bin".unsigned 2 "${MANIFEST_DIR}/file1.bin" "${MANIFEST_DIR}/file2.bin" +gen_manifest "${MANIFEST_DIR}/manifest3.bin".unsigned 2 "${MANIFEST_DIR}/file1.bin:$((0x1000))" "${MANIFEST_DIR}/file2.bin:$((0x2000))" sign_manifest "${MANIFEST_DIR}/manifest3.bin".unsigned "${MANIFEST_DIR}/manifest3.bin" + +# valid manifest, valid seqnr, signed, 2 components +gen_manifest "${MANIFEST_DIR}/manifest4.bin".unsigned 2 "${MANIFEST_DIR}/file1.bin" "${MANIFEST_DIR}/file2.bin" +sign_manifest "${MANIFEST_DIR}/manifest4.bin".unsigned "${MANIFEST_DIR}/manifest4.bin" diff --git a/tests/suit_manifest/main.c b/tests/suit_manifest/main.c index dfb89c1fd1..4103589eb7 100644 --- a/tests/suit_manifest/main.c +++ b/tests/suit_manifest/main.c @@ -32,6 +32,7 @@ #include TEST_MANIFEST_INCLUDE(manifest1.bin.h) #include TEST_MANIFEST_INCLUDE(manifest2.bin.h) #include TEST_MANIFEST_INCLUDE(manifest3.bin.h) +#include TEST_MANIFEST_INCLUDE(manifest4.bin.h) #define SUIT_URL_MAX 128 @@ -47,6 +48,7 @@ const manifest_blob_t manifest_blobs[] = { { manifest1_bin, sizeof(manifest1_bin), SUIT_ERR_SEQUENCE_NUMBER }, { manifest2_bin, sizeof(manifest2_bin), SUIT_ERR_COND }, { manifest3_bin, sizeof(manifest3_bin), SUIT_OK }, + { manifest4_bin, sizeof(manifest4_bin), SUIT_OK }, }; const unsigned manifest_blobs_numof = ARRAY_SIZE(manifest_blobs);