vboot: unify common.sh for testing scripts

Use tests/common.sh instead of tests/futility/common.sh.
Correct SCRIPT_DIR value to allow running run_test_scripts.sh
standalone without using Makefile.

BUG=b:124141368, chromium:605348
TEST=make clean && make runfutiltests
BRANCH=none

Change-Id: I107952826ea9a3a3816d9c13206aa48bee63ac6c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2014236
Tested-by: Joel Kitching <kitching@chromium.org>
Commit-Queue: Joel Kitching <kitching@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
diff --git a/Makefile b/Makefile
index 762aa11..3d0a571 100644
--- a/Makefile
+++ b/Makefile
@@ -1283,7 +1283,7 @@
 
 .PHONY: runfutiltests
 runfutiltests: install_for_test
-	tests/futility/run_test_scripts.sh ${UB_DIR}
+	tests/futility/run_test_scripts.sh
 	${RUNTEST} ${BUILD_RUN}/tests/futility/test_file_types
 	${RUNTEST} ${BUILD_RUN}/tests/futility/test_not_really
 
diff --git a/tests/common.sh b/tests/common.sh
index 4da9e44..e69692b 100644
--- a/tests/common.sh
+++ b/tests/common.sh
@@ -5,22 +5,22 @@
 # found in the LICENSE file.
 
 # Determine script directory.
-SCRIPT_DIR=$(dirname $(readlink -f "$0"))
-ROOT_DIR="$(dirname ${SCRIPT_DIR})"
+SCRIPT_DIR="$(dirname $(realpath "${BASH_SOURCE[0]}"))"
+ROOT_DIR="$(dirname "${SCRIPT_DIR}")"
 SRCDIR="${SRCDIR:-${ROOT_DIR}}"
 BUILD="${BUILD:-${ROOT_DIR}/build}"
 BUILD_RUN="${BUILD_RUN:-${BUILD}}"
 SRC_RUN="${SRC_RUN:-${SRCDIR}}"
 BUILD_DIR="${BUILD}"
-BIN_DIR=${BUILD_DIR}/install_for_test/usr/bin
-FUTILITY=${BIN_DIR}/futility
+BIN_DIR="${BUILD_DIR}/install_for_test/usr/bin"
+FUTILITY="${BIN_DIR}/futility"
 TEST_DIR="${BUILD_DIR}/tests"
-TESTKEY_DIR=${SCRIPT_DIR}/testkeys
-TESTCASE_DIR=${SCRIPT_DIR}/testcases
-TESTKEY_SCRATCH_DIR=${TEST_DIR}/testkeys
+TESTKEY_DIR="${SCRIPT_DIR}/testkeys"
+TESTCASE_DIR="${SCRIPT_DIR}/testcases"
+TESTKEY_SCRATCH_DIR="${TEST_DIR}/testkeys"
 
 if [ ! -d ${TESTKEY_SCRATCH_DIR} ]; then
-    mkdir -p ${TESTKEY_SCRATCH_DIR}
+  mkdir -p ${TESTKEY_SCRATCH_DIR}
 fi
 
 # Color output encodings.
diff --git a/tests/futility/common.sh b/tests/futility/common.sh
deleted file mode 100755
index ed187d7..0000000
--- a/tests/futility/common.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Color output encodings.
-COL_RED='\E[31;1m'
-COL_GREEN='\E[32;1m'
-COL_YELLOW='\E[33;1m'
-COL_BLUE='\E[34;1m'
-COL_STOP='\E[0;m'
-
-# args: [message]
-green() {
-  echo -e "${COL_GREEN}$*${COL_STOP}"
-}
-
-# args: [message]
-yellow() {
-  echo -e "${COL_YELLOW}WARNING: $*${COL_STOP}"
-}
-
-# args: [message]
-red() {
-  echo -e "${COL_RED}$*${COL_STOP}"
-}
-
-# args: [nested level] [message]
-error() {
-  local lev=${1:-}
-  case "${1:-}" in
-    [0-9]*)
-      lev=$1
-      shift
-      ;;
-    *) lev=0
-      ;;
-  esac
-  local x=$(caller $lev)
-  local cline="${x%% *}"
-  local cfile="${x#* }"
-  cfile="${cfile##*/}"
-  local args="$*"
-  local spacer="${args:+: }"
-  red "at ${cfile}, line ${cline}${spacer}${args}" 1>&2
-  exit 1
-}
diff --git a/tests/futility/run_test_scripts.sh b/tests/futility/run_test_scripts.sh
index 8ccbab6..2ec7abb 100755
--- a/tests/futility/run_test_scripts.sh
+++ b/tests/futility/run_test_scripts.sh
@@ -4,59 +4,38 @@
 # found in the LICENSE file.
 
 # Load common constants and variables.
