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)

Reply via email to