Skip to content

Commit

Permalink
test refined
Browse files Browse the repository at this point in the history
  • Loading branch information
avarga committed Oct 10, 2024
1 parent cf8af9d commit 5f14858
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 11 deletions.
2 changes: 1 addition & 1 deletion opp_env/database/testproject.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ def get_project_descriptions():
"name": "opp_env_testproject", "version": "0.1",
"description": "Dummy project for testing opp_env",
"patch_commands": ["echo hello from patch command"],
"setenv_commands": ["echo hello from setenv command", "export FOO=bar", "echo BUILD_MODES=$BUILD_MODES"],
"setenv_commands": ["echo hello from setenv command", "export SETENV_VAR=hello-from-setenv", "echo BUILD_MODES=$BUILD_MODES"],
"build_commands": ["make MODE=$BUILD_MODE"],
"clean_commands": ["make clean MODE=$BUILD_MODE"],
"test_commands": ["make test"],
Expand Down
39 changes: 35 additions & 4 deletions tests/smoketest_install_and_run
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,29 @@ assert_contains_line 'make MODE=release invoked'
# check run isolated (default) and non-isolated
#

export HELLO='hello-from-host'
export HOSTVAR='hello-from-host'
export KVAR='keep-this'

COMMANDS_FILE=$WORKSPACE/commands.txt
echo 'echo hello world; echo pwd=$(pwd); echo HELLO=$HELLO; echo KVAR=$KVAR' > $COMMANDS_FILE
echo 'echo hello world; echo pwd=$(pwd); echo SETENV_VAR=$SETENV_VAR; echo HOSTVAR=$HOSTVAR; echo KVAR=$KVAR; echo PATH=$PATH' > $COMMANDS_FILE

run opp_env run -w $WORKSPACE opp_env_testproject-latest -k KVAR -c "source $COMMANDS_FILE"
assert_contains_line 'hello world'
assert_contains_line "pwd=$(pwd)"
assert_contains_line "SETENV_VAR=hello-from-setenv"
assert_not_contains 'hello-from-host' # host vars NOT visible
assert_contains_line "KVAR=keep-this"
assert_contains_line 'PATH=.*:/nix/store/.*' # in Nix
assert_not_contains 'PATH=.*:/usr/bin.*' # isolated

run opp_env run -w $WORKSPACE opp_env_testproject-latest -k KVAR -c "source $COMMANDS_FILE" --no-isolated
assert_contains_line 'hello world'
assert_contains_line "pwd=$(pwd)"
assert_contains_line 'HELLO=hello-from-host' # host vars visible
assert_contains_line "SETENV_VAR=hello-from-setenv"
assert_contains_line 'HOSTVAR=hello-from-host' # host vars visible
assert_contains_line "KVAR=keep-this"
assert_contains_line 'PATH=.*:/nix/store/.*' # in Nix
assert_contains_line 'PATH=.*:/usr/bin.*' # non-isolated

#
# check shell isolated and non-isolated (default)
Expand All @@ -46,14 +52,20 @@ assert_contains_line "KVAR=keep-this"
cat $COMMANDS_FILE | run opp_env shell -w $WORKSPACE opp_env_testproject-latest -k KVAR --isolated
assert_contains_line 'hello world'
assert_contains_line "pwd=$WORKSPACE/opp_env_testproject-0.1"
assert_contains_line "SETENV_VAR=hello-from-setenv"
assert_not_contains 'hello-from-host' # host vars NOT visible
assert_contains_line "KVAR=keep-this"
assert_contains_line 'PATH=.*:/nix/store/.*' # in Nix
assert_not_contains 'PATH=.*:/usr/bin.*' # isolated

cat $COMMANDS_FILE | run opp_env shell -w $WORKSPACE opp_env_testproject-latest -k KVAR
assert_contains_line 'hello world'
assert_contains_line "pwd=$WORKSPACE/opp_env_testproject-0.1"
assert_contains_line 'HELLO=hello-from-host' # host vars visible
assert_contains_line "SETENV_VAR=hello-from-setenv"
assert_contains_line 'HOSTVAR=hello-from-host' # host vars visible
assert_contains_line "KVAR=keep-this"
assert_contains_line 'PATH=.*:/nix/store/.*' # in Nix
assert_contains_line 'PATH=.*:/usr/bin.*' # non-isolated

#
# check install --no-patch, --no-build
Expand All @@ -80,6 +92,25 @@ assert_not_contains 'hello from patch command'
assert_not_contains 'make MODE=debug invoked'
assert_not_contains 'make MODE=release invoked'

#
# check install --smoke-test, --test
#

rm -rf $WORKSPACE/opp_env_testproject-*
run opp_env install -w $WORKSPACE opp_env_testproject-latest --smoke-test
assert_contains_line 'hello from patch command'
assert_contains_line 'hello from setenv command'
assert_contains_line 'make MODE=debug invoked'
assert_contains_line 'make MODE=release invoked'
assert_contains_line 'make smoketest invoked'

rm -rf $WORKSPACE/opp_env_testproject-*
run opp_env install -w $WORKSPACE opp_env_testproject-latest --test
assert_contains_line 'hello from patch command'
assert_contains_line 'hello from setenv command'
assert_contains_line 'make MODE=debug invoked'
assert_contains_line 'make MODE=release invoked'
assert_contains_line 'make test invoked'

