9a154c8911
The ftracetest instance test used parsing of the "jobs" output to find the pid of the subshell that is executed previously. But this is not portable to all major shells that may run these tests. The proper way to get the pid of the subshell is the shell command "$!". This will return the pid of the previously executed command. Use that instead, otherwise the test does not work in all environments. Link: http://lkml.kernel.org/r/20151211143617.65f4d7a1@gandalf.local.home Reported-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
86 lines
1.0 KiB
Bash
86 lines
1.0 KiB
Bash
#!/bin/sh
|
|
# description: Test creation and deletion of trace instances
|
|
|
|
if [ ! -d instances ] ; then
|
|
echo "no instance directory with this kernel"
|
|
exit_unsupported;
|
|
fi
|
|
|
|
fail() { # mesg
|
|
rmdir x y z 2>/dev/null
|
|
echo $1
|
|
set -e
|
|
exit $FAIL
|
|
}
|
|
|
|
cd instances
|
|
|
|
# we don't want to fail on error
|
|
set +e
|
|
|
|
mkdir x
|
|
rmdir x
|
|
result=$?
|
|
|
|
if [ $result -ne 0 ]; then
|
|
echo "instance rmdir not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
instance_slam() {
|
|
while :; do
|
|
mkdir x
|
|
mkdir y
|
|
mkdir z
|
|
rmdir x
|
|
rmdir y
|
|
rmdir z
|
|
done 2>/dev/null
|
|
}
|
|
|
|
instance_slam &
|
|
p1=$!
|
|
echo $p1
|
|
|
|
instance_slam &
|
|
p2=$!
|
|
echo $p2
|
|
|
|
instance_slam &
|
|
p3=$!
|
|
echo $p3
|
|
|
|
instance_slam &
|
|
p4=$!
|
|
echo $p4
|
|
|
|
instance_slam &
|
|
p5=$!
|
|
echo $p5
|
|
|
|
ls -lR >/dev/null
|
|
sleep 1
|
|
|
|
kill -1 $p1
|
|
kill -1 $p2
|
|
kill -1 $p3
|
|
kill -1 $p4
|
|
kill -1 $p5
|
|
|
|
echo "Wait for processes to finish"
|
|
wait $p1 $p2 $p3 $p4 $p5
|
|
echo "all processes finished, wait for cleanup"
|
|
|
|
mkdir x y z
|
|
ls x y z
|
|
rmdir x y z
|
|
for d in x y z; do
|
|
if [ -d $d ]; then
|
|
fail "instance $d still exists"
|
|
fi
|
|
done
|
|
|
|
set -e
|
|
|
|
exit 0
|