# HG changeset patch # User jwilhelm # Date 1419266009 -3600 # Node ID 0845d2f43ff4927504d82066a490a3027382e3fb # Parent 3eb2963297fb803a951eecbb02eb66a2149f1416 8067947: Regression test for JDK-6522873 Summary: Added a regression test that will fail if we allow extra characters after flag names Reviewed-by: ctornqvi, tschatzl diff -r 3eb2963297fb -r 0845d2f43ff4 hotspot/test/runtime/CommandLine/TestNullTerminatedFlags.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/test/runtime/CommandLine/TestNullTerminatedFlags.java Mon Dec 22 17:33:29 2014 +0100 @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2014, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import com.oracle.java.testlibrary.*; + +/* + * @test TestNullTerminatedFlags + * @bug 6522873 + * @summary Test that the VM don't allow random junk characters at the end of valid command line flags. + * @library /testlibrary + * @run driver TestNullTerminatedFlags + */ +public class TestNullTerminatedFlags { + public static String[] options = { + "-Xnoclassgc", + "-Xconcgc", + "-Xnoconcgc", + "-Xbatch", + "-green", + "-native", + "-Xsqnopause", + "-Xrs", + "-Xusealtsigs", + "-Xoptimize", + "-Xprof", + "-Xconcurrentio", + "-Xinternalversion", + "-Xprintflags", + "-Xint", + "-Xmixed", + "-Xcomp", + "-Xshare:dump", + "-Xshare:on", + "-Xshare:auto", + "-Xshare:off", + "-Xdebug", + "-Xnoagent", + "-Xboundthreads" + }; + + public static void main(String args[]) throws Exception{ + for (String option : options) { + String testOption = option + "junk"; + ProcessBuilder pb = + ProcessTools.createJavaProcessBuilder(testOption, "-version"); + new OutputAnalyzer(pb.start()) + .shouldContain("Unrecognized option: " + testOption) + .shouldHaveExitValue(1); + } + } +} +