test: shell, lang: core: embedded: provisioner: Check it compiles

Add a test to guarantee we continue to keep compiling, in case something
in the language changes.
This commit is contained in:
James Shubin
2024-04-16 14:30:02 -04:00
parent 68ee163eb1
commit 6782d65577
2 changed files with 29 additions and 0 deletions

View File

@@ -166,6 +166,10 @@ type localArgs struct {
// to the user to make sure they exist and don't conflict with each
// other or the base installation packages.
Packages []string `arg:"--packages" help:"list of additional distro packages to install (comma separated)" func:"cli_packages"`
// OnlyUnify tells the compiler to stop after type unification. This is
// used for testing.
OnlyUnify bool `arg:"--only-unify" help:"stop after type unification"`
}
// provisioner is our cli parser translator and general frontend object.
@@ -384,6 +388,12 @@ func (obj *provisioner) Customize(a interface{}) (*cli.RunArgs, error) {
// Make any changes here that we want to...
runArgs.RunLang.SkipUnify = true // speed things up for known good code
if obj.localArgs.OnlyUnify {
obj.init.Logf("stopping after type unification...")
runArgs.RunLang.OnlyUnify = true
runArgs.RunLang.SkipUnify = false // can't skip if we only unify
}
name := simplesolver.Name
// TODO: Remove these optimizations when the solver is faster overall.
runArgs.RunLang.UnifySolver = &name

View File

@@ -0,0 +1,19 @@
#!/bin/bash -e
. "$(dirname "$0")/../util.sh"
# misc bash functions, eg: repeat "#" 42
function repeat() {
for ((i=0; i<$2; ++i)); do echo -n "$1"; done
echo
}
set -x
# run unification with a dummy password
$TIMEOUT "$MGMT" provisioner --only-unify --password $(repeat "#" 106) &
pid=$!
wait $pid # get exit status
e=$?
exit $e