diff -r a7ba42fa1df6 -r 5b15a65d4373 hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java --- a/hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java Wed Apr 15 17:34:28 2015 -0700 +++ b/hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java Thu Apr 16 11:00:10 2015 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2015 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 @@ -23,24 +23,30 @@ /* * @test - * @bug 8060449 + * @bug 8060449 8073989 * @summary Newly obsolete command line options should still give useful error messages when used improperly. * @library /testlibrary - * @modules java.base/sun.misc - * java.management */ import com.oracle.java.testlibrary.*; public class ObsoleteFlagErrorMessage { public static void main(String[] args) throws Exception { + + // Case 1: Newly obsolete flags with extra junk appended should not be treated as newly obsolete (8060449) ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( - "-XX:UseBoundThreadsPlusJunk", "-version"); + "-XX:UseOldInliningPlusJunk", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); - output.shouldContain("Unrecognized VM option 'UseBoundThreadsPlusJunk'"); // Must identify bad option. - output.shouldContain("UseBoundThreads"); // Should apply fuzzy matching to find correct option. - output.shouldContain("support").shouldContain("removed"); // Should warn user that the option they are trying to use is no longer supported. + output.shouldContain("Unrecognized VM option 'UseOldInliningPlusJunk'"); // Must identify bad option. output.shouldHaveExitValue(1); + + // Case 2: Newly obsolete integer-valued flags should be recognized as newly obsolete (8073989) + ProcessBuilder pb2 = ProcessTools.createJavaProcessBuilder( + "-XX:NmethodSweepFraction=10", "-version"); + + OutputAnalyzer output2 = new OutputAnalyzer(pb2.start()); + output2.shouldContain("ignoring option").shouldContain("support was removed"); + output2.shouldContain("NmethodSweepFraction"); } }