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 22if [ $# != 1 ]; then 23 echo expected one argument: '<'dtrace-path'>' 24 exit 2 25fi 26 27dtrace=$1 28t="final_fantasy_info_t" 29exe="tst.printtype.exe" 30 31elfdump "./$exe" | grep -q '.SUNW_ctf' 32if [[ $? -ne 0 ]]; then 33 echo "CTF does not exist in $exe, that's a bug" >&2 34 exit 1 35fi 36 37./$exe & 38pid=$! 39 40$dtrace -qs /dev/stdin <<EOF 41pid$pid::ff_getgameid:entry 42/next == 0/ 43{ 44 print(*args[0]); 45 printf("\n"); 46 next = 1; 47} 48 49pid$pid::ff_getpartysize:entry 50/next == 1/ 51{ 52 print(*args[0]); 53 printf("\n"); 54 next = 2; 55} 56 57pid$pid::ff_getsummons:entry 58/next == 2/ 59{ 60 print(*args[0]); 61 printf("\n"); 62 exit(0); 63} 64EOF 65rc=$? 66 67kill -9 $pid 68 69exit $rc 70