[CI] test automation on target

pull/5/head
Daniele Lacamera 2019-03-13 18:25:45 +01:00
parent fd501b976d
commit c989a13d94
4 changed files with 87 additions and 20 deletions

View File

@ -5,7 +5,7 @@ LD=gcc
CROSS_COMPILE=
WOLFBOOT_ROOT=../../
BOOTUTIL_ROOT=$(WOLFBOOT_ROOT)/lib/bootutil
CFLAGS:=-lwolfssl -DHAVE_ECC -DHAVE_ASN -DWOLFCRYPT_ONLY -DTFM_TIMING_RESISTANT -DNO_RSA -DECC_TIMING_RESISTANT -DWOLFSSL_DER_TO_PEM -DWOLFSSL_VALIDATE_ECC_IMPORT -I$(WOLFBOOT_ROOT)/include
CFLAGS:=-lwolfssl -DHAVE_ECC -DHAVE_ASN -DWOLFCRYPT_ONLY -DTFM_TIMING_RESISTANT -DNO_RSA -DECC_TIMING_RESISTANT -DWOLFSSL_DER_TO_PEM -DWOLFSSL_VALIDATE_ECC_IMPORT -DHAVE_ECC_KEY_EXPORT -I$(WOLFBOOT_ROOT)/include
LDFLAGS:=-lwolfssl
LDFLAGS_EXTRA=
EXTRA_LDFLAGS=

View File

@ -2,7 +2,7 @@
#
CROSS_COMPILE=
WOLFBOOT_ROOT=../../
CFLAGS:=-lwolfssl -DHAVE_ED25519 -DHAVE_ASN -DWOLFCRYPT_ONLY -DTFM_TIMING_RESISTANT -DNO_RSA -DECC_TIMING_RESISTANT -DWOLFSSL_DER_TO_PEM -I$(WOLFBOOT_ROOT)/include -I$(WOLFBOOT_ROOT)/lib/wolfssl
CFLAGS:=-lwolfssl -DHAVE_ECC_KEY_EXPORT -DHAVE_ED25519 -DHAVE_ASN -DWOLFCRYPT_ONLY -DTFM_TIMING_RESISTANT -DNO_RSA -DECC_TIMING_RESISTANT -DWOLFSSL_DER_TO_PEM -I$(WOLFBOOT_ROOT)/include -I$(WOLFBOOT_ROOT)/lib/wolfssl
LDFLAGS:=-lwolfssl
LDFLAGS_EXTRA=
EXTRA_LDFLAGS=

View File

@ -172,7 +172,6 @@ int main(int argc, char *argv[])
}
wc_Sha256Final(&sha, shabuf);
wc_ed25519_sign_msg(shabuf, 32, signature, &outlen, &key);
wc_Sha256Free(&sha);
*(ptr++) = HDR_SHA256;
@ -186,7 +185,6 @@ int main(int argc, char *argv[])
*(ptr++) = HDR_PUBKEY;
*(ptr++) = SHA256_DIGEST_SIZE;
memcpy(ptr, shabuf, SHA256_DIGEST_SIZE);
wc_Sha256Free(&keyhash);
ptr += SHA256_DIGEST_SIZE;
*(ptr++) = HDR_SIGNATURE;

View File

