summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMats Wichmann <mats@linux.com>2019-04-17 13:46:58 (GMT)
committerMats Wichmann <mats@linux.com>2019-04-17 13:46:58 (GMT)
commit5728acaff9b6bc9466bc6f1e5ae8280964443ce1 (patch)
treed94bd0c87a3a10bb45863db7509ae5c5a4fab329
parentf9385b71f66ae48a353ccdea5b16f416f5b803a8 (diff)
downloadSCons-5728acaff9b6bc9466bc6f1e5ae8280964443ce1.zip
SCons-5728acaff9b6bc9466bc6f1e5ae8280964443ce1.tar.gz
SCons-5728acaff9b6bc9466bc6f1e5ae8280964443ce1.tar.bz2
Move the jdk-version-glob test to unit tests
Signed-off-by: Mats Wichmann <mats@linux.com>
-rw-r--r--src/engine/SCons/Tool/JavaCommonTests.py50
-rw-r--r--test/Java/Java-version.py94
2 files changed, 50 insertions, 94 deletions
diff --git a/src/engine/SCons/Tool/JavaCommonTests.py b/src/engine/SCons/Tool/JavaCommonTests.py
index 10be671..fe04ce9 100644
--- a/src/engine/SCons/Tool/JavaCommonTests.py
+++ b/src/engine/SCons/Tool/JavaCommonTests.py
@@ -30,6 +30,7 @@ import unittest
import SCons.Scanner.IDL
import SCons.Tool.JavaCommon
+import TestSCons
# Adding trace=trace to any of the parse_jave() calls below will cause
# the parser to spit out trace messages of the tokens it sees and the
@@ -608,6 +609,55 @@ public class AnonDemo {
assert expect == classes, (expect, classes)
+ def test_jdk_globs(self):
+ test = TestSCons.TestSCons(workdir='')
+
+ if sys.platform == 'win32':
+ test.subdir(['Program Files'],
+ ['Program Files', 'Java'],
+ ['Program Files', 'Java', 'jdk1.8.0_201'],
+ ['Program Files', 'Java', 'jdk1.8.0_201', 'bin'],
+ ['Program Files', 'Java', 'jdk-11.0.2'],
+ ['Program Files', 'Java', 'jdk-11.0.2', 'bin'])
+
+ test.write(['Program Files', 'Java', 'jdk1.8.0_201', 'bin', 'javac.exe'], "echo Java 1.8")
+ test.write(['Program Files', 'Java', 'jdk-11.0.2', 'bin', 'javac.exe'], "echo Java 11.0")
+ else:
+ test.subdir(['jvm'],
+ ['jvm', 'java'],
+ ['jvm', 'java', 'bin'],
+ ['jvm', 'java-11-openjdk-11.0.2'],
+ ['jvm', 'java-11-openjdk-11.0.2', 'bin'],
+ ['jvm', 'java-1.8-openjdk-1.8.0'],
+ ['jvm', 'java-1.8-openjdk-1.8.0', 'bin'])
+
+ test.write(['jvm', 'java', 'bin', 'javac'], "echo Java 1.8")
+ test.write(['jvm', 'java-11-openjdk-11.0.2', 'bin', 'javac'], "echo Java 11.0")
+ test.write(['jvm', 'java-1.8-openjdk-1.8.0', 'bin', 'javac'], "echo Java 1.8")
+
+ for version in (None, "1.8", "11.0"):
+ if version:
+ if sys.platform == 'win32':
+ patterns = [
+ 'Program Files*/Java/jdk*%s*/bin' % version,
+ ]
+ else:
+ patterns = [
+ 'jvm/*-%s*/bin' % version,
+ ]
+ else:
+ if sys.platform == 'win32':
+ patterns = [
+ 'Program Files*/Java/jdk*/bin',
+ ]
+ else:
+ patterns = [
+ 'jvm/*/bin',
+ ]
+ java_path = test.paths(patterns)
+ assert java_path, "no java found by pattern %s" % patterns[0]
+
+
if __name__ == "__main__":
unittest.main()
diff --git a/test/Java/Java-version.py b/test/Java/Java-version.py
deleted file mode 100644
index 3c13875..0000000
--- a/test/Java/Java-version.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/env python
-#
-# __COPYRIGHT__
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-
-"""
-Test globbing to find a JDK
-"""
-
-import os
-import sys
-
-import TestSCons
-
-_python_ = TestSCons._python_
-
-test = TestSCons.TestSCons()
-
-if sys.platform == 'win32':
- test.subdir(['Program Files'])
- test.subdir(['Program Files', 'Java'])
- test.subdir(['Program Files', 'Java', 'jdk1.8.0_201'])
- test.subdir(['Program Files', 'Java', 'jdk1.8.0_201', 'bin'])
- test.subdir(['Program Files', 'Java', 'jdk-11.0.2'])
- test.subdir(['Program Files', 'Java', 'jdk-11.0.2', 'bin'])
-
- test.write(['Program Files', 'Java', 'jdk1.8.0_201', 'bin', 'javac.exe'], "echo Java 1.8")
- test.write(['Program Files', 'Java', 'jdk-11.0.2', 'bin', 'javac.exe'], "echo Java 11.0")
-else:
- test.subdir(['jvm'])
- test.subdir(['jvm', 'java'])
- test.subdir(['jvm', 'java', 'bin'])
- test.subdir(['jvm', 'java-11-openjdk-11.0.2'])
- test.subdir(['jvm', 'java-11-openjdk-11.0.2', 'bin'])
- test.subdir(['jvm', 'java-1.8-openjdk-1.8.0'])
- test.subdir(['jvm', 'java-1.8-openjdk-1.8.0', 'bin'])
-
- test.write(['jvm', 'java', 'bin', 'javac'], "echo Java 1.8")
- test.write(['jvm', 'java-11-openjdk-11.0.2', 'bin', 'javac'], "echo Java 11.0")
- test.write(['jvm', 'java-1.8-openjdk-1.8.0', 'bin', 'javac'], "echo Java 1.8")
-
-for version in (None, "1.8", "11.0"):
- if version:
- if sys.platform == 'win32':
- patterns = [
- 'Program Files*/Java/jdk*%s*/bin' % version,
- ]
- else:
- patterns = [
- 'jvm/*-%s*/bin' % version,
- ]
- else:
- if sys.platform == 'win32':
- patterns = [
- 'Program Files*/Java/jdk*/bin',
- ]
- else:
- patterns = [
- 'jvm/*/bin',
- ]
- java_path = test.paths(patterns)
- #print(java_path)
- if not java_path:
- msg = "glob pattern {%s} found no JDK matches" % patterns[0]
- test.fail_test(message=msg)
-
-test.pass_test()
-
-# Local Variables:
-# tab-width:4
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=4 shiftwidth=4: