+++ /dev/null
-#!/bin/bash
-
-#
-# libseccomp test output generator
-#
-# Copyright (c) 2013 Red Hat <pmoore@redhat.com>
-# Author: Paul Moore <paul@paul-moore.com>
-#
-
-#
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of version 2.1 of the GNU Lesser General Public License as
-# published by the Free Software Foundation.
-#
-# This library is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
-# for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library; if not, see <http://www.gnu.org/licenses>.
-#
-
-####
-# functions
-
-#
-# Dependency verification
-#
-# Arguments:
-# 1 Dependency to check for
-#
-function verify_deps() {
- [[ -z "$1" ]] && return
- if ! which "$1" >& /dev/null; then
- echo "error: install \"$1\" and include it in your \$PATH"
- exit 1
- fi
-}
-
-#
-# Print out script usage details
-#
-function usage() {
-cat << EOF
-usage: regression [-h] [-d] [-l LABEL]
-
-libseccomp test output generator script
-optional arguments:
- -h show this help message and exit
- -b generate BPF output
- -d generate disassembled BPF output
- -p generate PFC output
- -v perform valgrind checks
- -l [LABEL] specifies label for the test output
-EOF
-}
-
-#
-# Print the test result
-#
-# Arguments:
-# 1 string containing generated test number
-# 2 string containing the test result
-#
-function print_result() {
- printf "Test %s result: %s\n" "$1" "$2"
-}
-
-#
-# Run the tests
-#
-# Arguments:
-# 1 string containing output label
-#
-function run_tests() {
- local batch_name
- local label
- local rc
-
- if [[ -n $1 ]]; then
- label=".$1"
- else
- label=""
- fi
-
- for file in *-sim-*.tests; do
- # extract the batch name from the file name
- batch_name=$(basename $file .tests)
-
- if [[ -x "$batch_name" ]]; then
- if [[ $opt_pfc -eq 1 ]]; then
- ./$batch_name > ${batch_name}${label}.pfc
- rc=$?
- stats_all=$(($stats_all + 1))
- if [[ $rc -eq 0 ]]; then
- print_result "$batch_name [pfc]" "SUCCESS"
- else
- stats_failure=$(($stats_failure + 1))
- print_result "$batch_name [pfc]" "FAILURE"
- fi
- fi
-
- if [[ $opt_bpf -eq 1 ]]; then
- ./$batch_name -b > ${batch_name}${label}.bpf
- rc=$?
- stats_all=$(($stats_all + 1))
- if [[ $rc -eq 0 ]]; then
- print_result "$batch_name [bpf]" "SUCCESS"
- else
- stats_failure=$(($stats_failure + 1))
- print_result "$batch_name [bpf]" "FAILURE"
- fi
- fi
-
- if [[ $opt_disasm -eq 1 ]]; then
- ./$batch_name -b | \
- ../tools/scmp_bpf_disasm > ${batch_name}${label}.bpfd
- rc=$?
- stats_all=$(($stats_all + 1))
- if [[ $rc -eq 0 ]]; then
- print_result "$batch_name [bpfd]" "SUCCESS"
- else
- stats_failure=$(($stats_failure + 1))
- print_result "$batch_name [bpfd]" "FAILURE"
- fi
- fi
-
- if [[ $opt_valgrind -eq 1 ]]; then
- valgrind --tool=memcheck \
- --quiet --error-exitcode=1 \
- --leak-check=full \
- --read-var-info=yes \
- --track-origins=yes \
- --suppressions=valgrind_test.supp \
- -- ./$batch_name -b > /dev/null
- rc=$?
- stats_all=$(($stats_all + 1))
- if [[ $rc -eq 0 ]]; then
- print_result "$batch_name [valgrind]" "SUCCESS"
- else
- stats_failure=$(($stats_failure + 1))
- print_result "$batch_name [valgrind]" "FAILURE"
- fi
- fi
- else
- stats_failure=$(($stats_failure + 1))
- print_result "$batch_name" "FAILURE"
- fi
- done
-
- return
-}
-
-####
-# main
-
-opt_label=
-opt_bpf=0
-opt_disasm=0
-opt_pfc=0
-opt_valgrind=0
-
-while getopts "bphdl:v" opt; do
- case $opt in
- b)
- opt_bpf=1
- ;;
- d)
- opt_disasm=1
- ;;
- l)
- opt_label="$OPTARG"
- ;;
- p)
- opt_pfc=1
- ;;
- v)
- opt_valgrind=1
- ;;
- h|*)
- usage
- exit 1
- ;;
- esac
-done
-
-# verify valgrind
-[[ $opt_valgrind -eq 1 ]] && verify_deps valgrind
-
-stats_all=0
-stats_failure=0
-
-# display the test output and run the requested tests
-echo "=============== $(date) ==============="
-echo "Collecting Test Output (\"testgen $*\")"
-run_tests "$opt_label"
-echo "Test Summary"
-echo " tests run: $stats_all"
-echo " tests failed: $stats_failure"
-echo "============================================================"
-
-# cleanup and exit
-rc=0
-[[ $stats_failure -gt 0 ]] && rc=$(($rc + 2))
-
-exit $rc