@ -5,31 +5,100 @@ $(EXPVER):
make -C tools/test-expect-version
test-update: test-app/image.bin FORCE
$(SIGN_TOOL) test-app/image.bin $(PRIVATE_KEY) $(TEST_UPDATE_VERSION) 131072
dd if=test-app/image.bin.v$(TEST_UPDATE_VERSION).signed of=test-update.bin bs=1 count=131067
printf "pBOOT" >> test-update.bin
sudo st-term reset init || true
sleep 2
sudo st-flash --reset write test-update.bin 0x08040000
@$(SIGN_TOOL) test-app/image.bin $(PRIVATE_KEY) $(TEST_UPDATE_VERSION) 131072 >/dev/null
@dd if=test-app/image.bin.v$(TEST_UPDATE_VERSION).signed of=test-update.bin bs=1 count=131067
@printf "pBOOT" >> test-update.bin
@make test-reset
@sleep 2
@sudo st-flash --reset write test-update.bin 0x08040000 || \
(make test-reset && sleep 1 && sudo st-flash --reset write test-update.bin 0x08040000) || \
(make test-reset && sleep 1 && sudo st-flash --reset write test-update.bin 0x08040000)
test-erase: FORCE
sudo st-term reset init || true
sleep 2
sudo st-flash erase
@echo Mass-erasing the internal flash:
@make test-reset
@sleep 2
@sudo st-flash erase
test-factory: factory.bin
sudo st-term reset init || true
sleep 2
sudo st-flash --reset write factory.bin 0x08000000
@make test-reset
@sleep 2
@sudo st-flash --reset write factory.bin 0x08000000 || \
(make test-reset && sleep 1 && sudo st-flash --reset write factory.bin 0x08000000) || \
(make test-reset && sleep 1 && sudo st-flash --reset write factory.bin 0x08000000)
test-reset: FORCE
sudo st-info --reset || true
@sudo st-info --reset
## Test cases:
test-00-forward-update: $(EXPVER) FORCE
make test-factory
$(EXPVER)
test-01-forward-update-no-downgrade: $(EXPVER) FORCE
@echo Creating and uploading factory image...
@make test-factory
@echo Expecting version '1'
@$$(test `$(EXPVER)` -eq 1)
@echo
@echo Creating and uploading update image...
@make test-update TEST_UPDATE_VERSION=4
@echo Expecting version '4'
@$$(test `$(EXPVER)` -eq 4)
@echo
@echo Creating and uploading update image...
@make test-update TEST_UPDATE_VERSION=1
@echo Expecting version '4'
@$$(test `$(EXPVER)` -eq 4)
@make clean
@echo TEST PASSED
test-02-forward-update-allow-downgrade: $(EXPVER) FORCE
@echo Creating and uploading factory image...
@make test-factory ALLOW_DOWNGRADE=1
@echo Expecting version '1'
@$$(test `$(EXPVER)` -eq 1)
@echo
@echo Creating and uploading update image...
@make test-update TEST_UPDATE_VERSION=4
@echo Expecting version '4'
@$$(test `$(EXPVER)` -eq 4)
@echo
@echo Creating and uploading update image...
@make test-update TEST_UPDATE_VERSION=2
@echo Expecting version '4'
@$$(test `$(EXPVER)` -eq 2)
@make clean
@echo TEST PASSED
test-03-rollback: $(EXPVER) FORCE
@echo Creating and uploading factory image...
@make test-factory ALLOW_DOWNGRADE=1
@echo Expecting version '1'
@$$(test `$(EXPVER)` -eq 1)
@echo
@echo Creating and uploading update image...
@make test-update TEST_UPDATE_VERSION=4
@echo Expecting version '4'
@$$(test `$(EXPVER)` -eq 4)
@echo
@echo Creating and uploading update image...
@make test-update TEST_UPDATE_VERSION=5
@echo Expecting version '5'
@$$(test `$(EXPVER)` -eq 5)
@echo
@echo Resetting to trigger rollback...
@make test-reset
@$$(test `$(EXPVER)` -eq 4)
@make clean
@echo TEST PASSED
test-11-forward-update-no-downgrade-ECC: $(EXPVER) FORCE
@make test-01-forward-update-no-downgrade SIGN=ECC256
test-13-rollback-ECC: $(EXPVER) FORCE
@make test-03-rollback SIGN=ECC256
test-all: clean test-01-forward-update-no-downgrade test-02-forward-update-allow-downgrade test-03-rollback test-11-forward-update-no-downgrade-ECC test-13-rollback-ECC