⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diagnostics.sh

📁 是一款用JAVA 编写的编译器 具有很强的编译功能
💻 SH
字号:
#!/bin/sh## Copyright 2003-2006 Sun Microsystems, Inc.  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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,# CA 95054 USA or visit www.sun.com if you need additional information or# have any questions.### @test# @bug 4884487 6295519 6236704 6429613# @summary Test for proper diagnostics during path manipulation operations# @author Martin Buchholz## @run shell/timeout=180 Diagnostics.sh# To run this test manually, simply do ./Diagnostics.sh. ${TESTSRC-.}/Util.shset -uBCP=`DefaultBootClassPath`DiagnosticsInEnglishPleaseNo() { NO="no"; "$@"; NO=""; }	# No means NO!Warning() {    HorizontalRule    echo "$@"    output=`"$@" 2>&1`; rc="$?"    test -n "$output" && echo "$output"    test $rc -eq 0 || Fail "Command \"$*\" failed with exitValue $rc";    case "$output" in *warning:*) gotwarning="yes";; *) gotwarning="no";; esac    if test "$gotwarning" = "yes" -a "$NO" = "no"; then	Fail "Command \"$*\" printed an unexpected warning"    elif test "$gotwarning" = "no" -a "$NO" != "no"; then	Fail "Command \"$*\" did not generate the expected warning"    fi}Error() {    HorizontalRule    echo "$@"    output=`"$@" 2>&1`; rc="$?"    test -n "$output" && echo "$output"    case "$output" in *error:*) goterror="yes";; *) goterror="no";; esac    if test "$NO" = "no"; then	test "$rc" -ne 0 && \	    Fail "Command \"$*\" failed with return code $rc"	test "$goterror" = "yes" && \	    Fail "Command \"$*\" did not generate any error message"    else	test "$rc" -eq 0 && \	    Fail "Command \"$*\" was supposed to Die with fatal error";	test "$goterror" = "no" && \	    Fail "Command \"$*\" printed an unexpected error message"    fi}Cleanup() {    Sys rm -rf Main.java Main.class     Sys rm -rf classes classes.foo classes.jar classes.war classes.zip    Sys rm -rf MANIFEST.MF classesRef.jar classesRefRef.jar jars}Cleanupecho "public class Main{public static void main(String[]a){}}" > Main.java#----------------------------------------------------------------# No warnings unless -Xlint:path is used#----------------------------------------------------------------No Warning "$javac" ${TESTTOOLVMOPTS} Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -cp ".${PS}classes" Main.java#----------------------------------------------------------------# Warn for missing elts in user-specified paths#----------------------------------------------------------------Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path -cp ".${PS}classes"         Main.javaWarning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-Xbootclasspath/p:classes" Main.javaWarning "$javac" ${TESTTOOLVMOPTS} -Xlint      "-Xbootclasspath/a:classes" Main.javaWarning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-endorseddirs" "classes"   Main.javaWarning "$javac" ${TESTTOOLVMOPTS} -Xlint      "-extdirs"      "classes"   Main.javaWarning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-Xbootclasspath:classes${PS}${BCP}" Main.java#----------------------------------------------------------------# No warning for missing elts in "system" paths#----------------------------------------------------------------No Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-J-Djava.endorsed.dirs=classes" Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-J-Djava.ext.dirs=classes"      Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-J-Xbootclasspath/p:classes"    Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-J-Xbootclasspath/a:classes"    Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-J-Xbootclasspath:classes${PS}${BCP}" Main.java#----------------------------------------------------------------# No warning if class path element exists#----------------------------------------------------------------Sys mkdir classesNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path -cp ".${PS}classes"         Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-endorseddirs"   "classes" Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-extdirs"        "classes" Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-Xbootclasspath/p:classes" Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-Xbootclasspath/a:classes" Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path "-Xbootclasspath:classes${PS}${BCP}" Main.javaSys "$jar" cf classes.jar Main.classSys cp classes.jar classes.warSys cp classes.war classes.zipNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path -cp ".${PS}classes.jar"     Main.java   Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path -cp ".${PS}classes.war"     Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path -cp ".${PS}classes.zip"     Main.java#----------------------------------------------------------------# Warn if -Xlint is used and if class path element refers to # regular file which doesn't look like a zip file, but is#----------------------------------------------------------------Sys cp classes.war classes.foo   Warning "$javac" ${TESTTOOLVMOPTS} -Xlint:path -cp ".${PS}classes.foo"     Main.java#----------------------------------------------------------------# No error if class path element refers to regular file which is# not a zip file#----------------------------------------------------------------No Error "$javac" ${TESTTOOLVMOPTS} -cp Main.java Main.java # Main.java is NOT a jar fileNo Error "$javac" ${TESTTOOLVMOPTS} Main.java#----------------------------------------------------------------# Warn if -Xlint is used and if class path element refers to # regular file which is not a zip file#----------------------------------------------------------------Warning "$javac" ${TESTTOOLVMOPTS} -Xlint -cp Main.java Main.java # Main.java is NOT a jar file#----------------------------------------------------------------# Test jar file class path reference recursion#----------------------------------------------------------------MkManifestWithClassPath classesRef.jarSys "$jar" cmf MANIFEST.MF classesRefRef.jar Main.class#----------------------------------------------------------------# Non-existent recursive Class-Path reference gives warning#----------------------------------------------------------------No Warning "$javac" ${TESTTOOLVMOPTS}             -classpath   classesRefRef.jar Main.java   Warning "$javac" ${TESTTOOLVMOPTS} -Xlint      -classpath   classesRefRef.jar Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint -Xbootclasspath/p:classesRefRef.jar Main.javaBadJarFile classesRef.jar#----------------------------------------------------------------# Non-jar file recursive Class-Path reference gives error#----------------------------------------------------------------   Error "$javac" ${TESTTOOLVMOPTS}      -classpath   classesRefRef.jar Main.javaNo Error "$javac" ${TESTTOOLVMOPTS} -Xbootclasspath/a:classesRefRef.jar Main.javaMkManifestWithClassPath classesSys "$jar" cmf MANIFEST.MF classesRef.jar Main.class#----------------------------------------------------------------# Jar file recursive Class-Path reference is OK#----------------------------------------------------------------No Warning "$javac" ${TESTTOOLVMOPTS} -Xlint      -classpath   classesRefRef.jar Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint -Xbootclasspath/p:classesRefRef.jar Main.java#----------------------------------------------------------------# Class-Path attribute ignored in extdirs or endorseddirs#----------------------------------------------------------------Sys mkdir jarsSys cp -p classesRefRef.jar jars/.No Warning "$javac" ${TESTTOOLVMOPTS} -Xlint -extdirs      jars Main.javaNo Warning "$javac" ${TESTTOOLVMOPTS} -Xlint -endorseddirs jars Main.java#----------------------------------------------------------------# Bad Jar file in extdirs and endorseddirs should not be ignored#----------------------------------------------------------------BadJarFile jars/classesRef.jar   Error "$javac" ${TESTTOOLVMOPTS} -Xlint -extdirs      jars Main.java   Error "$javac" ${TESTTOOLVMOPTS} -Xlint -endorseddirs jars Main.javaCleanupBottom Line

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -