Skip to content

Commit

Permalink
test: shell, lang: core: embedded: provisioner: Check it compiles
Browse files Browse the repository at this point in the history
Add a test to guarantee we continue to keep compiling, in case something
in the language changes.
  • Loading branch information
purpleidea committed Apr 16, 2024
1 parent 68ee163 commit 6782d65
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
10 changes: 10 additions & 0 deletions lang/core/embedded/provisioner/provisioner.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down
19 changes: 19 additions & 0 deletions test/shell/embedded-provisioner.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 6782d65

Please sign in to comment.