summaryrefslogtreecommitdiffstats
path: root/tests/utils/libcxattr.py
diff options
context:
space:
mode:
authorEmmanuel Dreyfus <manu@netbsd.org>2014-11-26 09:59:25 +0100
committerVijay Bellur <vbellur@redhat.com>2014-11-26 04:18:47 -0800
commit51eaed7fb243a989fdf96461ba2d9acfc07977f8 (patch)
treee371a00cbfe45b74d236472b9896a8adc4f5bb57 /tests/utils/libcxattr.py
parentc147c36a70505ff239cef48030422840abd3fbcd (diff)
Regression test portability: batch of bugs (volume 2)
Fix various regression test portability in tests/bugs. bug-861542.t - Avoid syntax specific to GNU sed. bug-860663.t - Command argument length is system dependent, and specifying 1000 file path may overflow it. Use a C program to do the job in a portable and efficient way. - Add a test that we created the specified amount of files. bug-858242.c, bug-808400-fcntl.c, bug-808400-flock.c - fstat64() is Linux-specific. Define it as fstat for other systems. bug-823081.t - Use portable tail -n instead of tail --lines In many tests: - Do not assume python interpreter name. Use $PYTHON as defined in env.rc by configure. utils/libcxattr.py - If python version is 2.6 or higher, use a portable mechanism to recover errno. The original version is retained for python version 2.5 and earlier but it only works on Linux. BUG: 1129939 Change-Id: If2fea1ffec5cc6ab2de426fb200e884450afe61b Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org> Reviewed-on: http://review.gluster.org/9097 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'tests/utils/libcxattr.py')
-rw-r--r--tests/utils/libcxattr.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/utils/libcxattr.py b/tests/utils/libcxattr.py
index 74d120fa196..149db72e6ee 100644
--- a/tests/utils/libcxattr.py
+++ b/tests/utils/libcxattr.py
@@ -9,6 +9,7 @@
#
import os
+import sys
from ctypes import CDLL, c_int, create_string_buffer
from ctypes.util import find_library
@@ -25,10 +26,18 @@ class Xattr(object):
sizes we expect
"""
- libc = CDLL(find_library("libc"))
+ if sys.hexversion >= 0x02060000:
+ from ctypes import DEFAULT_MODE
+ libc = CDLL(find_library("libc"), DEFAULT_MODE, None, True)
+ else:
+ libc = CDLL(find_library("libc"))
@classmethod
def geterrno(cls):
+ if sys.hexversion >= 0x02060000:
+ from ctypes import get_errno
+ return get_errno()
+ # breaks on NetBSD
return c_int.in_dll(cls.libc, 'errno').value
@classmethod