Check java version in scripts running performance benchmarks.
Scripts throw exception if java version is not 1.8.*-internal
Bug:
Change-Id: I3c8487594ba15ef6b42433ba9bec2d22d5fa4a45
diff --git a/tools/run_on_app.py b/tools/run_on_app.py
index a207ed8..1dabbd3 100755
--- a/tools/run_on_app.py
+++ b/tools/run_on_app.py
@@ -100,6 +100,7 @@
return os.path.abspath(f.name)
def main(argv):
+ utils.check_java_version()
app_provided_pg_conf = False;
(options, args) = ParseOptions(argv)
outdir = options.out
diff --git a/tools/run_proguard_dx_on_app.py b/tools/run_proguard_dx_on_app.py
index 8578d1e..92a75ba 100755
--- a/tools/run_proguard_dx_on_app.py
+++ b/tools/run_proguard_dx_on_app.py
@@ -56,6 +56,7 @@
return parser.parse_args(argv)
def Main(argv):
+ utils.check_java_version()
options = parse_arguments(argv)
outdir = options.out
diff --git a/tools/test_framework.py b/tools/test_framework.py
index 04a12d3..b328375 100755
--- a/tools/test_framework.py
+++ b/tools/test_framework.py
@@ -59,6 +59,7 @@
return parser.parse_args()
def Main():
+ utils.check_java_version()
args = parse_arguments()
with utils.TempDir() as temp_dir:
diff --git a/tools/utils.py b/tools/utils.py
index dfc35d7..dab1dd1 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -170,3 +170,18 @@
for segment_name, size in getDexSegmentSizes(dex_files).items():
print('{}-{}(CodeSize): {}'
.format(prefix, segment_name, size))
+
+# ensure that java version is 1.8.*-internal,
+# as opposed to e.g. 1.7* or 1.8.*-google-v7
+def check_java_version():
+ cmd= ['java', '-version']
+ output = subprocess.check_output(cmd, stderr = subprocess.STDOUT)
+ m = re.search('openjdk version "([^"]*)"', output)
+ if m is None:
+ raise Exception("Can't check java version: no version string in output"
+ " of 'java -version': '{}'".format(output))
+ version = m.groups(0)[0]
+ m = re.search('1[.]8[.].*-internal', version)
+ if m is None:
+ raise Exception("Incorrect java version, expected: '1.8.*-internal',"
+ " actual: {}".format(version))