summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2017-04-01 22:46:06 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2017-04-01 22:46:06 (GMT)
commita4c7581e1f85b76b7d9b6011aad390c97bb6d29d (patch)
tree715d7d37b122a10323c3a228cb95ec3e108b3e22
parent2fd850a8e13529b888cdd7532547bde9b4a8527e (diff)
downloadSCons-a4c7581e1f85b76b7d9b6011aad390c97bb6d29d.zip
SCons-a4c7581e1f85b76b7d9b6011aad390c97bb6d29d.tar.gz
SCons-a4c7581e1f85b76b7d9b6011aad390c97bb6d29d.tar.bz2
Fix locating java home on mac. fix mode='r' for py2/3
-rw-r--r--QMTest/TestSCons.py35
-rw-r--r--test/Repository/Java.py2
2 files changed, 28 insertions, 9 deletions
diff --git a/QMTest/TestSCons.py b/QMTest/TestSCons.py
index d33eae7..6b087c0 100644
--- a/QMTest/TestSCons.py
+++ b/QMTest/TestSCons.py
@@ -22,6 +22,7 @@ import re
import shutil
import sys
import time
+import subprocess
from TestCommon import *
from TestCommon import __all__
@@ -729,16 +730,34 @@ class TestSCons(TestCommon):
result.append(os.path.join(d,'linux'))
return result
-
- def java_where_java_home(self,version=None):
+ def java_where_java_home(self, version=None):
if sys.platform[:6] == 'darwin':
+ # osx 10.11, 10.12
+ home_tool = '/usr/libexec/java_home'
+ java_home = False
+ if os.path.exists(home_tool):
+ java_home = subprocess.check_output(home_tool).strip()
+ java_home = java_home.decode()
+
if version is None:
- home = '/System/Library/Frameworks/JavaVM.framework/Home'
+ if java_home:
+ return java_home
+ else:
+ homes = ['/System/Library/Frameworks/JavaVM.framework/Home',
+ # osx 10.10
+ '/System/Library/Frameworks/JavaVM.framework/Versions/Current/Home']
+ for home in homes:
+ if os.path.exists(home):
+ return home
+
else:
- home = '/System/Library/Frameworks/JavaVM.framework/Versions/%s/Home' % version
- if not os.path.exists(home):
- # This works on OSX 10.10
- home = '/System/Library/Frameworks/JavaVM.framework/Versions/Current/'
+ if java_home.find('jdk%s'%version) != -1:
+ return java_home
+ else:
+ home = '/System/Library/Frameworks/JavaVM.framework/Versions/%s/Home' % version
+ if not os.path.exists(home):
+ # This works on OSX 10.10
+ home = '/System/Library/Frameworks/JavaVM.framework/Versions/Current/'
else:
jar = self.java_where_jar(version)
home = os.path.normpath('%s/..'%jar)
@@ -1028,7 +1047,7 @@ SConscript( sconscript )
nols = nols + "|"
nols = nols + ")"
lastEnd = 0
- logfile = self.read(self.workpath(logfile))
+ logfile = self.read(self.workpath(logfile), mode='r')
# Some debug code to keep around..
# sys.stderr.write("LOGFILE[%s]:%s"%(type(logfile),logfile))
diff --git a/test/Repository/Java.py b/test/Repository/Java.py
index dc6f202..fce85cd 100644
--- a/test/Repository/Java.py
+++ b/test/Repository/Java.py
@@ -43,8 +43,8 @@ java = test.java_where_java()
os.environ['JAVA_HOME'] = test.java_where_java_home(java_version)
###############################################################################
-
#
+
test.subdir('rep1', ['rep1', 'src'],
'work1',
'work2')