mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 00:14:44 +01:00
parser: equality tests: add the ability have tests that are a known problem
currently the equality tests require the tests to PASS as known equality or inequality. Add the ability to add tests that are a known problem and are expected to fail the equality, or inequality test. This is done by using verify_binary_xequality verify_binary_xinequality This allows new tests to be added to document a known issue, without having to develop the fix for the issue. The use of this facility is expected to be temporary, so any test marked as xequality or xinequality will be noisy but not fail the other tests until they are fixed, at which point they will cause the tests to fail to force them to be updated to the correct equality or inequality test. Signed-off-by: John Johansen <john.johansen@canonical.com>
This commit is contained in:
parent
420945139c
commit
b81ea65c1c
1 changed files with 36 additions and 1 deletions
|
@ -57,7 +57,8 @@ verify_binary()
|
|||
shift
|
||||
shift
|
||||
|
||||
if [ "$t" != "equality" ] && [ "$t" != "inequality" ]
|
||||
if [ "$t" != "equality" ] && [ "$t" != "inequality" ] && \
|
||||
[ "$t" != "xequality" ] && [ "$t" != "xinequality" ]
|
||||
then
|
||||
printf "\nERROR: Unknown test mode:\n%s\n\n" "$t" 1>&2
|
||||
((errors++))
|
||||
|
@ -91,6 +92,17 @@ verify_binary()
|
|||
"$good_hash" "$hash" "$profile" 1>&2
|
||||
((fails++))
|
||||
((ret++))
|
||||
elif [ "$t" == "xequality" ] && [ "$hash" == "$good_hash" ]
|
||||
then
|
||||
if [ -z "$verbose" ] ; then printf "Binary %s %s" "$t" "$desc" ; fi
|
||||
printf "\nunexpected PASS: equality test with known problem, Hash values match\n" 2>&1
|
||||
printf "known-good (%s) == profile-under-test (%s) for the following profile:\n%s\n\n" \
|
||||
"$good_hash" "$hash" "$profile" 1>&2
|
||||
((fails++))
|
||||
((ret++))
|
||||
elif [ "$t" == "xequality" ] && [ "$hash" != "$good_hash" ]
|
||||
then
|
||||
printf "\nknown problem %s %s: unchanged" "$t" "$desc" 1>&2
|
||||
elif [ "$t" == "inequality" ] && [ "$hash" == "$good_hash" ]
|
||||
then
|
||||
if [ -z "$verbose" ] ; then printf "Binary %s %s" "$t" "$desc" ; fi
|
||||
|
@ -99,6 +111,17 @@ verify_binary()
|
|||
"$good_hash" "$hash" "$profile" 1>&2
|
||||
((fails++))
|
||||
((ret++))
|
||||
elif [ "$t" == "xinequality" ] && [ "$hash" != "$good_hash" ]
|
||||
then
|
||||
if [ -z "$verbose" ] ; then printf "Binary %s %s" "$t" "$desc" ; fi
|
||||
printf "\nunexpected PASS: inequality test with known problem, Hash values do not match\n" 2>&1
|
||||
printf "known-good (%s) != profile-under-test (%s) for the following profile:\n%s\n\n" \
|
||||
"$good_hash" "$hash" "$profile" 1>&2
|
||||
((fails++))
|
||||
((ret++))
|
||||
elif [ "$t" == "xinequality" ] && [ "$hash" == "$good_hash" ]
|
||||
then
|
||||
printf "\nknown problem %s %s: unchanged" "$t" "$desc" 1>&2
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -119,11 +142,23 @@ verify_binary_equality()
|
|||
verify_binary "equality" "$@"
|
||||
}
|
||||
|
||||
# test we want to be equal but is currently a known problem
|
||||
verify_binary_xequality()
|
||||
{
|
||||
verify_binary "xequality" "$@"
|
||||
}
|
||||
|
||||
verify_binary_inequality()
|
||||
{
|
||||
verify_binary "inequality" "$@"
|
||||
}
|
||||
|
||||
# test we want to be not equal but is currently a know problem
|
||||
verify_binary_xinequality()
|
||||
{
|
||||
verify_binary "xinequality" "$@"
|
||||
}
|
||||
|
||||
# kernel_features - test whether path(s) are present
|
||||
# $@: feature path(s) to test
|
||||
# Returns: 0 and outputs "true" if all paths exist
|
||||
|
|
Loading…
Add table
Reference in a new issue