Re: [for-next][PATCH 3/7] ftracetest: Add instance create and delete test

Steven Rostedt
2015-11-25T16:31:32Z

Shuah,

Sorry, I forgot to add you to the Cc of this patch. I have another test
to add, but I forgot to commit it into git ;-)

-- Steve

On Wed, 25 Nov 2015 11:08:41 -0500
Steven Rostedt <rostedt@goodmis.org> wrote:

> From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
>
> Create a test to test instance creation and deletion. Several tasks are
> created that create 3 directories and delete them. The tasks all create the
> same directories. This places a stress on the code that creates and deletes
> instances.
>
> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
> ---
> .../selftests/ftrace/test.d/instances/instance.tc | 90 ++++++++++++++++++++++
> 1 file changed, 90 insertions(+)
> create mode 100644 tools/testing/selftests/ftrace/test.d/instances/instance.tc
>
> diff --git a/tools/testing/selftests/ftrace/test.d/instances/instance.tc b/tools/testing/selftests/ftrace/test.d/instances/instance.tc
> new file mode 100644
> index 000000000000..773e276ff90b
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/instances/instance.tc
> @@ -0,0 +1,90 @@
> +#!/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 &
> +x=`jobs -l`
> +p1=`echo $x | cut -d' ' -f2`
> +echo $p1
> +
> +instance_slam &
> +x=`jobs -l | tail -1`
> +p2=`echo $x | cut -d' ' -f2`
> +echo $p2
> +
> +instance_slam &
> +x=`jobs -l | tail -1`
> +p3=`echo $x | cut -d' ' -f2`
> +echo $p3
> +
> +instance_slam &
> +x=`jobs -l | tail -1`
> +p4=`echo $x | cut -d' ' -f2`
> +echo $p4
> +
> +instance_slam &
> +x=`jobs -l | tail -1`
> +p5=`echo $x | cut -d' ' -f2`
> +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