1 #! /usr/bin/ksh
   2 #
   3 #
   4 # This file and its contents are supplied under the terms of the
   5 # Common Development and Distribution License ("CDDL"), version 1.0.
   6 # You may only use this file in accordance with the terms of version
   7 # 1.0 of the CDDL.
   8 #
   9 # A full copy of the text of the CDDL should have accompanied this
  10 # source.  A copy of the CDDL is also available via the Internet at
  11 # http://www.illumos.org/license/CDDL.
  12 #
  13 
  14 #
  15 # Copyright (c) 2013 Joyent, Inc. All rights reserved.
  16 #
  17 
  18 #
  19 # Use print() on userland CTF types and verify we get the data we expect.
  20 #
  21 
  22 if [ $# != 1 ]; then
  23         echo expected one argument: '<'dtrace-path'>'
  24         exit 2
  25 fi
  26 
  27 dtrace=$1
  28 t="final_fantasy_info_t"
  29 exe="tst.printtype.exe"
  30 
  31 elfdump "./$exe" | grep -q '.SUNW_ctf' 
  32 if [[ $? -ne 0 ]]; then
  33         echo "CTF does not exist in $exe, that's a bug" >&2
  34         exit 1
  35 fi
  36 
  37 ./$exe &
  38 pid=$!
  39 
  40 $dtrace -qs /dev/stdin <<EOF
  41 pid$pid::ff_getgameid:entry
  42 /next == 0/
  43 {
  44         print(*args[0]);
  45         printf("\n");
  46         next = 1;
  47 }
  48 
  49 pid$pid::ff_getpartysize:entry
  50 /next == 1/
  51 {
  52         print(*args[0]);
  53         printf("\n");
  54         next = 2;
  55 }
  56 
  57 pid$pid::ff_getsummons:entry
  58 /next == 2/
  59 {
  60         print(*args[0]);
  61         printf("\n");
  62         exit(0);
  63 }
  64 EOF
  65 rc=$?
  66 
  67 kill -9 $pid
  68 
  69 exit $rc