summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TARGETS15
-rw-r--r--test/TARGETS6
-rw-r--r--test/test-bootstrap.sh28
3 files changed, 49 insertions, 0 deletions
diff --git a/TARGETS b/TARGETS
index 0943d44e..70dafc54 100644
--- a/TARGETS
+++ b/TARGETS
@@ -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