t_error.sh revision 1.1 1 1.1 rillig # $NetBSD: t_error.sh,v 1.1 2023/08/26 10:06:16 rillig Exp $
2 1.1 rillig #
3 1.1 rillig # Copyright (c) 2023 The NetBSD Foundation, Inc.
4 1.1 rillig # All rights reserved.
5 1.1 rillig #
6 1.1 rillig # This code is derived from software contributed to The NetBSD Foundation
7 1.1 rillig # by Roland Illig.
8 1.1 rillig #
9 1.1 rillig # Redistribution and use in source and binary forms, with or without
10 1.1 rillig # modification, are permitted provided that the following conditions
11 1.1 rillig # are met:
12 1.1 rillig # 1. Redistributions of source code must retain the above copyright
13 1.1 rillig # notice, this list of conditions and the following disclaimer.
14 1.1 rillig # 2. Redistributions in binary form must reproduce the above copyright
15 1.1 rillig # notice, this list of conditions and the following disclaimer in the
16 1.1 rillig # documentation and/or other materials provided with the distribution.
17 1.1 rillig #
18 1.1 rillig # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19 1.1 rillig # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20 1.1 rillig # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 1.1 rillig # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22 1.1 rillig # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 1.1 rillig # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 1.1 rillig # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 1.1 rillig # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 1.1 rillig # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 1.1 rillig # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 1.1 rillig # POSSIBILITY OF SUCH DAMAGE.
29 1.1 rillig #
30 1.1 rillig
31 1.1 rillig create_file() {
32 1.1 rillig local fn="$1"; shift
33 1.1 rillig printf '%s\n' "$@" > "$fn"
34 1.1 rillig }
35 1.1 rillig
36 1.1 rillig atf_test_case cc
37 1.1 rillig cc_body() {
38 1.1 rillig create_file code.c \
39 1.1 rillig 'goto error'
40 1.1 rillig create_file err \
41 1.1 rillig 'code.c:1: error: syntax error'
42 1.1 rillig create_file expected \
43 1.1 rillig '/*###1 [cc] error: syntax error%%%*/' \
44 1.1 rillig 'goto error'
45 1.1 rillig
46 1.1 rillig atf_check -o ignore \
47 1.1 rillig error err
48 1.1 rillig atf_check -o 'file:expected' cat code.c
49 1.1 rillig }
50 1.1 rillig
51 1.1 rillig atf_test_case f77
52 1.1 rillig f77_body() {
53 1.1 rillig create_file code.f \
54 1.1 rillig 'doi=1,1,1'
55 1.1 rillig create_file err \
56 1.1 rillig 'Compiler error line 1 of code.f: syntax error'
57 1.1 rillig create_file expected \
58 1.1 rillig 'C###1 [f77] Compiler error line 1 of code.f syntax error%%%' \
59 1.1 rillig 'doi=1,1,1'
60 1.1 rillig
61 1.1 rillig atf_check -o ignore \
62 1.1 rillig error err
63 1.1 rillig atf_check -o 'file:expected' cat code.f
64 1.1 rillig }
65 1.1 rillig
66 1.1 rillig atf_test_case lint
67 1.1 rillig lint_body() {
68 1.1 rillig create_file code.c \
69 1.1 rillig 'goto error'
70 1.1 rillig create_file err \
71 1.1 rillig 'code.c(1): syntax error'
72 1.1 rillig create_file expected \
73 1.1 rillig '/*###1 [lint] syntax error%%%*/' \
74 1.1 rillig 'goto error'
75 1.1 rillig
76 1.1 rillig atf_check -o ignore \
77 1.1 rillig error err
78 1.1 rillig atf_check -o 'file:expected' cat code.c
79 1.1 rillig }
80 1.1 rillig
81 1.1 rillig atf_test_case mod2
82 1.1 rillig mod2_body() {
83 1.1 rillig create_file code.m2 \
84 1.1 rillig 'END.'
85 1.1 rillig create_file err \
86 1.1 rillig 'File code.m2, line 1: missing BEGIN'
87 1.1 rillig create_file expected \
88 1.1 rillig '(*###1 [mod2] missing BEGIN%%%*)' \
89 1.1 rillig 'END.'
90 1.1 rillig
91 1.1 rillig atf_check -o ignore \
92 1.1 rillig error err
93 1.1 rillig atf_check -o 'file:expected' cat code.m2
94 1.1 rillig }
95 1.1 rillig
96 1.1 rillig atf_init_test_cases() {
97 1.1 rillig atf_add_test_case cc
98 1.1 rillig atf_add_test_case f77
99 1.1 rillig atf_add_test_case lint
100 1.1 rillig atf_add_test_case mod2
101 1.1 rillig }
102