1 #!/bin/sh
   2 
   3 # Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5 
   6 # This code is free software; you can redistribute it and/or modify it
   7 # under the terms of the GNU General Public License version 2 only, as
   8 # published by the Free Software Foundation.
   9 
  10 # This code is distributed in the hope that it will be useful, but WITHOUT
  11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13 # version 2 for more details (a copy is included in the LICENSE file that
  14 # accompanied this code).
  15 
  16 # You should have received a copy of the GNU General Public License version
  17 # 2 along with this work; if not, write to the Free Software Foundation,
  18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19 
  20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21 # or visit www.oracle.com if you need additional information or have any
  22 # questions.
  23 
  24 ## @test
  25 ## @bug 8001071
  26 ## @summary Add simple range check into VM implemenation of Unsafe access methods 
  27 ## @compile Test8001071.java
  28 ## @run shell Test8001071.sh
  29 ## @author filipp.zhinkin@oracle.com
  30 
  31 BUILD_TYPE=`${TESTJAVA}/bin/java ${TESTVMOPTS} -version 2>&1 | grep debug`
  32 
  33 if [ -n "$BUILD_TYPE" ]; then
  34         echo "Build type check passed"
  35         echo "Continue testing"
  36 else
  37         echo "Fastdebug build is required for this test"
  38         exit 0
  39 fi
  40 
  41 ${TESTJAVA}/bin/java -cp ${TESTCLASSES} ${TESTVMOPTS} Test8001071 2>&1 
  42 
  43 if [ ! -f hs_err_pid* ]
  44 then
  45     echo "hs_err_pid file was not found"
  46     echo "Test failed"
  47     exit 1
  48 fi
  49 
  50 grep "assert(byte_offset < p_size) failed: Unsafe access: offset.*> object's size.*" hs_err_pid*
  51 
  52 if [ "0" = "$?" ];
  53 then
  54     echo "Range check assertion failed as expected"
  55     echo "Test passed"
  56     exit 0
  57 else
  58     echo "Range check assertion was not failed"
  59     echo "Test failed"
  60     exit 1
  61 fi