diff options
-rw-r--r-- | TARGETS | 15 | ||||
-rw-r--r-- | test/TARGETS | 6 | ||||
-rw-r--r-- | test/test-bootstrap.sh | 28 |
3 files changed, 49 insertions, 0 deletions
@@ -40,4 +40,19 @@ , "arch": [{"type": "var", "name": "ARCH", "default": "x86_64"}] , "target": [["etc/dev", "just-ext-hdrs"]] } +, "bootstrap-src": + { "type": "install" + , "files": {"ROOT": "ROOT", "TARGETS": "TARGETS"} + , "dirs": + [ [["TREE", null, "bin"], "."] + , [["TREE", null, "rules"], "."] + , [["TREE", null, "etc"], "."] + , [["TREE", null, "src"], "."] + ] + } +, "large-tests": + { "type": "install" + , "tainted": ["test"] + , "dirs": [[["test", "bootstrap-test"], "bootstrap-test"]] + } } diff --git a/test/TARGETS b/test/TARGETS index 27a269d4..885bb26c 100644 --- a/test/TARGETS +++ b/test/TARGETS @@ -22,4 +22,10 @@ , "arch": [{"type": "var", "name": "ARCH", "default": "x86_64"}] , "target": ["TESTS"] } +, "bootstrap-test": + { "type": ["@", "rules", "shell/test", "script"] + , "name": ["bootstrap-test"] + , "test": ["test-bootstrap.sh"] + , "deps": [["", "bootstrap-src"], ["@", "just-distfiles", "", "distdir"]] + } } diff --git a/test/test-bootstrap.sh b/test/test-bootstrap.sh new file mode 100644 index 00000000..e6b851fa --- /dev/null +++ b/test/test-bootstrap.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +set -eu + +export PATH=/bin:/usr/bin:$PATH + +readonly OUTDIR=${TEST_TMPDIR}/out +readonly LBRDIR=${TEST_TMPDIR}/local-build-root + +mkdir -p "${OUTDIR}" +mkdir -p "${LBRDIR}" + +BOOTSTRAP_BIN=./bin/bootstrap.py + +echo +echo Bootstrap +echo +python3 ${BOOTSTRAP_BIN} . "${OUTDIR}"/boot distdir +export JUST=$(realpath "${OUTDIR}"/boot/out/bin/just) + +echo +echo Testing if we reached the fixed point +echo +readonly CONF=$(./bin/just-mr.py setup -C etc/repos.json --distdir=distdir --local-build-root="${LBRDIR}" just) +${JUST} install -C ${CONF} -o "${OUTDIR}"/final-out --local-build-root="${LBRDIR}" + +sha256sum "${OUTDIR}"/boot/out/bin/just "${OUTDIR}"/final-out/bin/just +cmp "${OUTDIR}"/boot/out/bin/just "${OUTDIR}"/final-out/bin/just |