summaryrefslogtreecommitdiff
path: root/scripts/TestUtil.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/TestUtil.py')
-rwxr-xr-xscripts/TestUtil.py80
1 files changed, 61 insertions, 19 deletions
diff --git a/scripts/TestUtil.py b/scripts/TestUtil.py
index 83b86523037..5c7ab53cbbc 100755
--- a/scripts/TestUtil.py
+++ b/scripts/TestUtil.py
@@ -57,7 +57,6 @@ linuxDistribution = None
for path in ["/etc/redhat-release", "/etc/issue"]:
if not os.path.isfile(path):
continue
-
f = open(path, "r")
issue = f.read()
f.close()
@@ -132,6 +131,12 @@ def isDebian():
def isSles():
return isLinux() and linuxDistribution and linuxDistribution == "SUSE LINUX"
+def isFreezeTest():
+ return toplevel.find(os.path.join("freeze","ice")) != -1
+
+def getFreezeDir(lang):
+ return os.path.join(toplevel, "..", lang)
+
def getCppCompiler():
compiler = ""
if os.environ.get("CPP_COMPILER", "") != "":
@@ -659,6 +664,12 @@ def getIceDir(subdir = None, testdir = None):
global iceHome
if iceHome:
return iceHome
+ elif isFreezeTest():
+ icedir = os.environ["ICE_HOME"]
+ if subdir:
+ return os.path.join(icedir, subdir)
+ else:
+ return icedir
elif subdir:
return os.path.join(toplevel, subdir)
else:
@@ -1797,10 +1808,14 @@ def getCppLibDir(lang = None):
def getJavaLibraryPath():
if isWin32():
- if iceHome:
- return "-Djava.library.path=\"%s\" " % os.path.join(iceHome, "bin\\x64" if x64 else "bin")
+ if isFreezeTest():
+ return ("-Djava.library.path=\"%s\" " % os.path.join(getFreezeDir("cpp"), "third-party-packages",
+ "berkeley.db.java7", "build", "native", "bin", "x64" if x64 else "Win32"))
else:
- return ("-Djava.library.path=\"%s\" " % os.path.join(getIceDir("cpp"), "third-party-packages",
+ if iceHome:
+ return "-Djava.library.path=\"%s\" " % os.path.join(iceHome, "bin\\x64" if x64 else "bin")
+ else:
+ return ("-Djava.library.path=\"%s\" " % os.path.join(getIceDir("cpp"), "third-party-packages",
"berkeley.db.java7", "build", "native", "bin", "x64" if x64 else "Win32"))
elif isDarwin():
if os.path.exists('/usr/local/opt/ice/libexec/lib'):
@@ -1865,6 +1880,18 @@ def getBuildMode(d):
return "release"
l = p.stdout.readline()
+def getPlatformToolSet():
+ platformtoolset = ""
+ if isVC100():
+ platformtoolset = "v100"
+ elif isVC110():
+ platformtoolset = "v110"
+ elif isVC120():
+ platformtoolset = "v120"
+ elif isVC140():
+ platformtoolset = "v140"
+ return platformtoolset
+
def getTestEnv(lang, testdir):
global compact
env = os.environ.copy()
@@ -1887,8 +1914,8 @@ def getTestEnv(lang, testdir):
if lang == "cpp":
addLdPath(os.path.join(testdir), env)
elif lang == "java":
- if toplevel.find(os.path.join("freeze","ice")) != -1:
- addClasspath(os.path.join(toplevel, "..", "java", "lib", "test.jar"), env)
+ if isFreezeTest():
+ addClasspath(os.path.join(getFreezeDir("java"), "lib", "test.jar"), env)
else:
addClasspath(os.path.join(toplevel, "java", "lib", "test.jar"), env)
elif lang == "js":
@@ -1904,27 +1931,42 @@ def getTestEnv(lang, testdir):
#
if lang in ["cpp", "java", "csharp", "python", "ruby"]:
if isWin32():
+ mode = getBuildMode(os.path.join(getIceDir("cpp"), "bin"))
+ configuration = "Debug" if mode == "debug" else "Release"
+ platform = "x64" if x64 else "Win32"
+
+ if isFreezeTest():
+ addPathToEnv("PATH", os.path.join(getFreezeDir("cpp"), "bin"), env)
+
+ pkgdir = os.path.join(getFreezeDir("cpp"), "third-party-packages")
+ pkgsubdir = os.path.join("build", "native", "bin", platform)
+ platformtoolset = getPlatformToolSet()
+
+ #
+ # For Debug builds we need to add Release binaries to path to be able to use db_xxx tools and
+ # bzip2 to be able to use protocol compression with .NET
+ #
+ if configuration == "Debug":
+ addPathToEnv("PATH", os.path.join(pkgdir, "berkeley.db.{0}".format(platformtoolset), pkgsubdir,
+ "Release"), env)
+
+ addPathToEnv("PATH", os.path.join(pkgdir, "berkeley.db.{0}".format(platformtoolset), pkgsubdir,
+ configuration), env)
+
+ if lang == "java":
+ addPathToEnv("PATH", os.path.join(pkgdir, "berkeley.db.java7", pkgsubdir), env)
+ addClasspath(os.path.join(pkgdir, "berkeley.db.java7", "build", "native", "lib", "db.jar"), env)
+
if iceHome:
addClasspath(os.path.join(getIceDir("java", testdir), "lib", "db.jar"), env)
else:
- mode = getBuildMode(os.path.join(getIceDir("cpp"), "bin"))
- configuration = "Debug" if mode == "debug" else "Release"
- platform = "x64" if x64 else "Win32"
pkgdir = os.path.join(getIceDir("cpp"), "third-party-packages")
pkgsubdir = os.path.join("build", "native", "bin", platform)
if isMINGW():
addPathToEnv("PATH", os.path.join(pkgdir, "bzip2.mingw4.7.2", pkgsubdir), env)
else:
- platformtoolset = ""
- if isVC100():
- platformtoolset = "v100"
- elif isVC110():
- platformtoolset = "v110"
- elif isVC120():
- platformtoolset = "v120"
- elif isVC140():
- platformtoolset = "v140"
+ platformtoolset = getPlatformToolSet()
#
# For Debug builds we need to add Release binaries to path to be able to use db_xxx tools and
@@ -2251,7 +2293,7 @@ def runTests(start, expanded, num = 0, script = False):
# Deal with Java's different directory structure
if i.find(os.path.join("java","test")) != -1:
dir = os.path.join(toplevel, "java", "test", "src", "main", i)
- elif toplevel.find(os.path.join("freeze","ice")) != -1:
+ elif isFreezeTest():
dir = os.path.join(toplevel, "..", i)
else:
dir = os.path.join(toplevel, i)