Module Name: src
Committed By: rillig
Date: Sun Jul 11 22:41:36 UTC 2021
Modified Files:
src/tests/usr.bin/xlint/lint1: t_integration.sh
Log Message:
tests/lint: rework ATF test driver
To skip tests that work only on particular platforms, a simple 'eval'
from the shell does not work since it does not exit on failure. Fix
this by storing the commands in a local variable first.
Remove configuration knobs 'lint1-only-if-arch' and 'lint1-skip-if-arch'
since they are unused.
When skipping a test, actually mark it as skipped in the ATF statistics.
To generate a diff of this commit:
cvs rdiff -u -r1.66 -r1.67 src/tests/usr.bin/xlint/lint1/t_integration.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/usr.bin/xlint/lint1/t_integration.sh
diff -u src/tests/usr.bin/xlint/lint1/t_integration.sh:1.66 src/tests/usr.bin/xlint/lint1/t_integration.sh:1.67
--- src/tests/usr.bin/xlint/lint1/t_integration.sh:1.66 Tue Jun 29 13:58:13 2021
+++ src/tests/usr.bin/xlint/lint1/t_integration.sh Sun Jul 11 22:41:36 2021
@@ -1,4 +1,4 @@
-# $NetBSD: t_integration.sh,v 1.66 2021/06/29 13:58:13 rillig Exp $
+# $NetBSD: t_integration.sh,v 1.67 2021/07/11 22:41:36 rillig Exp $
#
# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -65,12 +65,12 @@ configure_test_case()
function platform_has(prop) {
if (!match(prop, /^(schar|uchar|ilp32|lp64|int|long|ldbl-64|ldbl-96|ldbl-128)$/)) {
- printf("bad property '\''%s'\''\n", prop) > "/dev/stderr";
- exit(1);
+ printf("bad property '\''%s'\''\n", prop) > "/dev/stderr"
+ exit(1)
}
if (platform[machine_arch] == "") {
- printf("bad machine_arch '\''%s'\''\n", machine_arch) > "/dev/stderr";
- exit(1);
+ printf("bad machine_arch '\''%s'\''\n", machine_arch) > "/dev/stderr"
+ exit(1)
}
return match(" " platform[machine_arch] " ", " " prop " ")
}
@@ -78,9 +78,7 @@ configure_test_case()
BEGIN {
machine_arch = "'"$machine_arch"'"
flags = "-g -S -w"
- seen_only_on_arch = 0
- match_only_on_arch = 0
- skip = 0
+ skip = "no"
}
$1 == "/*" && $2 ~ /^lint1-/ && $NF == "*/" {
if ($2 == "lint1-flags:" || $2 == "lint1-extra-flags:") {
@@ -89,29 +87,21 @@ configure_test_case()
for (i = 3; i < NF; i++)
flags = flags " " $i
}
- if ($2 == "lint1-only-if-arch") {
- seen_only_on_arch = 1
- if ($3 == machine_arch)
- match_only_on_arch = 1
- }
- if ($2 == "lint1-skip-if-arch" && $3 == machine_arch)
- skip = 1
if ($2 == "lint1-only-if" && !platform_has($3))
- skip = 1
+ skip = "yes"
if ($2 == "lint1-skip-if" && platform_has($3))
- skip = 1
+ skip = "yes"
}
END {
- if (seen_only_on_arch && !match_only_on_arch)
- skip = 1
-
printf("flags='\''%s'\''\n", flags)
- printf("skip=%s\n", skip ? "yes" : "no")
+ printf("skip=%s\n", skip)
}
'
- eval "$(awk "$awk" "$1")"
+ local config
+ config="$(awk "$awk" "$1")" || exit 1
+ eval "$config"
}
# shellcheck disable=SC2155
@@ -129,11 +119,10 @@ check_lint1()
wrk_ln='/dev/null'
fi
- configure_test_case "$src"
+ configure_test_case "$src" # sets 'skip' and 'flags'
if [ "$skip" = "yes" ]; then
- atf_check -o 'ignore' echo 'skipped'
- return
+ atf_skip "unsuitable platform"
fi
if [ -f "$exp" ]; then