xref: /aosp_15_r20/external/strace/tests-m32/strace-ff.test (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
1*cf84ac9aSAndroid Build Coastguard Worker#!/bin/sh
2*cf84ac9aSAndroid Build Coastguard Worker
3*cf84ac9aSAndroid Build Coastguard Worker# Check -ff option.
4*cf84ac9aSAndroid Build Coastguard Worker
5*cf84ac9aSAndroid Build Coastguard Worker. "${srcdir=.}/init.sh"
6*cf84ac9aSAndroid Build Coastguard Worker
7*cf84ac9aSAndroid Build Coastguard Workerrun_prog_skip_if_failed \
8*cf84ac9aSAndroid Build Coastguard Worker	kill -0 $$
9*cf84ac9aSAndroid Build Coastguard Worker
10*cf84ac9aSAndroid Build Coastguard Worker../set_ptracer_any ../sleep 3 > "$OUT" &
11*cf84ac9aSAndroid Build Coastguard Workertracee_pid=$!
12*cf84ac9aSAndroid Build Coastguard Worker
13*cf84ac9aSAndroid Build Coastguard Workerwhile ! [ -s "$OUT" ]; do
14*cf84ac9aSAndroid Build Coastguard Worker	kill -0 $tracee_pid 2> /dev/null ||
15*cf84ac9aSAndroid Build Coastguard Worker		fail_ 'set_ptracer_any sleep failed'
16*cf84ac9aSAndroid Build Coastguard Workerdone
17*cf84ac9aSAndroid Build Coastguard Worker
18*cf84ac9aSAndroid Build Coastguard Workerrun_strace -a14 -eexit_group -ff -p $tracee_pid
19*cf84ac9aSAndroid Build Coastguard Worker
20*cf84ac9aSAndroid Build Coastguard Worker# check that output matches
21*cf84ac9aSAndroid Build Coastguard Workermatch_diff "$LOG.$tracee_pid"
22*cf84ac9aSAndroid Build Coastguard Worker
23*cf84ac9aSAndroid Build Coastguard Worker# check that no other output files have been created
24*cf84ac9aSAndroid Build Coastguard Workerset -- "$LOG".*
25*cf84ac9aSAndroid Build Coastguard Worker[ "$LOG.$tracee_pid" = "$*" ] ||
26*cf84ac9aSAndroid Build Coastguard Worker	fail_ "too many output files: $*"
27