Files
redrsoe2100 e2e680831c fix: add executable permission bit for all 3963 .sh test scripts
All .sh files under tests/ lacked the Git executable permission bit
(100644 instead of 100755), causing tmt run to fail with 'permission
denied' errors on Linux servers.

Fixes: woqidaideshi/openruyi-autotest#80
2026-07-06 14:36:45 +08:00

57 lines
1.8 KiB
Bash
Executable File

# library-prefix = perf_sysbench
#
# sysbench multi-threaded benchmark suite-level shared library
# Measures OS performance: CPU, memory, threads, mutex, file I/O.
#
# Key metrics (from Testing-Guide):
# CPU: events/sec (higher=better)
# Memory: MiB/sec (higher=better)
# Threads: eps + 95% latency + fairness (avg/stddev)
# Mutex: lock throughput (threads * locks / time)
# FileIO: MiB/sec throughput
#
# Usage: . "$(dirname "$0")/../lib.sh"
SYSBENCH_FLAG="/tmp/.beakerlib_sysbench_suite"
sysbenchSetup() {
if [ ! -f "$SYSBENCH_FLAG" ]; then
if ! rpm -q sysbench 2>/dev/null; then
echo openruyi | sudo -S dnf install -y sysbench 2>/dev/null
echo "installed=1" > "$SYSBENCH_FLAG"
rlLogInfo "已安装 sysbench"
else
echo "installed=0" > "$SYSBENCH_FLAG"
fi
echo "ref=1" >> "$SYSBENCH_FLAG"
else
local ref
ref=$(grep "^ref=" "$SYSBENCH_FLAG" | cut -d= -f2)
ref=$((ref + 1))
sed -i "s/^ref=.*/ref=$ref/" "$SYSBENCH_FLAG"
fi
rlCleanupAppend "sysbenchCleanup"
}
sysbenchCleanup() {
if [ ! -f "$SYSBENCH_FLAG" ]; then return 0; fi
local ref
ref=$(grep "^ref=" "$SYSBENCH_FLAG" | cut -d= -f2)
ref=$((ref - 1))
if [ "$ref" -le 0 ]; then
grep -q "^installed=1" "$SYSBENCH_FLAG" && echo openruyi | sudo -S dnf remove -y sysbench 2>/dev/null || true
rm -f "$SYSBENCH_FLAG"
else
sed -i "s/^ref=.*/ref=$ref/" "$SYSBENCH_FLAG"
fi
}
# Parse sysbench output for key metrics
_sysbenchParse() {
local log="$1"
[ ! -f "$log" ] && return 1
echo "--- sysbench 结果 ---"
grep -E "total time:|total number of events|events per second|avg:|95th percentile|events.*avg/stddev|MiB/sec|transferred" "$log" | head -10
echo "---"
}