This is an automated email from the git hooks/post-receive script. jamessan pushed a commit to branch master in repository devscripts.
commit 2d19f1410beb66843e2a546b41cd8253400c94bb Author: James McCoy <[email protected]> Date: Thu Oct 30 00:02:46 2014 -0400 sadt: Improve handling of non-executable test files Closes: #749729 Signed-off-by: James McCoy <[email protected]> --- debian/changelog | 4 ++++ scripts/sadt | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index dbef7a2..b8f8fdb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,10 @@ devscripts (2.14.11) UNRELEASED; urgency=medium [ Jakub Wilk ] * sadt: + Fix handling of rw-build-tree restriction + + Improve handling of non-executable test files. When rw-build-tree is in + effect, simply chmod the file. Otherwise, attempt to chmod the file + (skipping the test on failure) and restore the original permissions on + completion. (Closes: #749729) -- Paul Wise <[email protected]> Sun, 19 Oct 2014 17:27:24 +0800 diff --git a/scripts/sadt b/scripts/sadt index 57b308f..964bdd7 100755 --- a/scripts/sadt +++ b/scripts/sadt @@ -42,6 +42,7 @@ def chmod_x(path): new_mode = old_mode | ((old_mode & 0o444) >> 2) if old_mode != new_mode: os.chmod(path, new_mode) + return old_mode def annotate_output(child): queue = queuemod.Queue() @@ -256,20 +257,30 @@ class TestGroup(object): except Skip as exc: progress.skip(str(exc)) raise + path = os.path.join(self.tests_directory, test) + original_mode = None if rw_build_tree: cwd = os.getcwd() os.chdir(rw_build_tree) + chmod_x(path) else: cwd = None + if not os.access(path, os.X_OK): + try: + original_mode = chmod_x(path) + except OSError as exc: + progress.skip('{path} could not be made executable: {exc}'.format(path=path, exc=exc)) + raise Skip try: self._run(test, progress, allow_stderr=options.allow_stderr) finally: + if original_mode is not None: + os.chmod(path, original_mode) if cwd is not None: os.chdir(cwd) def _run(self, test, progress, allow_stderr=False): path = os.path.join(self.tests_directory, test) - chmod_x(path) tmpdir1 = tempfile.mkdtemp(prefix='sadt.') tmpdir2 = tempfile.mkdtemp(prefix='sadt.') environ = dict(os.environ) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git _______________________________________________ devscripts-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel
