Running the tests with various Python versions revealed that exactly one 2.6 feature had been introduced: sys.maxsize was used in the "query006" test. Now it uses sys.maxsize where available and falls back to use sys.maxint. Note that the test function is not affected at all. The only possible consequence of this change is that the test might not be flagged as expected to fail, and thus "TODO" might not be appended to the failure message. The only effect would be to overstate the severity of a failure on this test. And this could only happen in environments where (without this patch) the test would crash the whole pactest framework with an AttributeError. The "mode001" test was running but indicated a failure on the 2.5 runtime. Package tars built by the pactest framework on that runtime had permissions set to 0666 for files (instead of 0644) when the caller failed to explicitly set that field in the TarInfo. With this patch the tests were run by the author with these Python versions: 2.5.6, 2.6.8 and 2.7.5. On all those runtimes these five tests (all marked expected to fail) failed: query006, replace110, sync403, sync406, upgrade078. And all other tests passed. What does this accomplish? By itself, not much. Obviously nobody is using 2.5, or if they are they haven't mentioned the AttributeError. And nobody is going to start. But it sets up a test of the testing framework for the sequence of commits to follow. Having extended the range of runtimes back to 2.5, the next several commits aim to extend it forward without breaking anything for these older runtimes. Signed-off-by: Jeremy Heiner <ScalaProtractor at gmail.com> --- test/pacman/pmpkg.py | 2 ++ test/pacman/tests/query006.py | 3 +-- test/pacman/util.py | 9 +++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/test/pacman/pmpkg.py b/test/pacman/pmpkg.py index 9b3147a..c60f11b 100644 --- a/test/pacman/pmpkg.py +++ b/test/pacman/pmpkg.py @@ -162,6 +162,8 @@ def makepkg(self, path): info.mode = fileinfo["perms"] elif fileinfo["isdir"]: info.mode = 0755 + elif not fileinfo["islink"]: + info.mode = 0644 if fileinfo["isdir"]: info.type = tarfile.DIRTYPE tar.addfile(info) diff --git a/test/pacman/tests/query006.py b/test/pacman/tests/query006.py index 0f6f762..ed7ac40 100644 --- a/test/pacman/tests/query006.py +++ b/test/pacman/tests/query006.py @@ -25,6 +25,5 @@ self.addrule("PACMAN_OUTPUT=^Install Date.* 2286") # expect failure on 32bit systems -import sys -if sys.maxsize <= 2**32: +if util.sys_maxsize <= 2**32: self.expectfailure = True diff --git a/test/pacman/util.py b/test/pacman/util.py index 14035d7..62f88f9 100644 --- a/test/pacman/util.py +++ b/test/pacman/util.py @@ -19,6 +19,7 @@ import os import re +import sys import hashlib import tap @@ -47,6 +48,14 @@ def vprint(msg): if verbose: tap.diag(msg) + +# +# Python version sensitive stuff +# + +sys_maxsize = sys.maxsize if sys.hexversion >= 0x02060000 else sys.maxint + + # # Methods to generate files # -- 1.8.4