1 #!/bin/sh 2 3 # 4 # Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. 5 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 6 # 7 # This code is free software; you can redistribute it and/or modify it 8 # under the terms of the GNU General Public License version 2 only, as 9 # published by the Free Software Foundation. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # 27 # @test 28 # @bug 4164450 29 # @summary Ensure that javah/javadoc doesn't try to read (new) source files 30 # @author Peter von der Ah\u00e9 31 # @run shell ReadOldClass.sh 32 # 33 34 TS=${TESTSRC-.} 35 TC=${TESTCLASSES-.} 36 37 if [ "${TESTJAVA}" = "" ] 38 then 39 echo "TESTJAVA not set. Test cannot execute. Failed." 40 exit 1 41 fi 42 43 # set platform-dependent variables 44 OS=`uname -s` 45 case "$OS" in 46 SunOS | Linux | Darwin | CYGWIN* ) 47 PS=":" 48 FS="/" 49 ;; 50 Windows* ) 51 PS=";" 52 FS="\\" 53 ;; 54 * ) 55 echo "Unrecognized system!" 56 exit 1; 57 ;; 58 esac 59 60 cat > "${TC}/ReadOldClass.java" <<EOF 61 public class ReadOldClass { 62 public static void main(String[] args) { 63 } 64 } 65 EOF 66 67 rm -f ${TC}/ReadOldClass.h 68 69 set -e 70 71 # compile the file 72 "${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS} -d "${TC}" "${TC}/ReadOldClass.java" 73 # ensure the source file is newer than the class file 74 touch "${TC}/ReadOldClass.java" 75 "${TESTJAVA}${FS}bin${FS}javah" ${TESTTOOLVMOPTS} -jni -classpath "${TC}" -d "${TC}" ReadOldClass 76 77 test -f "${TC}/ReadOldClass.h"