tests/suit_manifest: extend with multi-component test

This commit is contained in:
Koen Zandberg 2020-09-24 13:26:31 +02:00
parent 401f8eb9bd
commit 464aa26565
No known key found for this signature in database
GPG Key ID: 0895A893E6D2985B
3 changed files with 13 additions and 4 deletions

View File

@ -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

View File

@ -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"

View File

@ -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);