From d1deaf4d02065fd8a1ace538df22a2125cf0b994 Mon Sep 17 00:00:00 2001 From: Luke Diamand Date: Tue, 26 Apr 2016 08:50:59 +0100 Subject: git-p4 tests: cd to / before running python The python one-liner for getting the current time prints out error messages if the current directory is deleted while it is running if using python3. Avoid these messages by switching to "/" before running it. This problem does not arise if using python2. Signed-off-by: Luke Diamand Signed-off-by: Junio C Hamano diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh index f9ae1d7..724bc43 100644 --- a/t/lib-git-p4.sh +++ b/t/lib-git-p4.sh @@ -50,7 +50,7 @@ native_path() { # at runtime (e.g. via NTP). The 'clock_gettime(CLOCK_MONOTONIC)' # function could fix that but it is not in Python until 3.3. time_in_seconds() { - python -c 'import time; print int(time.time())' + (cd / && python -c 'import time; print(int(time.time()))') } # Try to pick a unique port: guess a large number, then hope -- cgit v0.10.2-6-g49f6 From 84096814a82eeb9c23bfc2b8ad7709d2c616b07d Mon Sep 17 00:00:00 2001 From: Luke Diamand Date: Tue, 26 Apr 2016 08:51:00 +0100 Subject: git-p4 tests: work with python3 as well as python2 Update the git-p4 tests so that they work with both Python2 and Python3. We have to be explicit about the difference between Unicode text strings (Python3 default) and raw binary strings which will be exchanged with Perforce. Additionally, print always takes parentheses in Python3. Signed-off-by: Luke Diamand Signed-off-by: Junio C Hamano diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh index 724bc43..7393ee2 100644 --- a/t/lib-git-p4.sh +++ b/t/lib-git-p4.sh @@ -198,9 +198,10 @@ marshal_dump() { cat >"$TRASH_DIRECTORY/marshal-dump.py" <<-EOF && import marshal import sys + instream = getattr(sys.stdin, 'buffer', sys.stdin) for i in range($line): - d = marshal.load(sys.stdin) - print d['$what'] + d = marshal.load(instream) + print(d[b'$what'].decode('utf-8')) EOF "$PYTHON_PATH" "$TRASH_DIRECTORY/marshal-dump.py" } diff --git a/t/t9802-git-p4-filetype.sh b/t/t9802-git-p4-filetype.sh index 66d3fc9..eb9a8ed 100755 --- a/t/t9802-git-p4-filetype.sh +++ b/t/t9802-git-p4-filetype.sh @@ -223,12 +223,12 @@ build_gendouble() { import sys import struct - s = struct.pack(">LL18s", + s = struct.pack(b">LL18s", 0x00051607, # AppleDouble 0x00020000, # version 2 - "" # pad to 26 bytes + b"" # pad to 26 bytes ) - sys.stdout.write(s) + getattr(sys.stdout, 'buffer', sys.stdout).write(s) EOF } -- cgit v0.10.2-6-g49f6 From 1fb3fb4e6d4709a3b8311deff4b109af67efb514 Mon Sep 17 00:00:00 2001 From: Luke Diamand Date: Tue, 26 Apr 2016 08:51:01 +0100 Subject: git-p4 tests: time_in_seconds should use $PYTHON_PATH The time_in_seconds script should use $PYTHON_PATH, rather than just hard-coded python, so that users can override which version gets used, as is done for other python invocations. Signed-off-by: Luke Diamand Signed-off-by: Junio C Hamano diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh index 7393ee2..012d40e 100644 --- a/t/lib-git-p4.sh +++ b/t/lib-git-p4.sh @@ -50,7 +50,7 @@ native_path() { # at runtime (e.g. via NTP). The 'clock_gettime(CLOCK_MONOTONIC)' # function could fix that but it is not in Python until 3.3. time_in_seconds() { - (cd / && python -c 'import time; print(int(time.time()))') + (cd / && "$PYTHON_PATH" -c 'import time; print(int(time.time()))') } # Try to pick a unique port: guess a large number, then hope -- cgit v0.10.2-6-g49f6