12d4be7aaSRichard Lowe#! /usr/bin/ksh
22d4be7aaSRichard Lowe#
32d4be7aaSRichard Lowe# This file and its contents are supplied under the terms of the
42d4be7aaSRichard Lowe# Common Development and Distribution License ("CDDL"), version 1.0.
52d4be7aaSRichard Lowe# You may only use this file in accordance with the terms of version
62d4be7aaSRichard Lowe# 1.0 of the CDDL.
72d4be7aaSRichard Lowe#
82d4be7aaSRichard Lowe# A full copy of the text of the CDDL should have accompanied this
92d4be7aaSRichard Lowe# source.  A copy of the CDDL is also available via the Internet at
102d4be7aaSRichard Lowe# http://www.illumos.org/license/CDDL.
112d4be7aaSRichard Lowe#
122d4be7aaSRichard Lowe
132d4be7aaSRichard Lowe#
142d4be7aaSRichard Lowe# Copyright 2012, Richard Lowe.
152d4be7aaSRichard Lowe#
162d4be7aaSRichard Lowe
172d4be7aaSRichard Lowefunction tester {
182d4be7aaSRichard Lowe    prog=${1}
192d4be7aaSRichard Lowe    pattern=${2}
202d4be7aaSRichard Lowe
212d4be7aaSRichard Lowe    ./$prog >/dev/null &
222d4be7aaSRichard Lowe    pid=$!
23*d2d52addSAlexander Pyhalov    if (/usr/bin/amd64/pstack $pid | /usr/bin/grep -q "${pattern}"); then
242d4be7aaSRichard Lowe        echo "pass: ${prog}"
252d4be7aaSRichard Lowe    else
262d4be7aaSRichard Lowe        echo "FAIL: ${prog}"
272d4be7aaSRichard Lowe    fi
282d4be7aaSRichard Lowe    kill $pid
292d4be7aaSRichard Lowe}
302d4be7aaSRichard Lowe
312d4be7aaSRichard Lowetester align "test (1, 2, 3, 4, 5)"
322d4be7aaSRichard Lowetester basic "test (1, 2, 3, 4)"
332d4be7aaSRichard Lowetester big-struct-ret "test (1, 2, 3, 4)"
342d4be7aaSRichard Lowetester big-struct-ret-and-spill "test (1, 2, 3, 4, 5, 6, 7, 8)"
352d4be7aaSRichard Lowetester small-struct-ret "test (1, 2, 3, 4)"
362d4be7aaSRichard Lowetester small-struct-ret-and-spill "test (1, 2, 3, 4, 5, 6, 7, 8)"
372d4be7aaSRichard Lowetester stack-spill "test (1, 2, 3, 4, 5, 6, 7, 8)"
38