xref: /illumos-gate/usr/src/test/header-tests/tests/cxx-symbols/setup.ksh (revision f9db9ff779c49e6c6c53004fb478ca21c4cbdb57)
110724642SGordon Ross#!/usr/bin/ksh
210724642SGordon Ross#
310724642SGordon Ross#
410724642SGordon Ross# This file and its contents are supplied under the terms of the
510724642SGordon Ross# Common Development and Distribution License ("CDDL"), version 1.0.
610724642SGordon Ross# You may only use this file in accordance with the terms of version
710724642SGordon Ross# 1.0 of the CDDL.
810724642SGordon Ross#
910724642SGordon Ross# A full copy of the text of the CDDL should have accompanied this
1010724642SGordon Ross# source.  A copy of the CDDL is also available via the Internet at
1110724642SGordon Ross# http://www.illumos.org/license/CDDL.
1210724642SGordon Ross#
1310724642SGordon Ross
1410724642SGordon Ross#
1510724642SGordon Ross# Copyright 2014 Garrett D'Amore <garrett@damore.org>
1610724642SGordon Ross# Copyright 2026 Gordon W. Ross
1710724642SGordon Ross#
1810724642SGordon Ross
19861094cfSGordon Ross# First get $dir and $prog
2010724642SGordon Rosscase $0 in
2110724642SGordon Ross*/*)
2210724642SGordon Ross	dir=${0%/*}
2310724642SGordon Ross	prog=${0##*/}
2410724642SGordon Ross	;;
2510724642SGordon Ross*)
2610724642SGordon Ross	dir=.
2710724642SGordon Ross	prog=${0}
2810724642SGordon Ross	;;
2910724642SGordon Rossesac
3010724642SGordon Ross
3110724642SGordon Rossfor arg in $*
3210724642SGordon Rossdo
33*f9db9ff7SGordon Ross	case $arg in
34*f9db9ff7SGordon Ross	-d|-D)
35*f9db9ff7SGordon Ross		debug="$debug $arg"
36*f9db9ff7SGordon Ross		;;
37*f9db9ff7SGordon Ross	-f)
38*f9db9ff7SGordon Ross		force="-f"
39*f9db9ff7SGordon Ross		;;
40*f9db9ff7SGordon Ross	esac
4110724642SGordon Rossdone
4210724642SGordon Ross
43861094cfSGordon Rossif [[ -d "$dir/../../cfg/cxx-symbols" ]] ; then
44861094cfSGordon Ross	STF_SUITE="$dir/../.."
45861094cfSGordon Rosselse
46861094cfSGordon Ross	STF_SUITE=/opt/header-tests
47861094cfSGordon Rossfi
48861094cfSGordon Rossexport STF_SUITE
49861094cfSGordon Ross
50861094cfSGordon Rossdriver=$STF_SUITE/tests/common/symbol_test
51861094cfSGordon Rossenvcfg=$STF_SUITE/cfg/cxx-symbols-env.cfg
52861094cfSGordon Rosssymcfg=$STF_SUITE/cfg/cxx-symbols/${prog}.cfg
53861094cfSGordon Ross
54861094cfSGordon Ross# Special handling for "setup".  Just run ... -C
55861094cfSGordon Rossif [[ $prog == setup ]]; then
56861094cfSGordon Ross	envcfg="-C"
57861094cfSGordon Ross	symcfg=
58861094cfSGordon Rossfi
59861094cfSGordon Ross
6010724642SGordon Ross# Determine which ISA widths this system supports.
6110724642SGordon Rossisa=$(/usr/bin/isainfo)
6210724642SGordon Rosscase $isa in
63861094cfSGordon Rossamd64*)		mlist="32 64" ;;
64861094cfSGordon Rosssparcv9*)	mlist="32 64" ;;
65861094cfSGordon Rossaarch64*)	mlist="64" ;;
6610724642SGordon Ross*)
6710724642SGordon Ross	print "ERROR: Unknown ISA: $isa" >&2
6810724642SGordon Ross	exit 1
6910724642SGordon Ross	;;
7010724642SGordon Rossesac
7110724642SGordon Ross
72861094cfSGordon Ross[[ -n $debug ]] && set -x
73861094cfSGordon Rossfor m in $mlist
7410724642SGordon Rossdo
75*f9db9ff7SGordon Ross	$driver $debug $force --lang c++ -m${m} $envcfg $symcfg
76*f9db9ff7SGordon Ross	rc=$?
77*f9db9ff7SGordon Ross	[[ -n "$force" ]] || [[ $rc == 0 ]] || exit $rc
7810724642SGordon Rossdone
7910724642SGordon Rossexit 0
80