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 2021 Oxide Computer Company 16# 17 18# 19# This test is trying to ensure that mdb still respects symbols over 20# numbers that look similar. 21# 22 23set -o pipefail 24 25tst_root="$(dirname $0)/.." 26tst_prog="$tst_root/progs/number_symbol" 27tst_sym0="ffffabcde00" 28tst_sym1="ffffab_cde00" 29tst_sym2="_007" 30tst_out= 31tst_err=0 32 33$MDB -e "$tst_sym0=K" $tst_prog | grep -q "$tst_sym0" 34if (( $? == 0 )); then 35 printf >&2 "%s=K somehow returned itself, did it become a number?\n" \ 36 "$tst_sym0" 37fi 38 39$MDB -e "$tst_sym0/K | ::eval ./s" $tst_prog | grep -q 'Am I a string?' 40if (( $? != 0 )); then 41 printf >&2 "Failed to find expected output for %s\n" "$tst_sym0" 42 tst_err=1 43fi 44 45# 46# We grep against tst_sym0 as if mdb does interpret this as a number, 47# then it'll show it without the '_' characters. 48# 49$MDB -e "$tst_sym1=K" $tst_prog | grep -q "$tst_sym0" 50if (( $? == 0 )); then 51 printf >&2 "%s=K somehow returned itself, did it become a number?\n" \ 52 "$tst_sym0" 53 tst_err=1 54fi 55 56$MDB -e "$tst_sym1/K | ::eval ./s" $tst_prog | grep -q 'I am not a string' 57if (( $? != 0 )); then 58 printf >&2 "Failed to find expected output for %s\n" "$tst_sym1" 59 tst_err=1 60fi 61 62$MDB -e "$tst_sym2=K" $tst_prog | grep -q "$tst_sym2" 63if (( $? == 0 )); then 64 printf >&2 "%s=K somehow returned itself, did it become a number?\n" \ 65 "$tst_sym2" 66 tst_err=1 67fi 68 69$MDB -e "$tst_sym2::dis" $tst_prog | egrep -qi '^_007:' 70if (( $? != 0 )); then 71 printf >&2 "Failed to find expected output for %s::dis\n" "$tst_sym2" 72 tst_err=1 73fi 74 75exit $tst_err 76