skip_if_no_cs_etm_event || exit 2
+if [ "$(id -u)" != 0 ]; then
+ # Requires root for -C and system wide tests
+ echo "[Skip] No root permission"
+ exit 2
+fi
+
perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
file=$(mktemp /tmp/temporary_file.XXXXX)
branch_search="\sbl${sep}b${sep}b.ne${sep}b.eq${sep}cbz\s"
## Test kernel ##
-if [ -e /proc/kcore ]; then
+if [ "$(id -u)" == 0 ] && [ -e /proc/kcore ]; then
echo "Testing kernel disassembly"
perf record -o ${perfdata} -e cs_etm//k --kcore -- touch $file > /dev/null 2>&1
perf script -i ${perfdata} -s python:${script_path} -- \
grep -q -e ${branch_search} ${file}
echo "Found kernel branches"
else
- # kcore is required for correct kernel decode due to runtime code patching
- echo "No kcore, skipping kernel test"
+ # Root and kcore are required for correct kernel decode due to runtime code patching
+ echo "No root or kcore, skipping kernel test"
fi
## Test user ##