2013-06-13 19:57:56 +00:00
/ *
2023-06-09 13:01:02 +00:00
* Copyright ( c ) 2013 , 2023 , Oracle and / or its affiliates . All rights reserved .
2013-06-13 19:57:56 +00:00
* 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 .
* /
/ *
* @test
* @bug 7167142
* @summary Warn if unused . hotspot_compiler file is present
2023-08-18 17:53:07 +00:00
* @requires vm . flagless
2016-08-19 14:06:30 +00:00
* @library / test / lib
2016-04-09 22:03:39 +00:00
* @modules java . base / jdk . internal . misc
2015-03-26 15:36:56 +00:00
* java . management
2020-04-30 02:51:45 +00:00
* @run driver CompilerConfigFileWarning
2013-06-13 19:57:56 +00:00
* /
import java.io.PrintWriter ;
2016-08-19 14:06:30 +00:00
import jdk.test.lib.process.ProcessTools ;
import jdk.test.lib.process.OutputAnalyzer ;
import jdk.test.lib.Platform ;
2013-06-13 19:57:56 +00:00
public class CompilerConfigFileWarning {
public static void main ( String [ ] args ) throws Exception {
2014-05-14 16:18:58 +00:00
ProcessBuilder pb ;
OutputAnalyzer output ;
PrintWriter pw ;
2013-06-13 19:57:56 +00:00
2014-05-14 16:18:58 +00:00
pw = new PrintWriter ( " hs_comp.txt " ) ;
pw . println ( " aaa, aaa " ) ;
2013-06-13 19:57:56 +00:00
pw . close ( ) ;
2023-10-27 08:47:26 +00:00
pb = ProcessTools . createLimitedTestJavaProcessBuilder ( " -XX:CompileCommandFile=hs_comp.txt " , " -version " ) ;
2014-05-14 16:18:58 +00:00
output = new OutputAnalyzer ( pb . start ( ) ) ;
2023-06-09 13:01:02 +00:00
output . shouldHaveExitValue ( 1 ) ;
2020-11-25 14:20:35 +00:00
output . shouldContain ( " An error occurred during parsing " ) ;
output . shouldContain ( " Unrecognized option 'aaa' " ) ;
2015-09-18 08:11:11 +00:00
output . shouldContain ( " aaa, aaa " ) ;
2014-05-14 16:18:58 +00:00
// Skip on debug builds since we'll always read the file there
if ( ! Platform . isDebugBuild ( ) ) {
pw = new PrintWriter ( " .hotspot_compiler " ) ;
pw . println ( " aa " ) ;
pw . close ( ) ;
2023-10-27 08:47:26 +00:00
pb = ProcessTools . createLimitedTestJavaProcessBuilder ( " -version " ) ;
2014-05-14 16:18:58 +00:00
output = new OutputAnalyzer ( pb . start ( ) ) ;
2021-08-23 18:03:13 +00:00
output . shouldHaveExitValue ( 0 ) ;
2014-05-14 16:18:58 +00:00
output . shouldContain ( " warning: .hotspot_compiler file is present but has been ignored. Run with -XX:CompileCommandFile=.hotspot_compiler to load the file. " ) ;
}
2013-06-13 19:57:56 +00:00
}
}