-SCRIPTDIR=$(dirname $(readlink -f "$0"))
-. "$SCRIPTDIR/common.sh"
+. "$(dirname "$0")/../common.sh"
 
-# Mandatory arg is the directory where futility is installed.
-[ -z "${1:-}" ] && error "Directory argument is required"
-BINDIR="$1"
-shift
-
-FUTILITY="$BINDIR/futility"
-
-
-# The Makefile should export the $BUILD directory, but if it's not just warn
-# and guess (mostly so we can run the script manually).
-if [ -z "${BUILD:-}" ]; then
-  BUILD=$(dirname "${BINDIR}")
-  yellow "Assuming BUILD=$BUILD"
-fi
-# Same for $SRCDIR
-if [ -z "${SRCDIR:-}" ]; then
-  SRCDIR=$(readlink -f "${SCRIPTDIR}/../..")
-  yellow "Assuming SRCDIR=$SRCDIR"
-fi
 OUTDIR="${BUILD}/tests/futility_test_results"
 [ -d "$OUTDIR" ] || mkdir -p "$OUTDIR"
 
-
 # Let each test know where to find things...
 export BUILD
+export BUILD_RUN
 export SRCDIR
 export FUTILITY
-export SCRIPTDIR
-export BINDIR
+export SCRIPT_DIR
 export OUTDIR
 
 # These are the scripts to run. Binaries are invoked directly by the Makefile.
 TESTS="
-${SCRIPTDIR}/test_create.sh
-${SCRIPTDIR}/test_dump_fmap.sh
-${SCRIPTDIR}/test_gbb_utility.sh
-${SCRIPTDIR}/test_load_fmap.sh
-${SCRIPTDIR}/test_main.sh
-${SCRIPTDIR}/test_rwsig.sh
-${SCRIPTDIR}/test_show_contents.sh
-${SCRIPTDIR}/test_show_kernel.sh
-${SCRIPTDIR}/test_show_vs_verify.sh
-${SCRIPTDIR}/test_show_usbpd1.sh
-${SCRIPTDIR}/test_sign_firmware.sh
-${SCRIPTDIR}/test_sign_fw_main.sh
-${SCRIPTDIR}/test_sign_kernel.sh
-${SCRIPTDIR}/test_sign_keyblocks.sh
-${SCRIPTDIR}/test_sign_usbpd1.sh
-${SCRIPTDIR}/test_update.sh
-${SCRIPTDIR}/test_file_types.sh
+${SCRIPT_DIR}/futility/test_create.sh
+${SCRIPT_DIR}/futility/test_dump_fmap.sh
+${SCRIPT_DIR}/futility/test_gbb_utility.sh
+${SCRIPT_DIR}/futility/test_load_fmap.sh
+${SCRIPT_DIR}/futility/test_main.sh
+${SCRIPT_DIR}/futility/test_rwsig.sh
+${SCRIPT_DIR}/futility/test_show_contents.sh
+${SCRIPT_DIR}/futility/test_show_kernel.sh
+${SCRIPT_DIR}/futility/test_show_vs_verify.sh
+${SCRIPT_DIR}/futility/test_show_usbpd1.sh
+${SCRIPT_DIR}/futility/test_sign_firmware.sh
+${SCRIPT_DIR}/futility/test_sign_fw_main.sh
+${SCRIPT_DIR}/futility/test_sign_kernel.sh
+${SCRIPT_DIR}/futility/test_sign_keyblocks.sh
+${SCRIPT_DIR}/futility/test_sign_usbpd1.sh
+${SCRIPT_DIR}/futility/test_update.sh
+${SCRIPT_DIR}/futility/test_file_types.sh
 "
 
 # Get ready...
@@ -71,32 +50,33 @@
 
 echo "-- builtin --"
 for i in $TESTS; do