#
# check --build-mode (should set $BUILD_MODES)
Expand Down
41 changes: 35 additions & 6 deletions tests/smoketest_nixless
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,27 @@ assert_contains_line 'make MODE=release invoked'
# check run isolated (default) and non-isolated
#

export HELLO='hello-from-host'
export HOSTVAR='hello-from-host'
export KVAR='keep-this'

COMMANDS_FILE=$WORKSPACE/commands.txt
echo 'echo hello world; echo pwd=$(pwd); echo HELLO=$HELLO; echo KVAR=$KVAR' > $COMMANDS_FILE
echo 'echo hello world; echo pwd=$(pwd); echo SETENV_VAR=$SETENV_VAR; echo HOSTVAR=$HOSTVAR; echo KVAR=$KVAR; echo PATH=$PATH' > $COMMANDS_FILE

run opp_env run -w $WORKSPACE opp_env_testproject-latest -k KVAR -c "source $COMMANDS_FILE"
assert_contains_line 'hello world'
assert_contains_line "pwd=$(pwd)"
# assert_not_contains 'hello-from-host' # host vars NOT visible
assert_contains_line "SETENV_VAR=hello-from-setenv"
#assert_not_contains 'hello-from-host' # host vars NOT visible
assert_contains_line "KVAR=keep-this"
assert_not_contains 'PATH=.*:/nix/store' # not under Nix

run opp_env run -w $WORKSPACE opp_env_testproject-latest -k KVAR -c "source $COMMANDS_FILE" --no-isolated
assert_contains_line 'hello world'
assert_contains_line "pwd=$(pwd)"
assert_contains_line 'HELLO=hello-from-host' # host vars visible
assert_contains_line "SETENV_VAR=hello-from-setenv"
assert_contains_line 'HOSTVAR=hello-from-host' # host vars visible
assert_contains_line "KVAR=keep-this"
assert_not_contains 'PATH=.*:/nix/store' # not under Nix

#
# check shell isolated and non-isolated (default)
Expand All @@ -48,12 +52,15 @@ assert_contains_line 'hello world'
assert_contains_line "pwd=$WORKSPACE/opp_env_testproject-0.1"
# assert_not_contains 'hello-from-host' # host vars NOT visible
assert_contains_line "KVAR=keep-this"
assert_not_contains 'PATH=.*:/nix/store' # not under Nix

cat $COMMANDS_FILE | run opp_env shell -w $WORKSPACE opp_env_testproject-latest -k KVAR
assert_contains_line 'hello world'
assert_contains_line "pwd=$WORKSPACE/opp_env_testproject-0.1"
assert_contains_line 'HELLO=hello-from-host' # host vars visible
assert_contains_line "SETENV_VAR=hello-from-setenv"
assert_contains_line 'HOSTVAR=hello-from-host' # host vars visible
assert_contains_line "KVAR=keep-this"
assert_not_contains 'PATH=.*:/nix/store' # not under Nix

#
# check install --no-patch, --no-build
Expand All @@ -80,23 +87,45 @@ assert_not_contains 'hello from patch command'
assert_not_contains 'make MODE=debug invoked'
assert_not_contains 'make MODE=release invoked'

#
# check install --smoke-test, --test
#

rm -rf $WORKSPACE/opp_env_testproject-*
run opp_env install -w $WORKSPACE opp_env_testproject-latest --smoke-test
assert_contains_line 'hello from patch command'
assert_contains_line 'hello from setenv command'
assert_contains_line 'make MODE=debug invoked'
assert_contains_line 'make MODE=release invoked'
assert_contains_line 'make smoketest invoked'

rm -rf $WORKSPACE/opp_env_testproject-*
run opp_env install -w $WORKSPACE opp_env_testproject-latest --test
assert_contains_line 'hello from patch command'
assert_contains_line 'hello from setenv command'
assert_contains_line 'make MODE=debug invoked'
assert_contains_line 'make MODE=release invoked'
assert_contains_line 'make test invoked'

#
# check build modes
# check --build-mode (should set $BUILD_MODES)
#

rm -rf $WORKSPACE/opp_env_testproject-*
run opp_env install -w $WORKSPACE opp_env_testproject-latest --build-mode=debug
assert_contains_line 'BUILD_MODES=debug'
assert_contains_line 'make MODE=debug invoked'
assert_not_contains 'make MODE=release invoked'

rm -rf $WORKSPACE/opp_env_testproject-*
run opp_env install -w $WORKSPACE opp_env_testproject-latest --build-mode=release
assert_contains_line 'BUILD_MODES=release'
assert_contains_line 'make MODE=release invoked'
assert_not_contains 'make MODE=debug invoked'

rm -rf $WORKSPACE/opp_env_testproject-*
run opp_env install -w $WORKSPACE opp_env_testproject-latest --build-mode=foo,bar
assert_contains_line 'BUILD_MODES=foo bar'
assert_contains_line 'make MODE=foo invoked'
assert_contains_line 'make MODE=bar invoked'
assert_not_contains 'make MODE=release invoked'
Expand Down

0 comments on commit 5f14858

Please # to comment.