Changeset: 4fab8ab054bd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4fab8ab054bd
Modified Files:
testing/Mtest.py.in
Branch: Aug2018
Log Message:
Get embedded Python testing working on Windows.
diffs (60 lines):
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -32,6 +32,14 @@ import struct
import signal
import fnmatch
import glob
+try:
+ import winreg # Python 3 on Windows
+except ImportError:
+ try:
+ import _winreg as winreg # Python 2 on Windows
+ except ImportError:
+ winreg = None # not on Windows
+
procdebug = False
verbose = False
@@ -2985,11 +2993,32 @@ def DoIt(env, SERVER, CALL, TST, EXT, PR
if (not all_tests or (COND != None and "HAVE_LIBR" in COND)) and
CONDITIONALS['HAVE_LIBR'] and CONDITIONALS['NOT_WIN32']:
Srvr.extend(['--set', 'embedded_r=yes'])
+ savepath = None
if (COND != None and "HAVE_LIBPY3" in COND) and
CONDITIONALS['HAVE_LIBPY3']:
# enable Python 3 integration in server
+ if winreg is not None:
+ try:
+ with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
r'SOFTWARE\Python\PythonCore\3.7\InstallPath') as key:
+ instpath = winreg.QueryValue(key, None)
+ os.environ['PYTHONHOME'] = instpath
+ os.environ['PYTHONPATH'] = instpath + 'Lib'
+ savepath = os.environ['PATH']
+ os.environ['PATH'] = instpath.rstrip('\\') +
os.pathsep + savepath
+ except WindowsError:
+ pass
Srvr.extend(['--set', 'embedded_py=3'])
elif (not all_tests or (COND != None and "HAVE_LIBPY" in COND))
and CONDITIONALS['HAVE_LIBPY']:
# enable Python integration in server
+ if winreg is not None:
+ try:
+ with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
r'SOFTWARE\Python\PythonCore\2.7\InstallPath') as key:
+ instpath = winreg.QueryValue(key, None)
+ os.environ['PYTHONHOME'] = instpath
+ os.environ['PYTHONPATH'] = instpath + 'Lib'
+ savepath = os.environ['PATH']
+ os.environ['PATH'] = instpath.rstrip('\\') +
os.pathsep + savepath
+ except WindowsError:
+ pass
Srvr.extend(['--set', 'embedded_py=true'])
# enable C integration in server
@@ -2997,6 +3026,8 @@ def DoIt(env, SERVER, CALL, TST, EXT, PR
pSrvr, pSrvrTimer = LaunchIt(Srvr,
'\nio.printf("\\nReady.\\n");\n', SrvrOut, SrvrErr, TIMEOUT)
+ if savepath is not None:
+ os.environ['PATH'] = savepath
ln="dummy"
while 0 < len(ln) and not ln.startswith('Ready.'):
ln=pSrvr.stdout.readline()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list