8183400: runtime/6981737/Test6981737.java fails with java.lang.RuntimeException: FAIL: Wrong value for java.version property, "9", expected to be of form: "[0-9]+[\\.[0-9]+]*\-.*"
Summary: Use Runtime Version API's instead of a regular expression and split() API.
Reviewed-by: psandoz, mseledtsov, gthornbr
--- a/hotspot/test/runtime/6981737/Test6981737.java Fri Jul 07 10:37:52 2017 +0200
+++ b/hotspot/test/runtime/6981737/Test6981737.java Fri Jul 07 11:26:08 2017 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,23 +32,15 @@
public class Test6981737 {
/**
- * Check the 'vendor' properties java.vm.specification.version
- * property. Before jdk7, they should be "Sun Micro..." and "1.0".
- * In jdk7 onwards they should be "Oracle..." and "1.<major_version>"
+ * Check the 'vendor' properties and java.vm.specification.version property.
+ * In jdk9 onwards they should be "Oracle..." and "<major_version>"
*/
public static void main(String[] args) throws Exception {
- String version = verifyProperty("java.version", "[0-9]+[\\\\.[0-9]+]*\\-.*");
- String version_tokens[] = version.split("-|\\.");
- String major_version_spec = version_tokens[0];
- int major_version = new Integer(major_version_spec).intValue();
+ String vendor_re = "Oracle Corporation";
+ int major_version = Runtime.version().major();
+ String vm_spec_version_re = Integer.toString(major_version);
- String vendor_re = "Oracle Corporation";
- String vm_spec_version_re = major_version_spec;
- if (major_version < 7) {
- vendor_re = "Sun Microsystems Inc\\.";
- vm_spec_version_re = "1\\.0";
- }
verifyProperty("java.vendor", vendor_re);
verifyProperty("java.vm.vendor", vendor_re);
verifyProperty("java.vm.specification.vendor", vendor_re);