xref: /aosp_15_r20/external/strace/tests-m32/kern_features-fault.test (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
1*cf84ac9aSAndroid Build Coastguard Worker#!/bin/sh
2*cf84ac9aSAndroid Build Coastguard Worker
3*cf84ac9aSAndroid Build Coastguard Worker# Check decoding of SPARC-specific kern_features syscall.
4*cf84ac9aSAndroid Build Coastguard Worker
5*cf84ac9aSAndroid Build Coastguard Worker. "${srcdir=.}/scno_tampering.sh"
6*cf84ac9aSAndroid Build Coastguard Worker
7*cf84ac9aSAndroid Build Coastguard Workerrun_prog ../kern_features > /dev/null
8*cf84ac9aSAndroid Build Coastguard Workerprog="$args"
9*cf84ac9aSAndroid Build Coastguard Workerfault_args='-a16 -e trace=kern_features -e inject=kern_features:retval='
10*cf84ac9aSAndroid Build Coastguard Worker
11*cf84ac9aSAndroid Build Coastguard Workertest_run_rval()
12*cf84ac9aSAndroid Build Coastguard Worker{
13*cf84ac9aSAndroid Build Coastguard Worker	local run rval
14*cf84ac9aSAndroid Build Coastguard Worker	run="$1"; shift
15*cf84ac9aSAndroid Build Coastguard Worker	rval="$1"; shift
16*cf84ac9aSAndroid Build Coastguard Worker
17*cf84ac9aSAndroid Build Coastguard Worker	run_strace $fault_args$rval $prog $run > "$EXP"
18*cf84ac9aSAndroid Build Coastguard Worker	match_diff "$LOG" "$EXP"
19*cf84ac9aSAndroid Build Coastguard Worker}
20*cf84ac9aSAndroid Build Coastguard Worker
21*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 0 0
22*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 1 1
23*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 2 2
24*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 3 2147483646 # 0x7ffffffe
25*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 4 2147483647 # 0x7fffffff
26*cf84ac9aSAndroid Build Coastguard Worker
27*cf84ac9aSAndroid Build Coastguard Workerexit 0 # injecting retval < 0 not supported yet
28*cf84ac9aSAndroid Build Coastguard Worker
29*cf84ac9aSAndroid Build Coastguard Workercase "$SIZEOF_KERNEL_LONG_T" in
30*cf84ac9aSAndroid Build Coastguard Worker4)
31*cf84ac9aSAndroid Build Coastguard Worker	test_run_rval 5 3735943886 # 0xdeadface
32*cf84ac9aSAndroid Build Coastguard Worker	test_run_rval 6 4294967295 # 0xffffffff
33*cf84ac9aSAndroid Build Coastguard Worker	;;
34*cf84ac9aSAndroid Build Coastguard Worker8)
35*cf84ac9aSAndroid Build Coastguard Worker	test_run_rval 5 13464652301225294542 # 0xbadc0deddeadface
36*cf84ac9aSAndroid Build Coastguard Worker	test_run_rval 6 18446744073709551615 # 0xffffffffffffffff
37*cf84ac9aSAndroid Build Coastguard Worker	;;
38*cf84ac9aSAndroid Build Coastguard Workeresac
39