blob: eb7070786e8554594f4eb7ae98624541598baedc [file] [log] [blame]
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
damo="../../damo"
BINDIR=$(dirname "$0")
cd "$BINDIR" || exit 1
test_report() {
cmd=$1
test_name=$2
expected=$(realpath "expects/report-$test_name")
result=$(realpath "results/report-$test_name")
eval "python3 $cmd" > "$result" 2> /dev/null
if ! diff -q "$expected" "$result"
then
echo "FAIL report-$test_name"
echo "# for detail, vimdiff $expected $result"
echo "# if this is expected change, cp $result $expected"
exit 1
fi
echo "PASS report-$test_name"
}
mkdir -p results
for filter in nofilter active inactive anon file unmapped hugepage
do
for style in recency-percentiles temperature-percentiles \
recency-sz-hist temperature-sz-hist detailed
do
test_cmd="$damo report access \
--input damon.data.snapshot.$filter \
--style $style"
test_report "$test_cmd" "$style-$filter"
done
done
damo_report_raw="$damo report access --raw_form --input"
test_report "$damo_report_raw damon.data" "raw"
test_report "$damo_report_raw damon.data.json_compressed" "raw"
test_report \
"$damo_report_raw perf.data.script" \
"raw_perf_script"
test_report "$damo report wss -r 1 101 1 --raw_number" "wss"
test_report "$damo report wss -r 1 101 1 --work_time 1000000 --raw_number" \
"wss_worktime_1s"
test_report \
"$damo adjust --aggregate_interval 1000000 && \
$damo_report_raw damon.adjusted.data" \
"aggr_1s_raw"
test_report \
"$damo adjust --skip 30 --aggregate_interval 1000000 && \
$damo_report_raw damon.adjusted.data" \
"aggr_1s_raw_skip_30"
test_report "$damo report nr_regions -r 1 101 1" "nr_regions"
test_report "$damo report heatmap --guide" "heats_guide"
test_report "$damo report heatmap --output raw" "heats"
rm -fr results damon.adjusted.data
echo "PASS" "$(basename "$(pwd)")"