Blame tests/testdiff

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