aboutsummaryrefslogtreecommitdiff
path: root/tests/epp.at
blob: 2bf7e75d77b7ba94cd6aec8718191aba7834fa58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# This file is part of grecs  -*- Autotest -*-
# Copyright (C) 2021 Sergey Poznyakoff
#
# Grecs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# Grecs 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Grecs.  If not, see <http://www.gnu.org/licenses/>.
AT_SETUP([External preprocessor])

AT_CHECK([m4 -s </dev/null 2>/dev/null || AT_SKIP_TEST])

AT_CHECK([
AT_DATA([input],
[define(`X',`cupidatat non proident, sunt in culpa
qui officia deserunt mollit')dnl
Duis aute irure dolor X anim id est laborum.
])
gcfpp -pm4 input
],
[0],
[#line 1 "input"
Duis aute irure dolor cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.
])

AT_CHECK([
AT_DATA([input],
[define(`FWD',`forward {
   address "$1";
   dist $2;
}')dnl
id 1;
FWD(foo, 10)
test "end";
])
gcffmt -preproc=m4 input
],
[0],
[.id: "1"
.forward.address: "foo"
.forward.dist: "10"
.test: "end"
])

#
# Check the pp-setup file
#
AT_CHECK([
mkdir inc
AT_DATA([inc/pp-setup],
[define(`FWD',`forward {
   address "$1";
   dist $2;
}')
])

AT_DATA([input],
[foo X;
FWD(bar,15)
])

gcffmt -preproc=m4 -I$(pwd)/inc input
],
[0],
[.foo: "X"
.forward.address: "bar"
.forward.dist: "15"
])

AT_CLEANUP

Return to:

Send suggestions and report system problems to the System administrator.