[dev-libs/Ice] apply patches from upstream to fix python tests, remove custom test handler, add passlib to test deps, skip some tests due to sandboxing / broken source files
This commit is contained in:
parent
298f146a79
commit
e8dbcd4a00
@ -46,7 +46,10 @@ RDEPEND=">=dev-libs/expat-2.0.1
|
||||
!dev-ruby/IceRuby"
|
||||
DEPEND="${RDEPEND}
|
||||
ncurses? ( sys-libs/ncurses sys-libs/readline )
|
||||
test? ( ${PYTHON_DEPS} )"
|
||||
test? (
|
||||
${PYTHON_DEPS}
|
||||
dev-python/passlib[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
REQUIRED_USE="php_namespaces? ( php )"
|
||||
|
||||
@ -57,12 +60,11 @@ REQUIRED_USE="php_namespaces? ( php )"
|
||||
# SUPPORT_PYTHON_ABIS=1 otherwise we can't get pyc/pyo anymore the sane way.
|
||||
# TODO: java bindings
|
||||
|
||||
#overwrite ruby-ng.eclass default
|
||||
S="${WORKDIR}/${P/I/i}"
|
||||
PHP_EXT_S="${S}/php"
|
||||
|
||||
pkg_setup() {
|
||||
if use ruby && [[ $RUBY_TARGETS != *$( eselect ruby show | awk 'NR==2' | tr -d ' ' )* ]]; then
|
||||
if use test && use ruby && [[ $RUBY_TARGETS != *$( eselect ruby show | awk 'NR==2' | tr -d ' ' )* ]]; then
|
||||
eerror "/usr/bin/ruby is currently not included in Ice's ruby targets: ${RUBY_TARGETS}."
|
||||
eerror "Please update it via `eselect ruby`"
|
||||
die
|
||||
@ -78,8 +80,11 @@ src_prepare() {
|
||||
epatch "${FILESDIR}/${P}-libressl.patch"
|
||||
epatch "${FILESDIR}/${P}-no-arch-opts.patch"
|
||||
epatch "${FILESDIR}/${P}-csharp.patch"
|
||||
epatch "${FILESDIR}/${P}-python-test.patch"
|
||||
epatch "${FILESDIR}/${P}-python-test-import.patch"
|
||||
sed -i \
|
||||
-e 's|\(install_configdir[[:space:]]*\):=|\1?=|' \
|
||||
-e 's|-L\$\(libdir\)||' \
|
||||
cpp/config/Make.rules || die "sed failed"
|
||||
|
||||
sed -i \
|
||||
@ -113,6 +118,17 @@ src_prepare() {
|
||||
-e '/SUBDIRS/s|\ test||' \
|
||||
csharp/Makefile || die "sed failed"
|
||||
|
||||
# skip udp test due to multicast
|
||||
# skip IceSSL tests due to requirement of internet connection
|
||||
sed -i \
|
||||
-e 's|allTests.py|allTests.py --rfilter=udp --rfilter=IceSSL --rfilter=IceGrid\/simple|' \
|
||||
cpp/Makefile || die "sed failed"
|
||||
|
||||
# mainly broken .ice files
|
||||
sed -i \
|
||||
-e 's|allTests.py|allTests.py --rfilter=operations --rfilter=slicing\/objects|' \
|
||||
python/Makefile || die "sed failed"
|
||||
|
||||
if ! use test ; then
|
||||
sed -i \
|
||||
-e '/SUBDIRS/s|\ test||' \
|
||||
@ -170,6 +186,12 @@ src_configure() {
|
||||
sed -i \
|
||||
-e 's|RUBY = ruby|\022|' \
|
||||
ruby/config/Make.rules || die "sed failed"
|
||||
sed -i \
|
||||
-e 's|env ruby|\022|' \
|
||||
ruby/config/s2rb.rb || die "sed failed"
|
||||
sed -i \
|
||||
-e 's|env ruby|\022|' \
|
||||
ruby/scripts/slice2rb || die "sed failed"
|
||||
fi
|
||||
|
||||
MAKE_RULES_CS="GACINSTALL=yes GAC_ROOT=\"${ED}/usr/$(get_libdir)\" GAC_DIR=${EPREFIX}/usr/$(get_libdir)
|
||||
@ -289,39 +311,32 @@ src_install() {
|
||||
fi
|
||||
}
|
||||
|
||||
run_tests() {
|
||||
# Run tests through the script interface since Python test runner
|
||||
# fails to exit with non-zero code for some reason.
|
||||
|
||||
pushd "${1}" >/dev/null || die
|
||||
./allTests.py --script | sh
|
||||
ret=${?}
|
||||
popd >/dev/null || die
|
||||
|
||||
return ${ret}
|
||||
}
|
||||
|
||||
src_test() {
|
||||
export LD_LIBRARY_PATH="${S}/cpp/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
|
||||
emake -C cpp ${MAKE_RULES} test || die "emake cpp test failed"
|
||||
|
||||
run_tests cpp || die "emake cpp test failed"
|
||||
# php tests require the extension loaded and are therefore skipped
|
||||
|
||||
if use python ; then
|
||||
testing() {
|
||||
# tests require that the directory is named 'python'
|
||||
ln -f -s ../"${BUILD_DIR}"/python python/python || die
|
||||
run_tests python || die "emake python-${EPYTHON} test failed"
|
||||
cd "${S}"/python
|
||||
emake -C . ${MAKE_RULES} \
|
||||
install_pythondir="\"${D}/$(python_get_sitedir)\"" \
|
||||
install_libdir="\"${D}/$(python_get_sitedir)\"" \
|
||||
test || die "emake python-${EPYTHON} test failed"
|
||||
cd "${S}"
|
||||
}
|
||||
BUILD_DIR=python python_foreach_impl testing
|
||||
fi
|
||||
|
||||
if use ruby ; then
|
||||
run_tests ruby || die "emake ruby test failed"
|
||||
emake -C ruby ${MAKE_RULES} ${MAKE_RULES_RB} test || die "emake ruby test failed"
|
||||
fi
|
||||
|
||||
if use mono ; then
|
||||
# skip mono tests, bug #498484
|
||||
ewarn "Tests for C# are currently disabled."
|
||||
# run_tests csharp || die "emake csharp test failed"
|
||||
# emake -C csharp ${MAKE_RULES} ${MAKE_RULES_CS} test || die "emake csharp test failed"
|
||||
fi
|
||||
}
|
||||
|
26
dev-libs/Ice/files/Ice-3.6.1-python-test-import.patch
Normal file
26
dev-libs/Ice/files/Ice-3.6.1-python-test-import.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 69e03dfb1c7fa26d2bc8a571bc773994607eb01d Mon Sep 17 00:00:00 2001
|
||||
From: Dwayne Boone <dwayne@zeroc.com>
|
||||
Date: Tue, 15 Sep 2015 16:48:21 -0230
|
||||
Subject: [PATCH] ICE-6792 fix for test failure on linux
|
||||
|
||||
---
|
||||
python/test/Slice/import/run.py | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/python/test/Slice/import/run.py b/python/test/Slice/import/run.py
|
||||
index 02a58b1..2594c96 100755
|
||||
--- a/python/test/Slice/import/run.py
|
||||
+++ b/python/test/Slice/import/run.py
|
||||
@@ -41,8 +41,10 @@
|
||||
else:
|
||||
slice2py = os.path.join(path[0], "python", "config", "s2py.py")
|
||||
|
||||
-subprocess.call([sys.executable, slice2py, "Test1.ice"])
|
||||
-subprocess.call([sys.executable, slice2py, "Test2.ice"])
|
||||
+s2p = TestUtil.spawn(sys.executable + " " + slice2py + " Test1.ice")
|
||||
+s2p.waitTestSuccess()
|
||||
+s2p = TestUtil.spawn(sys.executable + " " + slice2py + " Test2.ice")
|
||||
+s2p.waitTestSuccess()
|
||||
|
||||
sys.stdout.write("starting client... ")
|
||||
sys.stdout.flush()
|
272
dev-libs/Ice/files/Ice-3.6.1-python-test.patch
Normal file
272
dev-libs/Ice/files/Ice-3.6.1-python-test.patch
Normal file
@ -0,0 +1,272 @@
|
||||
From a973118e7026ed1ab89caeaf612bc80873b4fe04 Mon Sep 17 00:00:00 2001
|
||||
From: Dwayne Boone <dwayne@zeroc.com>
|
||||
Date: Tue, 15 Sep 2015 12:59:33 -0230
|
||||
Subject: [PATCH] ICE-6792 python tests no longer require make/nmake
|
||||
|
||||
---
|
||||
python/Makefile | 4 ----
|
||||
python/Makefile.mak | 2 +-
|
||||
python/test/Makefile | 21 ---------------------
|
||||
python/test/Makefile.mak | 19 -------------------
|
||||
python/test/Slice/Makefile | 21 ---------------------
|
||||
python/test/Slice/Makefile.mak | 19 -------------------
|
||||
python/test/Slice/import/Makefile | 32 --------------------------------
|
||||
python/test/Slice/import/Makefile.mak | 29 -----------------------------
|
||||
python/test/Slice/import/run.py | 26 +++++++++++++++++++++++++-
|
||||
9 files changed, 26 insertions(+), 147 deletions(-)
|
||||
delete mode 100644 python/test/Makefile
|
||||
delete mode 100644 python/test/Makefile.mak
|
||||
delete mode 100644 python/test/Slice/Makefile
|
||||
delete mode 100644 python/test/Slice/Makefile.mak
|
||||
delete mode 100644 python/test/Slice/import/Makefile
|
||||
delete mode 100644 python/test/Slice/import/Makefile.mak
|
||||
|
||||
diff --git a/python/Makefile b/python/Makefile
|
||||
index 6ffd68d..5c8a10c 100644
|
||||
--- a/python/Makefile
|
||||
+++ b/python/Makefile
|
||||
@@ -13,10 +13,6 @@ include $(top_srcdir)/config/Make.rules
|
||||
|
||||
SUBDIRS = modules python
|
||||
|
||||
-ifneq ($(MAKECMDGOALS),install)
|
||||
-SUBDIRS := $(SUBDIRS) test
|
||||
-endif
|
||||
-
|
||||
INSTALL_SUBDIRS = $(install_pythondir) $(install_libdir)
|
||||
|
||||
install:: install-common
|
||||
diff --git a/python/Makefile.mak b/python/Makefile.mak
|
||||
index 60d92e5..924cf55 100644
|
||||
--- a/python/Makefile.mak
|
||||
+++ b/python/Makefile.mak
|
||||
@@ -11,7 +11,7 @@ top_srcdir = .
|
||||
|
||||
!include $(top_srcdir)\config\Make.rules.mak
|
||||
|
||||
-SUBDIRS = modules python test
|
||||
+SUBDIRS = modules python
|
||||
|
||||
install:: install-common
|
||||
@if not exist "$(install_pythondir)" \
|
||||
diff --git a/python/test/Makefile b/python/test/Makefile
|
||||
deleted file mode 100644
|
||||
index 23caa0e..0000000
|
||||
--- a/python/test/Makefile
|
||||
+++ /dev/null
|
||||
@@ -1,21 +0,0 @@
|
||||
-# **********************************************************************
|
||||
-#
|
||||
-# Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
|
||||
-#
|
||||
-# This copy of Ice is licensed to you under the terms described in the
|
||||
-# ICE_LICENSE file included in this distribution.
|
||||
-#
|
||||
-# **********************************************************************
|
||||
-
|
||||
-top_srcdir = ..
|
||||
-
|
||||
-include $(top_srcdir)/config/Make.rules
|
||||
-
|
||||
-SUBDIRS = Slice
|
||||
-
|
||||
-$(EVERYTHING)::
|
||||
- @for subdir in $(SUBDIRS); \
|
||||
- do \
|
||||
- echo "making $@ in $$subdir"; \
|
||||
- ( cd $$subdir && $(MAKE) $@ ) || exit 1; \
|
||||
- done
|
||||
diff --git a/python/test/Makefile.mak b/python/test/Makefile.mak
|
||||
deleted file mode 100644
|
||||
index 9830e50..0000000
|
||||
--- a/python/test/Makefile.mak
|
||||
+++ /dev/null
|
||||
@@ -1,19 +0,0 @@
|
||||
-# **********************************************************************
|
||||
-#
|
||||
-# Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
|
||||
-#
|
||||
-# This copy of Ice is licensed to you under the terms described in the
|
||||
-# ICE_LICENSE file included in this distribution.
|
||||
-#
|
||||
-# **********************************************************************
|
||||
-
|
||||
-top_srcdir = ..
|
||||
-
|
||||
-!include $(top_srcdir)\config\Make.rules.mak
|
||||
-
|
||||
-SUBDIRS = Slice
|
||||
-
|
||||
-$(EVERYTHING)::
|
||||
- @for %i in ( $(SUBDIRS) ) do \
|
||||
- @echo "making $@ in %i" && \
|
||||
- cmd /c "cd %i && $(MAKE) -nologo -f Makefile.mak $@" || exit 1
|
||||
diff --git a/python/test/Slice/Makefile b/python/test/Slice/Makefile
|
||||
deleted file mode 100644
|
||||
index 19f1855..0000000
|
||||
--- a/python/test/Slice/Makefile
|
||||
+++ /dev/null
|
||||
@@ -1,21 +0,0 @@
|
||||
-# **********************************************************************
|
||||
-#
|
||||
-# Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
|
||||
-#
|
||||
-# This copy of Ice is licensed to you under the terms described in the
|
||||
-# ICE_LICENSE file included in this distribution.
|
||||
-#
|
||||
-# **********************************************************************
|
||||
-
|
||||
-top_srcdir = ../..
|
||||
-
|
||||
-include $(top_srcdir)/config/Make.rules
|
||||
-
|
||||
-SUBDIRS = import
|
||||
-
|
||||
-$(EVERYTHING)::
|
||||
- @for subdir in $(SUBDIRS); \
|
||||
- do \
|
||||
- echo "making $@ in $$subdir"; \
|
||||
- ( cd $$subdir && $(MAKE) $@ ) || exit 1; \
|
||||
- done
|
||||
diff --git a/python/test/Slice/Makefile.mak b/python/test/Slice/Makefile.mak
|
||||
deleted file mode 100644
|
||||
index 2646ddd..0000000
|
||||
--- a/python/test/Slice/Makefile.mak
|
||||
+++ /dev/null
|
||||
@@ -1,19 +0,0 @@
|
||||
-# **********************************************************************
|
||||
-#
|
||||
-# Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
|
||||
-#
|
||||
-# This copy of Ice is licensed to you under the terms described in the
|
||||
-# ICE_LICENSE file included in this distribution.
|
||||
-#
|
||||
-# **********************************************************************
|
||||
-
|
||||
-top_srcdir = ..\..
|
||||
-
|
||||
-!include $(top_srcdir)\config\Make.rules.mak
|
||||
-
|
||||
-SUBDIRS = import
|
||||
-
|
||||
-$(EVERYTHING)::
|
||||
- @for %i in ( $(SUBDIRS) ) do \
|
||||
- @echo "making $@ in %i" && \
|
||||
- cmd /c "cd %i && $(MAKE) -nologo -f Makefile.mak $@" || exit 1
|
||||
diff --git a/python/test/Slice/import/Makefile b/python/test/Slice/import/Makefile
|
||||
deleted file mode 100644
|
||||
index 5e79abb..0000000
|
||||
--- a/python/test/Slice/import/Makefile
|
||||
+++ /dev/null
|
||||
@@ -1,32 +0,0 @@
|
||||
-# **********************************************************************
|
||||
-#
|
||||
-# Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
|
||||
-#
|
||||
-# This copy of Ice is licensed to you under the terms described in the
|
||||
-# ICE_LICENSE file included in this distribution.
|
||||
-#
|
||||
-# **********************************************************************
|
||||
-
|
||||
-top_srcdir = ../../..
|
||||
-
|
||||
-include $(top_srcdir)/config/Make.rules
|
||||
-
|
||||
-#
|
||||
-# Parallel builds are not supported because multiple executions of slice2py could
|
||||
-# attempt to modify the __init__.py file simultaneously.
|
||||
-#
|
||||
-.NOTPARALLEL:
|
||||
-
|
||||
-SRCS = Test1_ice.py \
|
||||
- Test2_ice.py
|
||||
-
|
||||
-all:: $(SRCS)
|
||||
-
|
||||
-Test1_ice.py: Test1.ice $(SLICEPARSERLIB)
|
||||
- $(SLICE2PY) $(SLICE2PYFLAGS) $<
|
||||
-
|
||||
-Test2_ice.py: Test2.ice $(SLICEPARSERLIB)
|
||||
- $(SLICE2PY) $(SLICE2PYFLAGS) $<
|
||||
-
|
||||
-clean::
|
||||
- rm -rf $(SRCS) Test
|
||||
diff --git a/python/test/Slice/import/Makefile.mak b/python/test/Slice/import/Makefile.mak
|
||||
deleted file mode 100644
|
||||
index e3935c6..0000000
|
||||
--- a/python/test/Slice/import/Makefile.mak
|
||||
+++ /dev/null
|
||||
@@ -1,29 +0,0 @@
|
||||
-# **********************************************************************
|
||||
-#
|
||||
-# Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
|
||||
-#
|
||||
-# This copy of Ice is licensed to you under the terms described in the
|
||||
-# ICE_LICENSE file included in this distribution.
|
||||
-#
|
||||
-# **********************************************************************
|
||||
-
|
||||
-top_srcdir = ..\..\..
|
||||
-
|
||||
-!include $(top_srcdir)\config\Make.rules.mak
|
||||
-
|
||||
-SRCS = Test1_ice.py \
|
||||
- Test2_ice.py
|
||||
-
|
||||
-all:: $(SRCS)
|
||||
-
|
||||
-Test1_ice.py: "Test1.ice" "$(SLICEPARSERLIB)"
|
||||
- "$(SLICE2PY)" $(SLICE2PYFLAGS) "Test1.ice"
|
||||
-
|
||||
-Test2_ice.py: "Test2.ice" "$(SLICEPARSERLIB)"
|
||||
- "$(SLICE2PY)" $(SLICE2PYFLAGS) "Test2.ice"
|
||||
-
|
||||
-clean::
|
||||
- -rmdir /s /q Test
|
||||
- del /q $(SRCS)
|
||||
-
|
||||
-include .depend.mak
|
||||
diff --git a/python/test/Slice/import/run.py b/python/test/Slice/import/run.py
|
||||
index 2054bdd..02a58b1 100755
|
||||
--- a/python/test/Slice/import/run.py
|
||||
+++ b/python/test/Slice/import/run.py
|
||||
@@ -8,7 +8,7 @@
|
||||
#
|
||||
# **********************************************************************
|
||||
|
||||
-import os, sys
|
||||
+import os, sys, shutil, subprocess
|
||||
|
||||
path = [ ".", "..", "../..", "../../..", "../../../.." ]
|
||||
head = os.path.dirname(sys.argv[0])
|
||||
@@ -20,6 +20,30 @@
|
||||
sys.path.append(os.path.join(path[0], "scripts"))
|
||||
import TestUtil
|
||||
|
||||
+testdir = os.path.dirname(os.path.abspath(__file__))
|
||||
+
|
||||
+if os.path.exists(os.path.join(testdir, "Test1_ice.py")):
|
||||
+ os.remove(os.path.join(testdir, "Test1_ice.py"))
|
||||
+if os.path.exists(os.path.join(testdir, "Test2_ice.py")):
|
||||
+ os.remove(os.path.join(testdir, "Test2_ice.py"))
|
||||
+if os.path.exists(os.path.join(testdir, "Test")):
|
||||
+ shutil.rmtree(os.path.join(testdir, "Test"))
|
||||
+
|
||||
+if os.environ.get("USE_BIN_DIST", "no") == "yes":
|
||||
+ if TestUtil.isDarwin():
|
||||
+ slice2py = "/usr/local/bin/slice2py"
|
||||
+ elif TestUtil.isWin32():
|
||||
+ pythonHome = os.path.dirname(sys.executable)
|
||||
+ slice2py = os.path.join(pythonHome, "Scripts", "slice2py.exe")
|
||||
+ else:
|
||||
+ import slice2py
|
||||
+ slice2py = os.path.normpath(os.path.join(slice2py.__file__, '..', '..', '..', '..', 'bin', 'slice2py'))
|
||||
+else:
|
||||
+ slice2py = os.path.join(path[0], "python", "config", "s2py.py")
|
||||
+
|
||||
+subprocess.call([sys.executable, slice2py, "Test1.ice"])
|
||||
+subprocess.call([sys.executable, slice2py, "Test2.ice"])
|
||||
+
|
||||
sys.stdout.write("starting client... ")
|
||||
sys.stdout.flush()
|
||||
clientProc = TestUtil.startClient("Client.py", "--Ice.Default.Host=127.0.0.1", startReader = False)
|
Loading…
Reference in New Issue
Block a user