From 83db7a29fd4432f28adcd01039ba468716cacc10 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 24 May 2020 20:19:30 +0300 Subject: feat: set up a minimal environment in the code templates --- templates/bash/template.sh | 11 +++++++++++ templates/python/template.py | 13 +++++++++++++ 2 files changed, 24 insertions(+) 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]='' @@ -226,6 +228,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. 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") -- cgit v1.2.1