|
Packit Service |
8eee21 |
#!/bin/bash
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# libseccomp test diff generator
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# Copyright (c) 2013 Red Hat <pmoore@redhat.com>
|
|
Packit Service |
8eee21 |
# Author: Paul Moore <paul@paul-moore.com>
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# This library is free software; you can redistribute it and/or modify it
|
|
Packit Service |
8eee21 |
# under the terms of version 2.1 of the GNU Lesser General Public License as
|
|
Packit Service |
8eee21 |
# published by the Free Software Foundation.
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# This library is distributed in the hope that it will be useful, but WITHOUT
|
|
Packit Service |
8eee21 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
Packit Service |
8eee21 |
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
Packit Service |
8eee21 |
# for more details.
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# You should have received a copy of the GNU Lesser General Public License
|
|
Packit Service |
8eee21 |
# along with this library; if not, see <http://www.gnu.org/licenses>.
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
####
|
|
Packit Service |
8eee21 |
# functions
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# Print out script usage details
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
function usage() {
|
|
Packit Service |
8eee21 |
cat << EOF
|
|
Packit Service |
8eee21 |
usage: regression [-h] LABEL_1 LABEL_2
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
libseccomp test diff generator script
|
|
Packit Service |
8eee21 |
optional arguments:
|
|
Packit Service |
8eee21 |
-h show this help message and exit
|
|
Packit Service |
8eee21 |
EOF
|
|
Packit Service |
8eee21 |
}
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# Print the test header
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# Arguments:
|
|
Packit Service |
8eee21 |
# 1 string containing generated test number
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
function print_test() {
|
|
Packit Service |
8eee21 |
printf "Test %s comparison:\n" "$1"
|
|
Packit Service |
8eee21 |
}
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# Compare the tests
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
# Arguments:
|
|
Packit Service |
8eee21 |
# 1 string containing first test label
|
|
Packit Service |
8eee21 |
# 2 string containing second test label
|
|
Packit Service |
8eee21 |
#
|
|
Packit Service |
8eee21 |
function diff_tests() {
|
|
Packit Service |
8eee21 |
local batch_name
|
|
Packit Service |
8eee21 |
local label_a
|
|
Packit Service |
8eee21 |
local label_b
|
|
Packit Service |
8eee21 |
local file_a
|
|
Packit Service |
8eee21 |
local file_b
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
if [[ -n $1 ]]; then
|
|
Packit Service |
8eee21 |
label_a=".$1"
|
|
Packit Service |
8eee21 |
else
|
|
Packit Service |
8eee21 |
label_a=""
|
|
Packit Service |
8eee21 |
fi
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
if [[ -n $2 ]]; then
|
|
Packit Service |
8eee21 |
label_b=".$2"
|
|
Packit Service |
8eee21 |
else
|
|
Packit Service |
8eee21 |
label_b=""
|
|
Packit Service |
8eee21 |
fi
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
for file in *-sim-*.tests; do
|
|
Packit Service |
8eee21 |
# extract the batch name from the file name
|
|
Packit Service |
8eee21 |
batch_name=$(basename $file .tests)
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
print_test "$batch_name"
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
file_a="${batch_name}${label_a}"
|
|
Packit Service |
8eee21 |
file_b="${batch_name}${label_b}"
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
if [[ -r "$file_a.pfc" && -r "$file_b.pfc" ]]; then
|
|
Packit Service |
8eee21 |
diff -pu "$file_a.pfc" "$file_b.pfc"
|
|
Packit Service |
8eee21 |
fi
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
if [[ -r "$file_a.bpf" && -r "$file_b.bpf" ]]; then
|
|
Packit Service |
8eee21 |
diff -pu "$file_a.bpf" "$file_b.bpf"
|
|
Packit Service |
8eee21 |
fi
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
if [[ -r "$file_a.bpfd" && -r "$file_b.bpfd" ]]; then
|
|
Packit Service |
8eee21 |
diff -pu "$file_a.bpfd" "$file_b.bpfd"
|
|
Packit Service |
8eee21 |
fi
|
|
Packit Service |
8eee21 |
done
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
return
|
|
Packit Service |
8eee21 |
}
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
####
|
|
Packit Service |
8eee21 |
# main
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
opt_label=
|
|
Packit Service |
8eee21 |
opt_disasm=0
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
while getopts "h" opt; do
|
|
Packit Service |
8eee21 |
case $opt in
|
|
Packit Service |
8eee21 |
h|*)
|
|
Packit Service |
8eee21 |
usage
|
|
Packit Service |
8eee21 |
exit 1
|
|
Packit Service |
8eee21 |
;;
|
|
Packit Service |
8eee21 |
esac
|
|
Packit Service |
8eee21 |
done
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
stats_all=0
|
|
Packit Service |
8eee21 |
stats_failure=0
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
# display the test output and run the requested tests
|
|
Packit Service |
8eee21 |
echo "=============== $(date) ==============="
|
|
Packit Service |
8eee21 |
echo "Comparing Test Output (\"testdiff $*\")"
|
|
Packit Service |
8eee21 |
diff_tests "$1" "$2"
|
|
Packit Service |
8eee21 |
echo "============================================================"
|
|
Packit Service |
8eee21 |
|
|
Packit Service |
8eee21 |
# exit
|
|
Packit Service |
8eee21 |
exit 0
|