mirror of https://github.com/wolfSSL/wolfBoot.git
74 lines
2.4 KiB
Bash
Executable File
74 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
V=`./wolfboot.elf update_trigger get_version 2>/dev/null`
|
|
if [ "x$V" != "x1" ]; then
|
|
echo "Failed first boot with update_trigger"
|
|
exit 1
|
|
fi
|
|
|
|
./wolfboot.elf powerfail 0 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 15000 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 18000 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 1a000 get_version 2>/dev/null
|
|
# fail on the last sector to stop the encrypt key save and state update
|
|
./wolfboot.elf powerfail 3e000 get_version 2>/dev/null
|
|
# may not trigger on non NVM_FLASH_WRITEONCE
|
|
V=`./wolfboot.elf powerfail 3f000 get_version` 2>/dev/null
|
|
if [ "x$V" != "x2" ]; then
|
|
V=`./wolfboot.elf get_version 2>/dev/null`
|
|
# if we failed on the final boot state write we need to double fallback
|
|
if [ "x$V" == "x1" ]; then
|
|
V=`./wolfboot.elf get_version 2>/dev/null`
|
|
fi
|
|
fi
|
|
|
|
if [ "x$V" != "x2" ]; then
|
|
echo "Failed update (V: $V)"
|
|
exit 1
|
|
fi
|
|
|
|
./wolfboot.elf powerfail 1000 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 11000 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 14000 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 1e000 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 3e000 get_version 2>/dev/null
|
|
# may not trigger on non NVM_FLASH_WRITEONCE
|
|
V=`./wolfboot.elf powerfail 3f000 get_version` 2>/dev/null
|
|
if [ "x$V" != "x1" ]; then
|
|
V=`./wolfboot.elf get_version 2>/dev/null`
|
|
fi
|
|
|
|
if [ "x$V" != "x1" ]; then
|
|
echo "Did not fallback (V: $V)"
|
|
echo "Retrying get_version after reboot..."
|
|
V=`./wolfboot.elf get_version 2>/dev/null`
|
|
if [ "x$V" != "x1" ]; then
|
|
echo "Error: failed fallback (V: $V)"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# make sure it can double revert
|
|
./wolfboot.elf powerfail 0 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 15000 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 18000 get_version 2>/dev/null
|
|
./wolfboot.elf powerfail 1a000 get_version 2>/dev/null
|
|
# fail on the last sector to stop the encrypt key save and state update
|
|
./wolfboot.elf powerfail 3e000 get_version 2>/dev/null
|
|
# may not trigger on non NVM_FLASH_WRITEONCE
|
|
V=`./wolfboot.elf powerfail 3f000 get_version` 2>/dev/null
|
|
if [ "x$V" != "x2" ]; then
|
|
V=`./wolfboot.elf get_version 2>/dev/null`
|
|
# if we failed on the final boot state write we need to double fallback
|
|
if [ "x$V" == "x1" ]; then
|
|
V=`./wolfboot.elf get_version 2>/dev/null`
|
|
fi
|
|
fi
|
|
|
|
if [ "x$V" != "x2" ]; then
|
|
echo "Failed update (V: $V)"
|
|
exit 1
|
|
fi
|
|
|
|
echo Test successful.
|
|
exit 0
|