diff options
Diffstat (limited to 'utils/ypr0tools/test.sh')
-rwxr-xr-x | utils/ypr0tools/test.sh | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/utils/ypr0tools/test.sh b/utils/ypr0tools/test.sh new file mode 100755 index 0000000000..3c891e6e7f --- /dev/null +++ b/utils/ypr0tools/test.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +###################################################################### +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# +# Script to test packer and unpacker +# Copyright (C) 2013 Lorenzo Miori +###################################################################### + +ROM_FILE="$1" +TMP_FOLDER="" + +goto_temp() +{ + if [ -n "$TMP_FOLDER" ] + then + cd $TMP_FOLDER + fi +} + +cleanup() +{ + echo "$1" + OLD_DIR=`pwd` + goto_temp + rm -f "$ROM_FILE"_TEST_CRYPT "MBoot.bin" "zImage" "cramfs-fsl.rom" "SYSDATA.bin" "TEST_MD5SUMS" "RevisionInfo.txt" > /dev/null + cd $OLD_DIR + if [ -n "$TMP_FOLDER" ] + then + rmdir $TMP_FOLDER + fi + make clean + exit $2 +} + +if [ $# -lt 1 ] +then + cleanup "FAIL: Missing parameter! Run with: test.sh <path to working rom to test> <optional: destination to temporary files>" 1 +fi + +if [ $# -eq 2 ] +then + TMP_FOLDER="$2/" + mkdir $TMP_FOLDER + if [ $? -ne 0 ] + then + echo "FAIL: temporary directory exists!" + fi +fi + +# be sure we have the executables up-to-date +make clean +make + +./fwdecrypt $1 $TMP_FOLDER +if [ $? -ne 0 ] +then + cleanup "FAIL: Error while decrypting ROM file" 1 +fi + +./fwcrypt $TMP_FOLDER$1_TEST_CRYPT $TMP_FOLDER +if [ $? -ne 0 ] +then + cleanup "FAIL: Error while decrypting ROM file" 1 +fi + +OLD_DIR=`pwd` +goto_temp + +md5sum MBoot.bin zImage cramfs-fsl.rom SYSDATA.bin RevisionInfo.txt > "TEST_MD5SUMS" + +md5sum --strict -c "TEST_MD5SUMS" +if [ $? -ne 0 ] +then + cleanup "FAIL: MD5SUM mismatch!" 1 +fi + +cd $OLD_DIR + +cleanup "OK: test completed without errors." 0 |