Skip to content

Commit 5756ad6

Browse files
committed
tests: Add perf_event_tests
1 parent 945afcd commit 5756ad6

5 files changed

Lines changed: 119 additions & 0 deletions

File tree

tests/perf_event_tests/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
perf_event_tests.tar.gz
2+
perf_event_tests
3+
log

tests/perf_event_tests/Makefile

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
help:
2+
@echo "perf_event_tests (perf fuzzer)"
3+
@echo "Available targets:"
4+
@echo " download # download required sources"
5+
@echo " prepare # download and install dependencies"
6+
@echo " test # run the API tests and ~5 minute fuzz test"
7+
@echo " longfuzz # run ~30 minute fuzz test"
8+
9+
tarball = perf_event_tests.tar.gz
10+
11+
download: $(tarball)
12+
13+
$(tarball):
14+
wget --no-verbose -O $@.tmp https://github.com/deater/perf_event_tests/tarball/master
15+
mv $@.tmp $@
16+
17+
prepare: download
18+
@./install-deps.sh
19+
20+
perf_event_tests: $(tarball)
21+
@./install-deps.sh
22+
+@./build.sh
23+
24+
build: perf_event_tests
25+
26+
test: perf_event_tests
27+
+@./test.sh api-test 5m
28+
29+
shortfuzz: perf_event_tests
30+
+@./test.sh - 2m
31+
32+
longfuzz: perf_event_tests
33+
+@./test.sh - 30m
34+
35+
clean:
36+
rm -rf perf_event_tests log
37+
38+
distclean: clean
39+
rm -f $(tarball)
40+
41+
.PHONY: download prepare build test clean distclean help longfuzz

tests/perf_event_tests/build.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
rm -rf perf_event_tests
6+
tar -xf perf_event_tests.tar.gz
7+
mv deater-perf_event_tests* perf_event_tests
8+
touch perf_event_tests
9+
10+
if [[ -n ${MAKEFLAGS:-} ]]; then
11+
# Don't override existing make flags
12+
jflags=
13+
else
14+
jflags="-j $(nproc)"
15+
fi
16+
17+
echo "Sending output to $PWD/log."
18+
rm -f log
19+
20+
{
21+
cd perf_event_tests
22+
23+
(set -x; make $jflags)
24+
25+
echo "success: perf_event_tests" >&2
26+
27+
} 2>&1 >> log | tee -a log
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
. /etc/os-release
6+
7+
sudo=""
8+
if [[ $(id -u) != 0 ]]; then
9+
sudo="sudo"
10+
fi
11+
12+
if [[ "$ID" == "fedora" ]]; then
13+
(set -x; $sudo dnf -y install make gcc)
14+
elif [[ "$ID_LIKE" == "debian" ]]; then
15+
export DEBIAN_FRONTEND=noninteractive
16+
(set -x; $sudo apt-get -y install build-essential)
17+
else
18+
echo "Unsupported distro!" >&2
19+
exit 1
20+
fi

tests/perf_event_tests/test.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
sudo=""
6+
if [[ $(id -u) != 0 ]]; then
7+
sudo="sudo"
8+
fi
9+
10+
echo "Sending output to $PWD/log."
11+
rm -f log
12+
13+
{
14+
cd perf_event_tests
15+
16+
if [[ "${1-}" == "api-test" ]]; then
17+
(set -x; $sudo ./run_tests.sh)
18+
fi
19+
20+
if [[ -n "${2-}" ]]; then
21+
cd fuzzer
22+
(set -x; timeout --foreground "$2" $sudo ./perf_fuzzer)
23+
cd -
24+
fi
25+
26+
echo "success: perf_event_tests" >&2
27+
28+
} 2>&1 >> log | tee -a log

0 commit comments

Comments
 (0)