Hi, Meanwhile I traced down the issue and found that although the satisfy_dependencies_string and the install_apt do have shell_on_failure option, install_deos do not, therefore the chain is broken.
I created a small patch to add this option to the required places.
diff --git a/lib/adt_testbed.py b/lib/adt_testbed.py index dda1a69..cb2b8e9 100644 --- a/lib/adt_testbed.py +++ b/lib/adt_testbed.py @@ -330,7 +330,7 @@ class Testbed: self._opened(pl) self.modified = False - def install_deps(self, deps_new, recommends): + def install_deps(self, deps_new, recommends, shell_on_failure=False): '''Install dependencies into testbed''' adtlog.debug('install_deps: deps_new=%s, recommends=%s' % (deps_new, recommends)) @@ -338,7 +338,7 @@ class Testbed: self.recommends_installed = recommends if not deps_new: return - self.satisfy_dependencies_string(', '.join(deps_new), 'install-deps', recommends) + self.satisfy_dependencies_string(', '.join(deps_new), 'install-deps', recommends, shell_on_failure=shell_on_failure) def needs_reset(self): # show what caused a reset diff --git a/runner/autopkgtest b/runner/autopkgtest index 79d5751..4482b28 100755 --- a/runner/autopkgtest +++ b/runner/autopkgtest @@ -157,7 +157,7 @@ def run_tests(tests, tree): adtlog.info('test %s: preparing testbed' % t.name) testbed.reset(t.depends, 'needs-recommends' in t.restrictions) binaries.publish() - testbed.install_deps(t.depends, 'needs-recommends' in t.restrictions) + testbed.install_deps(t.depends, 'needs-recommends' in t.restrictions, opts.shell_fail) testbed.run_test(tree, t, opts.env, opts.shell_fail, opts.shell, opts.build_parallel)