162306a36Sopenharmony_ci#!/bin/sh
262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
362306a36Sopenharmony_ci# description: Test creation and deletion of trace instances
462306a36Sopenharmony_ci# requires: instances
562306a36Sopenharmony_ci
662306a36Sopenharmony_cifail() { # mesg
762306a36Sopenharmony_ci    rmdir x y z 2>/dev/null
862306a36Sopenharmony_ci    echo $1
962306a36Sopenharmony_ci    set -e
1062306a36Sopenharmony_ci    exit_fail
1162306a36Sopenharmony_ci}
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cicd instances
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci# we don't want to fail on error
1662306a36Sopenharmony_ciset +e
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_cimkdir x
1962306a36Sopenharmony_cirmdir x
2062306a36Sopenharmony_ciresult=$?
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciif [ $result -ne 0 ]; then
2362306a36Sopenharmony_ci    echo "instance rmdir not supported"
2462306a36Sopenharmony_ci    exit_unsupported
2562306a36Sopenharmony_cifi
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciinstance_slam() {
2862306a36Sopenharmony_ci    while :; do
2962306a36Sopenharmony_ci	mkdir x
3062306a36Sopenharmony_ci	mkdir y
3162306a36Sopenharmony_ci	mkdir z
3262306a36Sopenharmony_ci	rmdir x
3362306a36Sopenharmony_ci	rmdir y
3462306a36Sopenharmony_ci	rmdir z
3562306a36Sopenharmony_ci    done 2>/dev/null
3662306a36Sopenharmony_ci}
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciinstance_slam &
3962306a36Sopenharmony_cip1=$!
4062306a36Sopenharmony_ciecho $p1
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciinstance_slam &
4362306a36Sopenharmony_cip2=$!
4462306a36Sopenharmony_ciecho $p2
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciinstance_slam &
4762306a36Sopenharmony_cip3=$!
4862306a36Sopenharmony_ciecho $p3
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciinstance_slam &
5162306a36Sopenharmony_cip4=$!
5262306a36Sopenharmony_ciecho $p4
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciinstance_slam &
5562306a36Sopenharmony_cip5=$!
5662306a36Sopenharmony_ciecho $p5
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_cils -lR >/dev/null
5962306a36Sopenharmony_cisleep 1
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_cikill -1 $p1
6262306a36Sopenharmony_cikill -1 $p2
6362306a36Sopenharmony_cikill -1 $p3
6462306a36Sopenharmony_cikill -1 $p4
6562306a36Sopenharmony_cikill -1 $p5
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciecho "Wait for processes to finish"
6862306a36Sopenharmony_ciwait $p1 $p2 $p3 $p4 $p5
6962306a36Sopenharmony_ciecho "all processes finished, wait for cleanup"
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cimkdir x y z
7262306a36Sopenharmony_cils x y z
7362306a36Sopenharmony_cirmdir x y z
7462306a36Sopenharmony_cifor d in x y z; do
7562306a36Sopenharmony_ci        if [ -d $d ]; then
7662306a36Sopenharmony_ci                fail "instance $d still exists"
7762306a36Sopenharmony_ci        fi
7862306a36Sopenharmony_cidone
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciset -e
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciexit 0
83