diff options
-rw-r--r-- | templates/bash/template.sh | 11 | ||||
-rw-r--r-- | templates/python/template.py | 13 |
2 files changed, 24 insertions, 0 deletions
diff --git a/templates/bash/template.sh b/templates/bash/template.sh index 286e56f..89958d4 100644 --- a/templates/bash/template.sh +++ b/templates/bash/template.sh @@ -176,6 +176,8 @@ scenario_{{ loop.index }}() { scendir="$(mktemp -d -p "$_datadir")" cd "$scendir" + export HOME="$scendir" + ctx_new cleanups[0]='' steps[0]='' @@ -227,6 +229,15 @@ scenario_{{ loop.index }}() { {% endfor %} ############################################################################# +# Make the environment minimal. + +unset $(env | sed 's/=.*//') +export PATH=/bin:/usr/bin +export SHELL=/bin/sh +export HOME=/ # Will be set to datadir for each scenario. + + +############################################################################# # Run the scenarios. if [ "$#" = 0 ] diff --git a/templates/python/template.py b/templates/python/template.py index a1fa3ee..4ceeb51 100644 --- a/templates/python/template.py +++ b/templates/python/template.py @@ -156,6 +156,7 @@ class Scenario: scendir = tempfile.mkdtemp(dir=_datadir) os.chdir(scendir) + os.environ['HOME'] = scendir ctx = Context() done = [] @@ -216,6 +217,17 @@ def parse_command_line(): return p.parse_args() +def setup_minimal_environment(): + minimal = { + 'PATH': '/bin:/usr/bin', + 'SHELL': '/bin/sh', + 'HOME': '/', # will be set to datadir for each scenario + } + + os.environ.clear() + os.environ.update(minimal) + + def setup_logging(args): if args.log: fmt = "%(asctime)s %(levelname)s %(message)s" @@ -243,6 +255,7 @@ def save_directory(dirname, tarname): def main(): args = parse_command_line() + setup_minimal_environment() setup_logging(args) logging.info("Test program starts") |