From 08698ee1d6f29b2c999416f18a074d5193cdacd5 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Fri, 16 Oct 2015 14:26:34 +0100 Subject: [SPARK-11094] Strip extra strings from Java version in test runner Removes any extra strings from the Java version, fixing subsequent integer parsing. This is required since some OpenJDK versions (specifically in Debian testing), append an extra "-internal" string to the version field. Author: Jakob Odersky Closes #9111 from jodersky/fixtestrunner. --- dev/run-tests.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'dev/run-tests.py') diff --git a/dev/run-tests.py b/dev/run-tests.py index 1a81658518..d4d6880491 100755 --- a/dev/run-tests.py +++ b/dev/run-tests.py @@ -176,17 +176,14 @@ def determine_java_version(java_exe): # find raw version string, eg 'java version "1.8.0_25"' raw_version_str = next(x for x in raw_output_lines if " version " in x) - version_str = raw_version_str.split()[-1].strip('"') # eg '1.8.0_25' - version, update = version_str.split('_') # eg ['1.8.0', '25'] + match = re.search('(\d+)\.(\d+)\.(\d+)_(\d+)', raw_version_str) - # map over the values and convert them to integers - version_info = [int(x) for x in version.split('.') + [update]] - - return JavaVersion(major=version_info[0], - minor=version_info[1], - patch=version_info[2], - update=version_info[3]) + major = int(match.group(1)) + minor = int(match.group(2)) + patch = int(match.group(3)) + update = int(match.group(4)) + return JavaVersion(major, minor, patch, update) # ------------------------------------------------------------------------------------------------- # Functions for running the other build and test scripts -- cgit v1.2.3