-	j=${i##*/}
+  j=${i##*/}
 
-	: $(( progs++ ))
+  : $(( progs++ ))
 
-	echo -n "$j ... "
-	rm -rf "${OUTDIR}/$j."*
-	rc=$("$i" "$FUTILITY" 1>"${OUTDIR}/$j.stdout" \
-		2>"${OUTDIR}/$j.stderr" || echo "$?")
-	echo "${rc:-0}" > "${OUTDIR}/$j.return"
-	if [ ! "$rc" ]; then
-		green "PASSED"
-		: $(( pass++ ))
-		rm -f ${OUTDIR}/$j.{stdout,stderr,return}
-	else
-		red "FAILED. Stdout is recorded in ${OUTDIR}/$j.stdout"
-		cat ${OUTDIR}/$j.stderr
-	fi
+  echo -n "$j ... "
+  rm -rf "${OUTDIR}/$j."*
+  rc=$("$i" "$FUTILITY" 1>"${OUTDIR}/$j.stdout" \
+    2>"${OUTDIR}/$j.stderr" || echo "$?")
+  echo "${rc:-0}" > "${OUTDIR}/$j.return"
+  if [ ! "$rc" ]; then
+    echo -e "${COL_GREEN}PASSED${COL_STOP}"
+    : $(( pass++ ))
+    rm -f ${OUTDIR}/$j.{stdout,stderr,return}
+  else
+    echo -e "${COL_RED}FAILED. Stdout is recorded in" \
+      "${OUTDIR}/$j.stdout${COL_STOP}"
+    cat ${OUTDIR}/$j.stderr
+  fi
 done
 
 ##############################################################################
 # How'd we do?
 
 if [ "$pass" -eq "$progs" ]; then
-  green "Success: $pass / $progs passed"
+  echo -e "${COL_GREEN}Success: $pass / $progs passed${COL_STOP}"
   exit 0
 fi
 
-red "FAIL: $pass / $progs passed"
+echo -e "${COL_RED}FAIL: $pass / $progs passed${COL_STOP}"
 exit 1
diff --git a/tests/futility/test_dump_fmap.sh b/tests/futility/test_dump_fmap.sh
index 5a58a0c..5ae2e97 100755
--- a/tests/futility/test_dump_fmap.sh
+++ b/tests/futility/test_dump_fmap.sh
@@ -10,41 +10,44 @@
 cd "$OUTDIR"
 
 # Good FMAP
-"$FUTILITY" dump_fmap -F "${SCRIPTDIR}/data_fmap.bin"  > "$TMP"
-cmp "${SCRIPTDIR}/data_fmap_expect_f.txt" "$TMP"
+"$FUTILITY" dump_fmap -F "${SCRIPT_DIR}/futility/data_fmap.bin"  > "$TMP"
+cmp "${SCRIPT_DIR}/futility/data_fmap_expect_f.txt" "$TMP"
 
-"$FUTILITY" dump_fmap -p "${SCRIPTDIR}/data_fmap.bin"  > "$TMP"
-cmp "${SCRIPTDIR}/data_fmap_expect_p.txt" "$TMP"
+"$FUTILITY" dump_fmap -p "${SCRIPT_DIR}/futility/data_fmap.bin"  > "$TMP"
+cmp "${SCRIPT_DIR}/futility/data_fmap_expect_p.txt" "$TMP"
 
-"$FUTILITY" dump_fmap -h "${SCRIPTDIR}/data_fmap.bin"  > "$TMP"
-cmp "${SCRIPTDIR}/data_fmap_expect_h.txt" "$TMP"
+"$FUTILITY" dump_fmap -h "${SCRIPT_DIR}/futility/data_fmap.bin"  > "$TMP"
+cmp "${SCRIPT_DIR}/futility/data_fmap_expect_h.txt" "$TMP"
 
 
 # This should fail because the input file is truncated and doesn't really
 # contain the stuff that the FMAP claims it does.
-if "$FUTILITY" dump_fmap -x "${SCRIPTDIR}/data_fmap.bin" FMAP; then false; fi
+if "$FUTILITY" dump_fmap -x "${SCRIPT_DIR}/futility/data_fmap.bin" FMAP; \
+  then false; fi
 
 # This should fail too
-if "$FUTILITY" show "${SCRIPTDIR}/data_fmap.bin"; then false; fi
+if "$FUTILITY" show "${SCRIPT_DIR}/futility/data_fmap.bin"; then false; fi
 
 # However, this should work.
-"$FUTILITY" dump_fmap -x "${SCRIPTDIR}/data_fmap.bin" SI_DESC > "$TMP"
-cmp "${SCRIPTDIR}/data_fmap_expect_x.txt" "$TMP"
+"$FUTILITY" dump_fmap -x "${SCRIPT_DIR}/futility/data_fmap.bin" SI_DESC > "$TMP"
+cmp "${SCRIPT_DIR}/futility/data_fmap_expect_x.txt" "$TMP"
 
 # Redirect dumping to a different place
-"$FUTILITY" dump_fmap -x "${SCRIPTDIR}/data_fmap.bin" SI_DESC:FOO > "$TMP"
-cmp "${SCRIPTDIR}/data_fmap_expect_x2.txt" "$TMP"
+"$FUTILITY" dump_fmap -x "${SCRIPT_DIR}/futility/data_fmap.bin" SI_DESC:FOO \
+  > "$TMP"
+cmp "${SCRIPT_DIR}/futility/data_fmap_expect_x2.txt" "$TMP"
 cmp SI_DESC FOO
 
 # This FMAP has problems, and should fail.
-if "$FUTILITY" dump_fmap -h "${SCRIPTDIR}/data_fmap2.bin" > "$TMP"; then false; fi
-cmp "${SCRIPTDIR}/data_fmap2_expect_h.txt" "$TMP"
+if "$FUTILITY" dump_fmap -h "${SCRIPT_DIR}/futility/data_fmap2.bin" > "$TMP"; \
+  then false; fi
+cmp "${SCRIPT_DIR}/futility/data_fmap2_expect_h.txt" "$TMP"
 
-"$FUTILITY" dump_fmap -hh "${SCRIPTDIR}/data_fmap2.bin" > "$TMP"
-cmp "${SCRIPTDIR}/data_fmap2_expect_hh.txt" "$TMP"
+"$FUTILITY" dump_fmap -hh "${SCRIPT_DIR}/futility/data_fmap2.bin" > "$TMP"
+cmp "${SCRIPT_DIR}/futility/data_fmap2_expect_hh.txt" "$TMP"
 
-"$FUTILITY" dump_fmap -hhH "${SCRIPTDIR}/data_fmap2.bin" > "$TMP"
-cmp "${SCRIPTDIR}/data_fmap2_expect_hhH.txt" "$TMP"
+"$FUTILITY" dump_fmap -hhH "${SCRIPT_DIR}/futility/data_fmap2.bin" > "$TMP"
+cmp "${SCRIPT_DIR}/futility/data_fmap2_expect_hhH.txt" "$TMP"
 
 
 # cleanup
diff --git a/tests/futility/test_load_fmap.sh b/tests/futility/test_load_fmap.sh
index c5e6163..a93b71f 100755
--- a/tests/futility/test_load_fmap.sh
+++ b/tests/futility/test_load_fmap.sh
@@ -10,7 +10,7 @@
 cd "$OUTDIR"
 
 
-IN=${SCRIPTDIR}/data/bios_link_mp.bin
+IN=${SCRIPT_DIR}/futility/data/bios_link_mp.bin
 BIOS=${TMP}.bios.bin
 
 cp ${IN} ${BIOS}
diff --git a/tests/futility/test_main.sh b/tests/futility/test_main.sh
index 9ed72d7..2e5f4dc 100755
--- a/tests/futility/test_main.sh
+++ b/tests/futility/test_main.sh
@@ -38,7 +38,7 @@
 ln -sf ${FUTILITY} vbutil_keyblock
 ./vbutil_keyblock --unpack ${DEVKEYS}/installer_kernel.keyblock | grep ${SHA}
 cp ${FUTILITY} show
-./show ${SCRIPTDIR}/data/rec_kernel_part.bin | grep ${SHA}
+./show ${SCRIPT_DIR}/futility/data/rec_kernel_part.bin | grep ${SHA}
 
 # If it's invoked by any other name, expect the command to be the first arg.
 ln -sf ${FUTILITY} muggle
@@ -48,7 +48,7 @@
 ./buggle vbutil_keyblock --unpack ${DEVKEYS}/installer_kernel.keyblock \
   | grep ${SHA}
 cp ${FUTILITY} boo
-./boo show ${SCRIPTDIR}/data/rec_kernel_part.bin | grep ${SHA}
+./boo show ${SCRIPT_DIR}/futility/data/rec_kernel_part.bin | grep ${SHA}
 
 
 # we expect the first command fail, but the output to match anyway
diff --git a/tests/futility/test_rwsig.sh b/tests/futility/test_rwsig.sh
index fccd9ca..2bd70ce 100755
--- a/tests/futility/test_rwsig.sh
+++ b/tests/futility/test_rwsig.sh
@@ -9,7 +9,7 @@
 # Work in scratch directory
 cd "$OUTDIR"
 
-DATADIR="${SCRIPTDIR}/data"
+DATADIR="${SCRIPT_DIR}/futility/data"
 TESTKEYS=${SRCDIR}/tests/testkeys
 
 SIGS="1024 2048 2048_exp3 3072_exp3 4096 8192"
diff --git a/tests/futility/test_show_usbpd1.sh b/tests/futility/test_show_usbpd1.sh
index 5fa5b93..b5553aa 100755
--- a/tests/futility/test_show_usbpd1.sh
+++ b/tests/futility/test_show_usbpd1.sh
@@ -9,7 +9,7 @@
 # Work in scratch directory
 cd "$OUTDIR"
 
-DATADIR="${SCRIPTDIR}/data"
+DATADIR="${SCRIPT_DIR}/futility/data"
 TESTS="dingdong hoho minimuffin zinger"
 TESTKEYS=${SRCDIR}/tests/testkeys
 
diff --git a/tests/futility/test_show_vs_verify.sh b/tests/futility/test_show_vs_verify.sh
index b575d16..4981a38 100755
--- a/tests/futility/test_show_vs_verify.sh
+++ b/tests/futility/test_show_vs_verify.sh
@@ -28,7 +28,7 @@
 #### firmware vblock
 
 # Get some bits to look at
-${FUTILITY} dump_fmap -x ${SCRIPTDIR}/data/bios_peppy_mp.bin \
+${FUTILITY} dump_fmap -x ${SCRIPT_DIR}/futility/data/bios_peppy_mp.bin \
   GBB:${TMP}.gbb VBLOCK_A:${TMP}.vblock_a FW_MAIN_A:${TMP}.fw_main_a
 ${FUTILITY} gbb -g -k ${TMP}.rootkey ${TMP}.gbb
 
@@ -53,20 +53,21 @@
 
 #### kernel partition
 
-${FUTILITY} show ${SCRIPTDIR}/data/rec_kernel_part.bin
+${FUTILITY} show ${SCRIPT_DIR}/futility/data/rec_kernel_part.bin
 
-${FUTILITY} show ${SCRIPTDIR}/data/rec_kernel_part.bin \
+${FUTILITY} show ${SCRIPT_DIR}/futility/data/rec_kernel_part.bin \
   --publickey ${DEVKEYS}/kernel_subkey.vbpubk
 
-${FUTILITY} show ${SCRIPTDIR}/data/rec_kernel_part.bin \
+${FUTILITY} show ${SCRIPT_DIR}/futility/data/rec_kernel_part.bin \
   --publickey ${DEVKEYS}/recovery_key.vbpubk
 
-if ${FUTILITY} verify ${SCRIPTDIR}/data/rec_kernel_part.bin ; then false ; fi
+if ${FUTILITY} verify ${SCRIPT_DIR}/futility/data/rec_kernel_part.bin ; \
+  then false ; fi
 
-if ${FUTILITY} verify ${SCRIPTDIR}/data/rec_kernel_part.bin \
+if ${FUTILITY} verify ${SCRIPT_DIR}/futility/data/rec_kernel_part.bin \
   --publickey ${DEVKEYS}/kernel_subkey.vbpubk ; then false ; fi
 
-${FUTILITY} verify ${SCRIPTDIR}/data/rec_kernel_part.bin \
+${FUTILITY} verify ${SCRIPT_DIR}/futility/data/rec_kernel_part.bin \
   --publickey ${DEVKEYS}/recovery_key.vbpubk
 
 
diff --git a/tests/futility/test_sign_firmware.sh b/tests/futility/test_sign_firmware.sh
index 9a17cf0..fa5529c 100755
--- a/tests/futility/test_sign_firmware.sh
+++ b/tests/futility/test_sign_firmware.sh
@@ -15,15 +15,15 @@
 # keys, which means we can precalculate the expected results. Note that the
 # script does not change the root or recovery keys in the GBB.
 INFILES="
-${SCRIPTDIR}/data/bios_link_mp.bin
-${SCRIPTDIR}/data/bios_mario_mp.bin
-${SCRIPTDIR}/data/bios_peppy_mp.bin
+${SCRIPT_DIR}/futility/data/bios_link_mp.bin
+${SCRIPT_DIR}/futility/data/bios_mario_mp.bin
+${SCRIPT_DIR}/futility/data/bios_peppy_mp.bin
 "
 
 # We also want to test that we can sign an image without any valid firmware
 # preambles. That one won't be able to tell how much of the FW_MAIN region is
 # the valid firmware, so it'll have to sign the entire region.
-GOOD_VBLOCKS=${SCRIPTDIR}/data/bios_peppy_mp.bin
+GOOD_VBLOCKS=${SCRIPT_DIR}/futility/data/bios_peppy_mp.bin
 ONEMORE=bios_peppy_mp_no_vblock.bin
 cp ${GOOD_VBLOCKS} ${ONEMORE}
 ${FUTILITY} load_fmap ${ONEMORE} VBLOCK_A:/dev/urandom VBLOCK_B:/dev/zero
@@ -39,7 +39,7 @@
   DEV_FIRMWARE_PARAMS="
     -S ${KEYDIR}/dev_firmware_data_key.vbprivk
     -B ${KEYDIR}/dev_firmware.keyblock"
-  INFILES="${INFILES} ${SCRIPTDIR}/data/bios_zgb_mp.bin"
+  INFILES="${INFILES} ${SCRIPT_DIR}/futility/data/bios_zgb_mp.bin"
 fi
 
 count=0
@@ -70,7 +70,7 @@
   #   loem_output_dir        (optional: dir for copy of new vblocks)
   #   loemid                 (optional: copy new vblocks using this name)
   #
-  #OLD  ${BINDIR}/resign_firmwarefd.sh \
+  #OLD  ${BIN_DIR}/resign_firmwarefd.sh \
   #OLD    ${infile} \
   #OLD    ${outfile} \
   #OLD    ${KEYDIR}/firmware_data_key.vbprivk \
@@ -103,7 +103,7 @@
   ${FUTILITY} verify --publickey ${KEYDIR}/root_key.vbpubk ${outfile} \
     | grep sha1sum \
     | sed -e 's/.*: \+//' > ${TMP}.${base}.sha.new
-  cmp ${SCRIPTDIR}/data_${base}_expect.txt ${TMP}.${base}.sha.new
+  cmp ${SCRIPT_DIR}/futility/data_${base}_expect.txt ${TMP}.${base}.sha.new
 
    # and the LOEM stuff
    ${FUTILITY} dump_fmap -x ${outfile} \
@@ -122,7 +122,7 @@
      | sed -e 's/.*: \+//' >> ${loemdir}/loem.sha.new
 
   # the vblocks don't have root or recovery keys
-  tail -4 ${SCRIPTDIR}/data_${base}_expect.txt > ${loemdir}/sha.expect
+  tail -4 ${SCRIPT_DIR}/futility/data_${base}_expect.txt > ${loemdir}/sha.expect
   cmp ${loemdir}/sha.expect ${loemdir}/loem.sha.new
 
 done
diff --git a/tests/futility/test_sign_kernel.sh b/tests/futility/test_sign_kernel.sh
index 6ceab02..d252745 100755
--- a/tests/futility/test_sign_kernel.sh
+++ b/tests/futility/test_sign_kernel.sh
@@ -33,7 +33,7 @@
     --version 1 \
     --config ${TMP}.config.txt \
     --bootloader ${TMP}.bootloader.bin \
-    --vmlinuz ${SCRIPTDIR}/data/vmlinuz-${arch}.bin \
+    --vmlinuz ${SCRIPT_DIR}/futility/data/vmlinuz-${arch}.bin \
     --arch ${arch} \
     --pad ${padding} \
     --kloadaddr 0x11000
@@ -50,7 +50,7 @@
     --version 1 \
     --config ${TMP}.config.txt \
     --bootloader ${TMP}.bootloader.bin \
-    --vmlinuz ${SCRIPTDIR}/data/vmlinuz-${arch}.bin \
+    --vmlinuz ${SCRIPT_DIR}/futility/data/vmlinuz-${arch}.bin \
     --arch ${arch} \
     --pad ${padding} \
     --kloadaddr 0x11000 \
@@ -134,7 +134,7 @@
     --version 1 \
     --config ${TMP}.config.txt \
     --bootloader ${TMP}.bootloader.bin \
-    --vmlinuz ${SCRIPTDIR}/data/vmlinuz-${arch}.bin \
+    --vmlinuz ${SCRIPT_DIR}/futility/data/vmlinuz-${arch}.bin \
     --arch ${arch} \
     --pad ${padding} \
     --kloadaddr 0x11000
@@ -150,7 +150,7 @@
     --version 1 \
     --config ${TMP}.config.txt \
     --bootloader ${TMP}.bootloader.bin \
-    --vmlinuz ${SCRIPTDIR}/data/vmlinuz-${arch}.bin \
+    --vmlinuz ${SCRIPT_DIR}/futility/data/vmlinuz-${arch}.bin \
     --arch ${arch} \
     --pad ${padding} \
     --kloadaddr 0x11000 \
diff --git a/tests/futility/test_sign_usbpd1.sh b/tests/futility/test_sign_usbpd1.sh
index dc3b642..48e64eb 100755
--- a/tests/futility/test_sign_usbpd1.sh
+++ b/tests/futility/test_sign_usbpd1.sh
@@ -13,7 +13,7 @@
 # images with the same keypair, to make sure that we're producing identical
 # binaries.
 
-DATADIR="${SCRIPTDIR}/data"
+DATADIR="${SCRIPT_DIR}/futility/data"
 TESTS="dingdong hoho minimuffin zinger"
 
 set -o pipefail
diff --git a/tests/futility/test_update.sh b/tests/futility/test_update.sh
index d8156e7..902ad94 100755
--- a/tests/futility/test_update.sh
+++ b/tests/futility/test_update.sh
@@ -31,9 +31,9 @@
 	"enlarge_image,1 enlarge_image,2 "
 
 # Test data files
-LINK_BIOS="${SCRIPTDIR}/data/bios_link_mp.bin"
-PEPPY_BIOS="${SCRIPTDIR}/data/bios_peppy_mp.bin"
-RO_VPD_BLOB="${SCRIPTDIR}/data/ro_vpd.bin"
+LINK_BIOS="${SCRIPT_DIR}/futility/data/bios_link_mp.bin"
+PEPPY_BIOS="${SCRIPT_DIR}/futility/data/bios_peppy_mp.bin"
+RO_VPD_BLOB="${SCRIPT_DIR}/futility/data/ro_vpd.bin"
 
 # Work in scratch directory
 cd "$OUTDIR"
@@ -314,7 +314,8 @@
 # Test quirks
 test_update "Full update (wrong size)" \
 	"${FROM_IMAGE}.large" "!Image size is different" \
-	-i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+	-i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1 \
+	--quirks unlock_me_for_update,eve_smm_store
 
 test_update "Full update (--quirks enlarge_image)" \
 	"${FROM_IMAGE}.large" "${TMP}.expected.large" --quirks enlarge_image \
@@ -344,12 +345,12 @@
 cp -f "${LINK_BIOS}" "${A}/bios.bin"
 echo "TEST: Manifest (--manifest, bios.bin)"
 ${FUTILITY} update -a "${A}" --manifest >"${TMP}.json.out"
-cmp "${TMP}.json.out" "${SCRIPTDIR}/link_bios.manifest.json"
+cmp "${TMP}.json.out" "${SCRIPT_DIR}/futility/link_bios.manifest.json"
 
 mv -f "${A}/bios.bin" "${A}/image.bin"
 echo "TEST: Manifest (--manifest, image.bin)"
 ${FUTILITY} update -a "${A}" --manifest >"${TMP}.json.out"
-cmp "${TMP}.json.out" "${SCRIPTDIR}/link_image.manifest.json"
+cmp "${TMP}.json.out" "${SCRIPT_DIR}/futility/link_image.manifest.json"
 
 
 cp -f "${TO_IMAGE}" "${A}/image.bin"
@@ -401,7 +402,7 @@
 cmp "${LINK_BIOS}" "${TMP}.outa/image.bin"
 
 # Test archive with Unified Build contents.
-cp -r "${SCRIPTDIR}/models" "${A}/"
+cp -r "${SCRIPT_DIR}/futility/models" "${A}/"
 mkdir -p "${A}/images"
 mv "${A}/image.bin" "${A}/images/bios_coral.bin"
 cp -f "${PEPPY_BIOS}" "${A}/images/bios_peppy.bin"