13cbd6a43SSteven Rostedt (Red Hat)#!/bin/sh
2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
33cbd6a43SSteven Rostedt (Red Hat)# description: Test creation and deletion of trace instances
43cbd6a43SSteven Rostedt (Red Hat)
53cbd6a43SSteven Rostedt (Red Hat)if [ ! -d instances ] ; then
63cbd6a43SSteven Rostedt (Red Hat)    echo "no instance directory with this kernel"
73cbd6a43SSteven Rostedt (Red Hat)    exit_unsupported;
83cbd6a43SSteven Rostedt (Red Hat)fi
93cbd6a43SSteven Rostedt (Red Hat)
103cbd6a43SSteven Rostedt (Red Hat)fail() { # mesg
113cbd6a43SSteven Rostedt (Red Hat)    rmdir x y z 2>/dev/null
123cbd6a43SSteven Rostedt (Red Hat)    echo $1
133cbd6a43SSteven Rostedt (Red Hat)    set -e
1442534b1fSMasami Hiramatsu    exit_fail
153cbd6a43SSteven Rostedt (Red Hat)}
163cbd6a43SSteven Rostedt (Red Hat)
173cbd6a43SSteven Rostedt (Red Hat)cd instances
183cbd6a43SSteven Rostedt (Red Hat)
193cbd6a43SSteven Rostedt (Red Hat)# we don't want to fail on error
203cbd6a43SSteven Rostedt (Red Hat)set +e
213cbd6a43SSteven Rostedt (Red Hat)
223cbd6a43SSteven Rostedt (Red Hat)mkdir x
233cbd6a43SSteven Rostedt (Red Hat)rmdir x
243cbd6a43SSteven Rostedt (Red Hat)result=$?
253cbd6a43SSteven Rostedt (Red Hat)
263cbd6a43SSteven Rostedt (Red Hat)if [ $result -ne 0 ]; then
273cbd6a43SSteven Rostedt (Red Hat)    echo "instance rmdir not supported"
283cbd6a43SSteven Rostedt (Red Hat)    exit_unsupported
293cbd6a43SSteven Rostedt (Red Hat)fi
303cbd6a43SSteven Rostedt (Red Hat)
313cbd6a43SSteven Rostedt (Red Hat)instance_slam() {
323cbd6a43SSteven Rostedt (Red Hat)    while :; do
333cbd6a43SSteven Rostedt (Red Hat)	mkdir x
343cbd6a43SSteven Rostedt (Red Hat)	mkdir y
353cbd6a43SSteven Rostedt (Red Hat)	mkdir z
363cbd6a43SSteven Rostedt (Red Hat)	rmdir x
373cbd6a43SSteven Rostedt (Red Hat)	rmdir y
383cbd6a43SSteven Rostedt (Red Hat)	rmdir z
393cbd6a43SSteven Rostedt (Red Hat)    done 2>/dev/null
403cbd6a43SSteven Rostedt (Red Hat)}
413cbd6a43SSteven Rostedt (Red Hat)
423cbd6a43SSteven Rostedt (Red Hat)instance_slam &
439a154c89SSteven Rostedtp1=$!
443cbd6a43SSteven Rostedt (Red Hat)echo $p1
453cbd6a43SSteven Rostedt (Red Hat)
463cbd6a43SSteven Rostedt (Red Hat)instance_slam &
479a154c89SSteven Rostedtp2=$!
483cbd6a43SSteven Rostedt (Red Hat)echo $p2
493cbd6a43SSteven Rostedt (Red Hat)
503cbd6a43SSteven Rostedt (Red Hat)instance_slam &
519a154c89SSteven Rostedtp3=$!
523cbd6a43SSteven Rostedt (Red Hat)echo $p3
533cbd6a43SSteven Rostedt (Red Hat)
543cbd6a43SSteven Rostedt (Red Hat)instance_slam &
559a154c89SSteven Rostedtp4=$!
563cbd6a43SSteven Rostedt (Red Hat)echo $p4
573cbd6a43SSteven Rostedt (Red Hat)
583cbd6a43SSteven Rostedt (Red Hat)instance_slam &
599a154c89SSteven Rostedtp5=$!
603cbd6a43SSteven Rostedt (Red Hat)echo $p5
613cbd6a43SSteven Rostedt (Red Hat)
623cbd6a43SSteven Rostedt (Red Hat)ls -lR >/dev/null
633cbd6a43SSteven Rostedt (Red Hat)sleep 1
643cbd6a43SSteven Rostedt (Red Hat)
653cbd6a43SSteven Rostedt (Red Hat)kill -1 $p1
663cbd6a43SSteven Rostedt (Red Hat)kill -1 $p2
673cbd6a43SSteven Rostedt (Red Hat)kill -1 $p3
683cbd6a43SSteven Rostedt (Red Hat)kill -1 $p4
693cbd6a43SSteven Rostedt (Red Hat)kill -1 $p5
703cbd6a43SSteven Rostedt (Red Hat)
713cbd6a43SSteven Rostedt (Red Hat)echo "Wait for processes to finish"
723cbd6a43SSteven Rostedt (Red Hat)wait $p1 $p2 $p3 $p4 $p5
733cbd6a43SSteven Rostedt (Red Hat)echo "all processes finished, wait for cleanup"
743cbd6a43SSteven Rostedt (Red Hat)
753cbd6a43SSteven Rostedt (Red Hat)mkdir x y z
763cbd6a43SSteven Rostedt (Red Hat)ls x y z
773cbd6a43SSteven Rostedt (Red Hat)rmdir x y z
783cbd6a43SSteven Rostedt (Red Hat)for d in x y z; do
793cbd6a43SSteven Rostedt (Red Hat)        if [ -d $d ]; then
803cbd6a43SSteven Rostedt (Red Hat)                fail "instance $d still exists"
813cbd6a43SSteven Rostedt (Red Hat)        fi
823cbd6a43SSteven Rostedt (Red Hat)done
833cbd6a43SSteven Rostedt (Red Hat)
843cbd6a43SSteven Rostedt (Red Hat)set -e
853cbd6a43SSteven Rostedt (Red Hat)
863cbd6a43SSteven Rostedt (Red Hat)exit 0
87