xref: /aosp_15_r20/external/strace/tests-m32/inject-nf.test (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
1*cf84ac9aSAndroid Build Coastguard Worker#!/bin/sh -efu
2*cf84ac9aSAndroid Build Coastguard Worker
3*cf84ac9aSAndroid Build Coastguard Worker# Check decoding of return values injected into a syscall that "never fails".
4*cf84ac9aSAndroid Build Coastguard Worker
5*cf84ac9aSAndroid Build Coastguard Worker. "${srcdir=.}/scno_tampering.sh"
6*cf84ac9aSAndroid Build Coastguard Worker
7*cf84ac9aSAndroid Build Coastguard Workercase "$STRACE_ARCH" in
8*cf84ac9aSAndroid Build Coastguard Workeralpha)
9*cf84ac9aSAndroid Build Coastguard Worker	SYSCALL=getpgrp
10*cf84ac9aSAndroid Build Coastguard Worker	;;
11*cf84ac9aSAndroid Build Coastguard Worker*)
12*cf84ac9aSAndroid Build Coastguard Worker	SYSCALL=getpid
13*cf84ac9aSAndroid Build Coastguard Worker	;;
14*cf84ac9aSAndroid Build Coastguard Workeresac
15*cf84ac9aSAndroid Build Coastguard Worker
16*cf84ac9aSAndroid Build Coastguard Workerrun_prog
17*cf84ac9aSAndroid Build Coastguard Workerprog="$args"
18*cf84ac9aSAndroid Build Coastguard Workerfault_args="-a9 -e trace=${SYSCALL} -e inject=${SYSCALL}:retval="
19*cf84ac9aSAndroid Build Coastguard Worker
20*cf84ac9aSAndroid Build Coastguard Workertest_rval()
21*cf84ac9aSAndroid Build Coastguard Worker{
22*cf84ac9aSAndroid Build Coastguard Worker	local rval
23*cf84ac9aSAndroid Build Coastguard Worker	rval="$1"; shift
24*cf84ac9aSAndroid Build Coastguard Worker
25*cf84ac9aSAndroid Build Coastguard Worker	run_strace $fault_args$rval $prog $rval > "$EXP"
26*cf84ac9aSAndroid Build Coastguard Worker	match_diff "$LOG" "$EXP"
27*cf84ac9aSAndroid Build Coastguard Worker}
28*cf84ac9aSAndroid Build Coastguard Worker
29*cf84ac9aSAndroid Build Coastguard Workertest_rval 0
30*cf84ac9aSAndroid Build Coastguard Workertest_rval 1
31*cf84ac9aSAndroid Build Coastguard Workertest_rval 0x7fffffff
32*cf84ac9aSAndroid Build Coastguard Workertest_rval 0x80000000
33*cf84ac9aSAndroid Build Coastguard Workertest_rval 0xfffff000
34*cf84ac9aSAndroid Build Coastguard Workertest_rval 0xfffffffe
35*cf84ac9aSAndroid Build Coastguard Workertest_rval 0xffffffff
36*cf84ac9aSAndroid Build Coastguard Worker
37*cf84ac9aSAndroid Build Coastguard Workercase "$SIZEOF_KERNEL_LONG_T" in
38*cf84ac9aSAndroid Build Coastguard Worker8)
39*cf84ac9aSAndroid Build Coastguard Worker	test_rval         0x80000000
40*cf84ac9aSAndroid Build Coastguard Worker	test_rval         0xfffff000
41*cf84ac9aSAndroid Build Coastguard Worker	test_rval         0xfffffffe
42*cf84ac9aSAndroid Build Coastguard Worker	test_rval         0xffffffff
43*cf84ac9aSAndroid Build Coastguard Worker	test_rval        0x100000000
44*cf84ac9aSAndroid Build Coastguard Worker	test_rval 0x7fffffffffffffff
45*cf84ac9aSAndroid Build Coastguard Worker	test_rval 0x8000000000000000
46*cf84ac9aSAndroid Build Coastguard Worker	test_rval 0xfffffffffffff000
47*cf84ac9aSAndroid Build Coastguard Worker	test_rval 0xfffffffffffffffe
48*cf84ac9aSAndroid Build Coastguard Worker	test_rval 0xffffffffffffffff
49*cf84ac9aSAndroid Build Coastguard Worker	;;
50*cf84ac9aSAndroid Build Coastguard Workeresac
51