bin/checkintest.sh

Fri, 11 Jan 2013 10:40:51 +0100

author
lagergren
date
Fri, 11 Jan 2013 10:40:51 +0100
changeset 24
2a4769fcd13f
parent 7
5a1b0714df0e
child 952
6d5471a497fb
permissions
-rw-r--r--

8005976: Break out AccessSpecializer into one pass before CodeGenerator instead of iterative applications from CodeGenerator
Summary: Now scope and slot information is guaranteed to be fixed AND NOT CHANGE before CodeGeneration. We want to keep it that way to build future type specializations and bring all type work out of CodeGenerator.
Reviewed-by: attila, hannesw

jlaskey@3 1 #!/bin/bash
jlaskey@3 2 #
jlaskey@7 3 # Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
jlaskey@3 4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
jlaskey@3 5 #
jlaskey@3 6 # This code is free software; you can redistribute it and/or modify it
jlaskey@3 7 # under the terms of the GNU General Public License version 2 only, as
jlaskey@3 8 # published by the Free Software Foundation.
jlaskey@3 9 #
jlaskey@3 10 # This code is distributed in the hope that it will be useful, but WITHOUT
jlaskey@3 11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
jlaskey@3 12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
jlaskey@3 13 # version 2 for more details (a copy is included in the LICENSE file that
jlaskey@3 14 # accompanied this code).
jlaskey@3 15 #
jlaskey@3 16 # You should have received a copy of the GNU General Public License version
jlaskey@3 17 # 2 along with this work; if not, write to the Free Software Foundation,
jlaskey@3 18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
jlaskey@3 19 #
jlaskey@3 20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
jlaskey@3 21 # or visit www.oracle.com if you need additional information or have any
jlaskey@3 22 # questions.
jlaskey@3 23 #
jlaskey@3 24
jlaskey@3 25 #best pass rate at test 262 known
jlaskey@3 26 TEST262_PASS_AT_LEAST=435
jlaskey@3 27
jlaskey@3 28 RUN_TEST="true"
jlaskey@3 29 RUN_TEST262="true"
jlaskey@3 30 RUN_NODE="true"
jlaskey@3 31 KEEP_OUTPUT="true"
jlaskey@3 32 CLEAN_AND_BUILD_NASHORN="true"
jlaskey@3 33
jlaskey@3 34 #the stable node version to sync against
jlaskey@3 35 NODE_LAST_STABLE=v0.6.18
jlaskey@3 36
jlaskey@3 37 #parse args
jlaskey@3 38 for arg in $*
jlaskey@3 39 do
jlaskey@3 40 if [ $arg = "--no-test" ]; then
jlaskey@3 41 RUN_TEST="false"
jlaskey@3 42 echo "**** WARNING - you have disabled 'ant test', which is a minimum checkin requirement..."
jlaskey@3 43 elif [ $arg = "--no-262" ]; then
jlaskey@3 44 RUN_TEST262="false"
jlaskey@3 45 elif [ $arg = "--no-node" ]; then
jlaskey@3 46 RUN_NODE="false"
jlaskey@3 47 elif [ $arg = "--no-build" ]; then
jlaskey@3 48 CLEAN_AND_BUILD_NASHORN="false"
jlaskey@3 49 elif [ $arg = "--no-logs" ]; then
jlaskey@3 50 KEEP_OUTPUT="false"
jlaskey@3 51 fi
jlaskey@3 52 done
jlaskey@3 53
jlaskey@3 54 function lastpart() {
jlaskey@3 55 arr=$(echo $1 | tr "/" "\n")
jlaskey@3 56 for x in $arr
jlaskey@3 57 do
jlaskey@3 58 _last=$x
jlaskey@3 59 done
jlaskey@3 60 echo $_last
jlaskey@3 61 }
jlaskey@3 62
jlaskey@3 63 function check_installed() {
jlaskey@3 64 which $1 >/dev/null
jlaskey@3 65 if [ $? -ne 0 ]; then
jlaskey@3 66 echo "Error $1 not installed: $?"
jlaskey@3 67 exit 2
jlaskey@3 68 fi
jlaskey@3 69 }
jlaskey@3 70
jlaskey@3 71 check_installed hg
jlaskey@3 72 check_installed git
jlaskey@3 73 check_installed mv
jlaskey@3 74 check_installed git
jlaskey@3 75
jlaskey@3 76 PWD=$(pwd);
jlaskey@3 77
jlaskey@3 78 while [ -z $NASHORN_ROOT ]
jlaskey@3 79 do
jlaskey@3 80 if [ -e $PWD/.hg ]; then
jlaskey@3 81 NASHORN_ROOT=${PWD}
jlaskey@3 82 break
jlaskey@3 83 fi
jlaskey@3 84 PWD=$(dirname ${PWD})
jlaskey@3 85 done
jlaskey@3 86
jlaskey@3 87 echo "Nashorn root detected at ${NASHORN_ROOT}"
jlaskey@3 88
jlaskey@3 89 COMMON_ROOT=$(dirname $NASHORN_ROOT)
jlaskey@3 90 echo "Common root is ${COMMON_ROOT}"
jlaskey@3 91
jlaskey@3 92 echo "Running checkintest..."
jlaskey@3 93
jlaskey@3 94 ABSOLUTE_NASHORN_HOME=$COMMON_ROOT/$(lastpart $NASHORN_ROOT)
jlaskey@3 95
jlaskey@3 96 if [ $CLEAN_AND_BUILD_NASHORN != "false" ]; then
jlaskey@3 97 echo "Cleaning and building nashorn at $ABSOLUTE_NASHORN_HOME/nashorn..."
jlaskey@3 98 $(cd $ABSOLUTE_NASHORN_HOME/nashorn; ant clean >/dev/null 2>/dev/null)
jlaskey@3 99 $(cd $ABSOLUTE_NASHORN_HOME/nashorn; ant jar >/dev/null 2>/dev/null)
jlaskey@3 100 echo "Done."
jlaskey@3 101 fi
jlaskey@3 102
jlaskey@3 103 function failure_check() {
jlaskey@3 104 while read line
jlaskey@3 105 do
jlaskey@3 106 LINE=$(echo $line | grep "Tests run")
jlaskey@3 107 if [ "${LINE}" != "" ]; then
jlaskey@3 108 RESULT=$(echo $line | grep "Failures: 0" | grep "Errors: 0")
jlaskey@3 109 if [ "${RESULT}" == "" ]; then
jlaskey@3 110 TESTNAME=$2
jlaskey@3 111 echo "There were errors in ${TESTNAME} : ${LINE}"
jlaskey@3 112 exit 1
jlaskey@3 113 fi
jlaskey@3 114 fi
jlaskey@3 115 done < $1
jlaskey@3 116 }
jlaskey@3 117
jlaskey@3 118 function test() {
jlaskey@3 119 TEST_OUTPUT=$ABSOLUTE_NASHORN_HOME/$(mktemp tmp.XXXXX)
jlaskey@3 120 echo "Running 'ant test' on nashorn from ${ABSOLUTE_NASHORN_HOME}/nashorn..."
jlaskey@3 121 $(cd $ABSOLUTE_NASHORN_HOME/nashorn; ant test >$TEST_OUTPUT)
jlaskey@3 122 echo "Done."
jlaskey@3 123
jlaskey@3 124 failure_check $TEST_OUTPUT
jlaskey@3 125
jlaskey@3 126 echo "**** SUCCESS: 'ant test' successful"
jlaskey@3 127
jlaskey@3 128 if [ $KEEP_OUTPUT == "true" ]; then
jlaskey@3 129 cp $TEST_OUTPUT ./checkintest.test.log
jlaskey@3 130 rm -fr $TEST_OUTPUT
jlaskey@3 131 fi
jlaskey@3 132 }
jlaskey@3 133
jlaskey@3 134 if [ $RUN_TEST != "false" ]; then
jlaskey@3 135 test;
jlaskey@3 136 fi
jlaskey@3 137
jlaskey@3 138 function test262() {
jlaskey@3 139
jlaskey@3 140 echo "Running 'ant test262parallel' on nashorn from ${ABSOLUTE_NASHORN_HOME}/nashorn..."
jlaskey@3 141 TEST262_OUTPUT=$ABSOLUTE_NASHORN_HOME/$(mktemp tmp.XXXXX)
jlaskey@3 142
jlaskey@3 143 echo "Looking for ${ABSOLUTE_NASHORN_HOME}/test/test262..."
jlaskey@3 144
jlaskey@3 145 if [ ! -e $ABSOLUTE_NASHORN_HOME/nashorn/test/test262 ]; then
jlaskey@3 146 echo "test262 is missing... looking in $COMMON_ROOT..."
jlaskey@3 147 if [ ! -e $COMMON_ROOT/test262 ]; then
jlaskey@3 148 echo "... not there either... cloning from repo..."
jlaskey@3 149 hg clone http://hg.ecmascript.org/tests/test262 $COMMON_ROOT/test262 >/dev/null 2>/dev/null
jlaskey@3 150 echo "Done."
jlaskey@3 151 fi
jlaskey@3 152 echo "Adding soft link ${COMMON_ROOT}/test262 -> ${ABSOLUTE_NASHORN_HOME}/test/test262..."
jlaskey@3 153 ln -s $COMMON_ROOT/test262 $ABSOLUTE_NASHORN_HOME/nashorn/test/test262
jlaskey@3 154 echo "Done."
jlaskey@3 155 fi
jlaskey@3 156
jlaskey@3 157 echo "Ensuring test262 is up to date..."
jlaskey@3 158 $(cd $ABSOLUTE_NASHORN_HOME/nashorn/test/test262; hg pull -u >/dev/null 2>/dev/null)
jlaskey@3 159 echo "Done."
jlaskey@3 160
jlaskey@3 161 echo "Running test262..."
jlaskey@3 162 $(cd $ABSOLUTE_NASHORN_HOME/nashorn; ant test262parallel > $TEST262_OUTPUT)
jlaskey@3 163
jlaskey@3 164 FAILED=$(cat $TEST262_OUTPUT|grep "Tests run:"| cut -d ' ' -f 15 |tr -cd '"[[:digit:]]')
jlaskey@3 165 if [ $FAILED -gt $TEST262_PASS_AT_LEAST ]; then
jlaskey@3 166 echo "FAILURE: There are ${FAILED} failures in test262 and can be no more than ${TEST262_PASS_AT_LEAST}"
jlaskey@3 167 cp $TEST262_OUTPUT ./checkintest.test262.log
jlaskey@3 168 echo "See ./checkintest.test262.log"
jlaskey@3 169 echo "Terminating due to error"
jlaskey@3 170 exit 1
jlaskey@3 171 elif [ $FAILED -lt $TEST262_PASS_AT_LEAST ]; then
jlaskey@3 172 echo "There seem to have been fixes to 262. ${FAILED} < ${TEST262_PASS_AT_LEAST}. Please update limit in bin/checkintest.sh"
jlaskey@3 173 fi
jlaskey@3 174
jlaskey@3 175 echo "**** SUCCESS: Test262 passed with no more than ${TEST262_PASS_AT_LEAST} failures."
jlaskey@3 176
jlaskey@3 177 if [ $KEEP_OUTPUT == "true" ]; then
jlaskey@3 178 cp $TEST262_OUTPUT ./checkintest.test262.log
jlaskey@3 179 rm -fr $TEST262_OUTPUT
jlaskey@3 180 fi
jlaskey@3 181 }
jlaskey@3 182
jlaskey@3 183 if [ $RUN_TEST262 != "false" ]; then
jlaskey@3 184 test262;
jlaskey@3 185 fi;
jlaskey@3 186
jlaskey@3 187 function testnode() {
jlaskey@3 188 TESTNODEJAR_OUTPUT=$ABSOLUTE_NASHORN_HOME/$(mktemp tmp.XXXXX)
jlaskey@3 189
jlaskey@3 190 echo "Running node tests..."
jlaskey@3 191 #replace node jar properties nashorn with this nashorn
jlaskey@3 192
jlaskey@3 193 NODEJAR_PROPERTIES=~/nodejar.properties
jlaskey@3 194
jlaskey@3 195 NODE_HOME=$(cat $NODEJAR_PROPERTIES | grep ^node.home | cut -f2 -d=)
jlaskey@3 196 NASHORN_HOME=$(cat $NODEJAR_PROPERTIES | grep ^nashorn.home | cut -f2 -d=)
jlaskey@3 197
jlaskey@3 198 ABSOLUTE_NODE_HOME=$COMMON_ROOT/$(lastpart $NODE_HOME)
jlaskey@3 199
jlaskey@3 200 echo "Writing nodejar.properties..."
jlaskey@3 201
jlaskey@3 202 cat > $NODEJAR_PROPERTIES << EOF
jlaskey@3 203 node.home=../node
jlaskey@3 204 nashorn.home=../$(lastpart $NASHORN_ROOT)
jlaskey@3 205 EOF
jlaskey@3 206 echo "Done."
jlaskey@3 207 echo "Checking node home ${ABSOLUTE_NODE_HOME}..."
jlaskey@3 208
jlaskey@3 209 if [ ! -e $ABSOLUTE_NODE_HOME ]; then
jlaskey@3 210 echo "Node base dir not found. Cloning node..."
jlaskey@3 211 $(cd $COMMON_ROOT; git clone https://github.com/joyent/node.git $(lastpart $NODE_HOME) >/dev/null 2>/dev/null)
jlaskey@3 212 echo "Done."
jlaskey@3 213 echo "Updating to last stable version ${NODE_LAST_STABLE}..."
jlaskey@3 214 $(cd $ABSOLUTE_NODE_HOME; git checkout $NODE_LAST_STABLE >/dev/null 2>/dev/null)
jlaskey@3 215 echo "Done."
jlaskey@3 216 echo "Running configure..."
jlaskey@3 217 $(cd $ABSOLUTE_NODE_HOME; ./configure >/dev/null 2>/dev/null)
jlaskey@3 218 echo "Done."
jlaskey@3 219 fi
jlaskey@3 220
jlaskey@3 221 echo "Ensuring node is built..."
jlaskey@3 222 #make sure node is built
jlaskey@3 223 $(cd $ABSOLUTE_NODE_HOME; make >/dev/null 2>/dev/null)
jlaskey@3 224 echo "Done."
jlaskey@3 225
jlaskey@3 226 NODEJAR_HOME=$COMMON_ROOT/nodejar
jlaskey@3 227
jlaskey@3 228 if [ ! -e $NODEJAR_HOME ]; then
jlaskey@3 229 echo "No node jar home found. cloning from depot..."
jlaskey@3 230 $(cd $COMMON_ROOT; hg clone https://hg.kenai.com/hg/nodejs~source nodejar >/dev/null 2>/dev/null)
jlaskey@3 231 $(cd $COMMON_ROOT/nodejar; ant >/dev/null)
jlaskey@3 232 echo "Done."
jlaskey@3 233 echo "Copying node files..."
jlaskey@3 234 $(cd $COMMON_ROOT/nodejar; ant copy-node-files >/dev/null 2>/dev/null)
jlaskey@3 235 echo "Patching node files..."
jlaskey@3 236 $(cd $COMMON_ROOT/nodejar; ant patch-node-files >/dev/null 2>/dev/null)
jlaskey@3 237 echo "Done."
jlaskey@3 238 fi
jlaskey@3 239
jlaskey@3 240 echo "Ensuring node.jar is up to date from source depot..."
jlaskey@3 241 $(cd $COMMON_ROOT/nodejar; hg pull -u >/dev/null 2>/dev/null)
jlaskey@3 242 echo "Done."
jlaskey@3 243
jlaskey@3 244 echo "Installing nashorn..."
jlaskey@3 245 $(cd $COMMON_ROOT/nodejar; ant >/dev/null)
jlaskey@3 246 echo "Done."
jlaskey@3 247
jlaskey@3 248 echo "Running node.jar test..."
jlaskey@3 249 $(cd $COMMON_ROOT/nodejar; mvn clean verify >$TESTNODEJAR_OUTPUT)
jlaskey@3 250 echo "Done."
jlaskey@3 251
jlaskey@3 252 failure_check $TESTNODEJAR_OUTPUT
jlaskey@3 253
jlaskey@3 254 echo "**** SUCCESS: Node test successful."
jlaskey@3 255
jlaskey@3 256 if [ $KEEP_OUTPUT == "true" ]; then
jlaskey@3 257 rm -fr $TESTNODEJAR_OUTPUT
jlaskey@3 258 cp $TESTNODEJAR_OUTPUT ./checkintest.nodejar.log
jlaskey@3 259 fi
jlaskey@3 260 }
jlaskey@3 261
jlaskey@3 262 if [ $RUN_NODE != "false" ]; then
jlaskey@3 263 testnode;
jlaskey@3 264 fi;
jlaskey@3 265
jlaskey@3 266 echo "Finished"

mercurial