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
43591e90fSMasami Hiramatsu# requires: instances
53cbd6a43SSteven Rostedt (Red Hat)
63cbd6a43SSteven Rostedt (Red Hat)fail() { # mesg
73cbd6a43SSteven Rostedt (Red Hat)    rmdir x y z 2>/dev/null
83cbd6a43SSteven Rostedt (Red Hat)    echo $1
93cbd6a43SSteven Rostedt (Red Hat)    set -e
1042534b1fSMasami Hiramatsu    exit_fail
113cbd6a43SSteven Rostedt (Red Hat)}
123cbd6a43SSteven Rostedt (Red Hat)
133cbd6a43SSteven Rostedt (Red Hat)cd instances
143cbd6a43SSteven Rostedt (Red Hat)
153cbd6a43SSteven Rostedt (Red Hat)# we don't want to fail on error
163cbd6a43SSteven Rostedt (Red Hat)set +e
173cbd6a43SSteven Rostedt (Red Hat)
183cbd6a43SSteven Rostedt (Red Hat)mkdir x
193cbd6a43SSteven Rostedt (Red Hat)rmdir x
203cbd6a43SSteven Rostedt (Red Hat)result=$?
213cbd6a43SSteven Rostedt (Red Hat)
223cbd6a43SSteven Rostedt (Red Hat)if [ $result -ne 0 ]; then
233cbd6a43SSteven Rostedt (Red Hat)    echo "instance rmdir not supported"
243cbd6a43SSteven Rostedt (Red Hat)    exit_unsupported
253cbd6a43SSteven Rostedt (Red Hat)fi
263cbd6a43SSteven Rostedt (Red Hat)
273cbd6a43SSteven Rostedt (Red Hat)instance_slam() {
283cbd6a43SSteven Rostedt (Red Hat)    while :; do
293cbd6a43SSteven Rostedt (Red Hat)	mkdir x
303cbd6a43SSteven Rostedt (Red Hat)	mkdir y
313cbd6a43SSteven Rostedt (Red Hat)	mkdir z
323cbd6a43SSteven Rostedt (Red Hat)	rmdir x
333cbd6a43SSteven Rostedt (Red Hat)	rmdir y
343cbd6a43SSteven Rostedt (Red Hat)	rmdir z
353cbd6a43SSteven Rostedt (Red Hat)    done 2>/dev/null
363cbd6a43SSteven Rostedt (Red Hat)}
373cbd6a43SSteven Rostedt (Red Hat)
383cbd6a43SSteven Rostedt (Red Hat)instance_slam &
399a154c89SSteven Rostedtp1=$!
403cbd6a43SSteven Rostedt (Red Hat)echo $p1
413cbd6a43SSteven Rostedt (Red Hat)
423cbd6a43SSteven Rostedt (Red Hat)instance_slam &
439a154c89SSteven Rostedtp2=$!
443cbd6a43SSteven Rostedt (Red Hat)echo $p2
453cbd6a43SSteven Rostedt (Red Hat)
463cbd6a43SSteven Rostedt (Red Hat)instance_slam &
479a154c89SSteven Rostedtp3=$!
483cbd6a43SSteven Rostedt (Red Hat)echo $p3
493cbd6a43SSteven Rostedt (Red Hat)
503cbd6a43SSteven Rostedt (Red Hat)instance_slam &
519a154c89SSteven Rostedtp4=$!
523cbd6a43SSteven Rostedt (Red Hat)echo $p4
533cbd6a43SSteven Rostedt (Red Hat)
543cbd6a43SSteven Rostedt (Red Hat)instance_slam &
559a154c89SSteven Rostedtp5=$!
563cbd6a43SSteven Rostedt (Red Hat)echo $p5
573cbd6a43SSteven Rostedt (Red Hat)
583cbd6a43SSteven Rostedt (Red Hat)ls -lR >/dev/null
593cbd6a43SSteven Rostedt (Red Hat)sleep 1
603cbd6a43SSteven Rostedt (Red Hat)
613cbd6a43SSteven Rostedt (Red Hat)kill -1 $p1
623cbd6a43SSteven Rostedt (Red Hat)kill -1 $p2
633cbd6a43SSteven Rostedt (Red Hat)kill -1 $p3
643cbd6a43SSteven Rostedt (Red Hat)kill -1 $p4
653cbd6a43SSteven Rostedt (Red Hat)kill -1 $p5
663cbd6a43SSteven Rostedt (Red Hat)
673cbd6a43SSteven Rostedt (Red Hat)echo "Wait for processes to finish"
683cbd6a43SSteven Rostedt (Red Hat)wait $p1 $p2 $p3 $p4 $p5
693cbd6a43SSteven Rostedt (Red Hat)echo "all processes finished, wait for cleanup"
703cbd6a43SSteven Rostedt (Red Hat)
713cbd6a43SSteven Rostedt (Red Hat)mkdir x y z
723cbd6a43SSteven Rostedt (Red Hat)ls x y z
733cbd6a43SSteven Rostedt (Red Hat)rmdir x y z
743cbd6a43SSteven Rostedt (Red Hat)for d in x y z; do
753cbd6a43SSteven Rostedt (Red Hat)        if [ -d $d ]; then
763cbd6a43SSteven Rostedt (Red Hat)                fail "instance $d still exists"
773cbd6a43SSteven Rostedt (Red Hat)        fi
783cbd6a43SSteven Rostedt (Red Hat)done
793cbd6a43SSteven Rostedt (Red Hat)
803cbd6a43SSteven Rostedt (Red Hat)set -e
813cbd6a43SSteven Rostedt (Red Hat)
823cbd6a43SSteven Rostedt (Red Hat)exit 0
83