test_build.sh: Run tests for both Make and Meson builds
Change-Id: I6e6b9d103159b916a766f65184c89ddca19acf00
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/139
diff --git a/test_build.sh b/test_build.sh
index 7fabe6b..fbd3431 100755
--- a/test_build.sh
+++ b/test_build.sh
@@ -4,25 +4,28 @@
TEMP_DIR=$(mktemp -d)
trap "rm -rf ${TEMP_DIR}" EXIT
-if command -v meson >/dev/null 2>&1; then
- meson setup --buildtype release ${TEMP_DIR}/build
- ninja ${CPUS:+-j${CPUS}} -C ${TEMP_DIR}/build
- FLASHPROG=${TEMP_DIR}/build/flashprog
-else
- ${MAKECMD:-make} clean
- ${MAKECMD:-make} -j${CPUS:-$(nproc)} CC="${CC:-ccache cc}" CONFIG_EVERYTHING=yes
- FLASHPROG=./flashprog
-fi
+dd bs=$((128*1024)) count=1 </dev/urandom >"${TEMP_DIR}/rand"
+dd bs=$((128*1024)) count=1 </dev/urandom >"${TEMP_DIR}/rand2"
+dd bs=$((128*1024)) count=1 </dev/zero | tr '\000' '\377' >"${TEMP_DIR}/empty"
-dd bs=128K count=1 </dev/urandom >${TEMP_DIR}/rand
-${FLASHPROG} -p dummy:emulate=M25P10.RES,image=${TEMP_DIR}/image -w ${TEMP_DIR}/rand
-${FLASHPROG} -p dummy:emulate=M25P10.RES,image=${TEMP_DIR}/image -r ${TEMP_DIR}/bak
-cmp ${TEMP_DIR}/rand ${TEMP_DIR}/bak
+test_prog() {
+ prog="$1"
-dd bs=128K count=1 </dev/urandom >${TEMP_DIR}/rand
-${FLASHPROG} -p dummy:emulate=M25P10.RES,image=${TEMP_DIR}/image -c M25P10 -w ${TEMP_DIR}/rand
-${FLASHPROG} -p dummy:emulate=M25P10.RES,image=${TEMP_DIR}/image -c M25P10 -v ${TEMP_DIR}/rand
+ "${prog}" -p dummy:emulate=M25P10.RES,image="${TEMP_DIR}/image" -w "${TEMP_DIR}/rand"
+ "${prog}" -p dummy:emulate=M25P10.RES,image="${TEMP_DIR}/image" -r "${TEMP_DIR}/bak"
+ cmp "${TEMP_DIR}/rand" "${TEMP_DIR}/bak"
-dd bs=128K count=1 </dev/zero | tr '\000' '\377' >${TEMP_DIR}/empty
-${FLASHPROG} -p dummy:emulate=M25P10.RES,image=${TEMP_DIR}/image -c M25P10 -E
-${FLASHPROG} -p dummy:emulate=M25P10.RES,image=${TEMP_DIR}/image -c M25P10 -v ${TEMP_DIR}/empty
+ "${prog}" -p dummy:emulate=M25P10.RES,image="${TEMP_DIR}/image" -c M25P10 -w "${TEMP_DIR}/rand2"
+ "${prog}" -p dummy:emulate=M25P10.RES,image="${TEMP_DIR}/image" -c M25P10 -v "${TEMP_DIR}/rand2"
+
+ "${prog}" -p dummy:emulate=M25P10.RES,image="${TEMP_DIR}/image" -c M25P10 -E
+ "${prog}" -p dummy:emulate=M25P10.RES,image="${TEMP_DIR}/image" -c M25P10 -v "${TEMP_DIR}/empty"
+}
+
+${MAKECMD:-make} clean
+${MAKECMD:-make} -j${CPUS:-$(nproc)} CC="${CC:-ccache cc}" CONFIG_EVERYTHING=yes
+test_prog ./flashprog
+
+${MESONCMD:-meson} setup --buildtype release "${TEMP_DIR}/build"
+ninja ${CPUS:+-j${CPUS}} -C "${TEMP_DIR}/build"
+test_prog "${TEMP_DIR}/build/flashprog"