Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/usr.bin/xlint/lint1 tests/lint: allow skipping individ...
details: https://anonhg.NetBSD.org/src/rev/a269802505cb
branches: trunk
changeset: 379916:a269802505cb
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Jun 27 10:14:43 2021 +0000
description:
tests/lint: allow skipping individual tests
Depending on the platform, some tests do not make sense or produce
platform-dependent results. Allow these tests to be marked as such.
For example, the test lex_integer.c only works on 64-bit platforms.
Therefore it is disabled on i386 for now since it prints different
warnings there. Even better would be a "lint1-only-on-lpi32" toggle,
but that would need detection of 'sizeof(int)' at runtime.
diffstat:
tests/usr.bin/xlint/lint1/lex_integer.c | 4 ++-
tests/usr.bin/xlint/lint1/lex_integer.exp | 10 ++++----
tests/usr.bin/xlint/lint1/t_integration.sh | 34 ++++++++++++++++++++++-------
3 files changed, 34 insertions(+), 14 deletions(-)
diffs (118 lines):
diff -r a015070d419e -r a269802505cb tests/usr.bin/xlint/lint1/lex_integer.c
--- a/tests/usr.bin/xlint/lint1/lex_integer.c Sun Jun 27 09:22:31 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/lex_integer.c Sun Jun 27 10:14:43 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: lex_integer.c,v 1.1 2021/06/19 08:30:08 rillig Exp $ */
+/* $NetBSD: lex_integer.c,v 1.2 2021/06/27 10:14:43 rillig Exp $ */
# 3 "lex_integer.c"
/*
@@ -7,6 +7,8 @@
* C99 6.4.4.1 "Integer constants"
*/
+/* lint1-not-on-arch: i386 (has 32-bit long) */
+
void sinki(int);
void sinku(unsigned int);
diff -r a015070d419e -r a269802505cb tests/usr.bin/xlint/lint1/lex_integer.exp
--- a/tests/usr.bin/xlint/lint1/lex_integer.exp Sun Jun 27 09:22:31 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/lex_integer.exp Sun Jun 27 10:14:43 2021 +0000
@@ -1,5 +1,5 @@
-lex_integer.c(25): warning: argument #1 is converted from 'long' to 'int' due to prototype [259]
-lex_integer.c(25): warning: conversion of 'long' to 'int' is out of range, arg #1 [295]
-lex_integer.c(30): warning: argument #1 is converted from 'long' to 'int' due to prototype [259]
-lex_integer.c(42): warning: argument #1 is converted from 'unsigned long' to 'unsigned int' due to prototype [259]
-lex_integer.c(42): warning: conversion of 'unsigned long' to 'unsigned int' is out of range, arg #1 [295]
+lex_integer.c(27): warning: argument #1 is converted from 'long' to 'int' due to prototype [259]
+lex_integer.c(27): warning: conversion of 'long' to 'int' is out of range, arg #1 [295]
+lex_integer.c(32): warning: argument #1 is converted from 'long' to 'int' due to prototype [259]
+lex_integer.c(44): warning: argument #1 is converted from 'unsigned long' to 'unsigned int' due to prototype [259]
+lex_integer.c(44): warning: conversion of 'unsigned long' to 'unsigned int' is out of range, arg #1 [295]
diff -r a015070d419e -r a269802505cb tests/usr.bin/xlint/lint1/t_integration.sh
--- a/tests/usr.bin/xlint/lint1/t_integration.sh Sun Jun 27 09:22:31 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/t_integration.sh Sun Jun 27 10:14:43 2021 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: t_integration.sh,v 1.58 2021/06/27 09:22:31 rillig Exp $
+# $NetBSD: t_integration.sh,v 1.59 2021/06/27 10:14:43 rillig Exp $
#
# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -28,16 +28,19 @@
lint1=/usr/libexec/lint1
test_case_names=
+machine_arch="$(sysctl -n hw.machine_arch)"
-extract_flags()
+configure_test_case()
{
- local extract_flags_awk
+ local awk
# shellcheck disable=SC2016
- extract_flags_awk='
+ awk='
BEGIN {
+ machine_arch = "'"$machine_arch"'"
flags = "-g -S -w"
+ skip = 0
}
/^\/\* (lint1-flags|lint1-extra-flags): .*\*\/$/ {
if ($2 == "lint1-flags:")
@@ -45,12 +48,19 @@ extract_flags()
for (i = 3; i < NF; i++)
flags = flags " " $i
}
+ /^\/\* lint1-only-on-arch: .* \*\/$/ && $3 != machine_arch {
+ skip = 1
+ }
+ /^\/\* lint1-not-on-arch: .* \*\/$/ && $3 == machine_arch {
+ skip = 1
+ }
END {
- print flags
+ printf("flags='\''%s'\''\n", flags)
+ printf("skip=%s\n", skip ? "yes" : "no")
}
'
- awk "$extract_flags_awk" "$@"
+ eval "$(awk "$awk" "$1")"
}
# shellcheck disable=SC2155
@@ -60,13 +70,21 @@ check_lint1()
local exp="${src%.c}.exp"
local exp_ln="${src%.c}.ln"
local wrk_ln="${1%.c}.ln"
- local flags="$(extract_flags "$src")"
+ local flags=""
+ local skip=""
if [ ! -f "$exp_ln" ]; then
exp_ln='/dev/null'
wrk_ln='/dev/null'
fi
+ configure_test_case "$src"
+
+ if [ "$skip" = "yes" ]; then
+ atf_check -o 'ignore' echo 'skipped'
+ return
+ fi
+
if [ -f "$exp" ]; then
# shellcheck disable=SC2086
atf_check -s not-exit:0 -o "file:$exp" -e empty \
@@ -77,7 +95,7 @@ check_lint1()
"$lint1" $flags "$src" "$wrk_ln"
fi
- if [ "$src_ln" != '/dev/null' ]; then
+ if [ "$exp_ln" != '/dev/null' ]; then
atf_check -o "file:$exp_ln" cat "$wrk_ln"
fi
}
Home |
Main Index |
Thread Index |
Old Index