Skip to content

Commit 626c222

Browse files
committed
Update conf.at
1 parent 185f83b commit 626c222

File tree

1 file changed

+168
-0
lines changed
  • tests/command-line-options.src

1 file changed

+168
-0
lines changed

tests/command-line-options.src/conf.at

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,171 @@ AT_CHECK([${COBJ} -conf=hello.conf prog.cbl], [1], [],
1717
])
1818

1919
AT_CLEANUP
20+
21+
22+
AT_SETUP([allow search key in rhs])
23+
24+
AT_CHECK([cp ../../../config/allow-key-in-rhs.conf a.conf])
25+
26+
# without SEARCH ALL
27+
AT_DATA([prog.cbl], [
28+
IDENTIFICATION DIVISION.
29+
PROGRAM-ID. prog.
30+
DATA DIVISION.
31+
WORKING-STORAGE SECTION.
32+
PROCEDURE DIVISION.
33+
MAIN-RTN.
34+
DISPLAY "HELLO, WORLD!!".
35+
STOP RUN.
36+
])
37+
AT_CHECK([${COBJ} prog.cbl], [0])
38+
AT_CHECK([${COBJ} -conf=a.conf prog.cbl], [0])
39+
40+
41+
# key item of OCCURS is LEFT hand side on WHEN condition
42+
AT_DATA([prog.cbl], [
43+
IDENTIFICATION DIVISION.
44+
PROGRAM-ID. prog.
45+
DATA DIVISION.
46+
WORKING-STORAGE SECTION.
47+
01 ELEMENT_COUNT PIC 9(03) VALUE 3.
48+
01 RECORD_ARRAY.
49+
02 FILLER OCCURS 3.
50+
03 METRIC_COUNT PIC 9(03).
51+
01 RECORD_ID PIC X(02).
52+
01 RECORD_KEY.
53+
02 RECORD_STRUCT.
54+
03 RECORD_CODE PIC X(04).
55+
03 RECORD_TYPE PIC X(02).
56+
02 SERIAL_NO PIC 9(02).
57+
01 DATA_TABLE.
58+
02 ELEMENT OCCURS 1 TO 150
59+
DEPENDING ON ELEMENT_COUNT
60+
ASCENDING KEY TABLE_KEY INDEXED BY INDEX_K.
61+
03 TABLE_KEY.
62+
04 KEY_CODE.
63+
05 RECORD_CODE_KEY PIC X(04).
64+
05 RECORD_TYPE_KEY PIC X(02).
65+
04 SERIAL_NO_KEY PIC 9(02).
66+
03 FILLER PIC X(02).
67+
03 METRIC_DATA.
68+
04 METRIC_ELEMENT OCCURS 10 INDEXED BY INDEX_J.
69+
05 METER_NO PIC X(08).
70+
05 ADDITION_FLAG PIC X(01).
71+
03 FILLER PIC X(02).
72+
*
73+
PROCEDURE DIVISION.
74+
MAIN_ROUTINE.
75+
SEARCH ALL ELEMENT
76+
AT END
77+
MOVE ZERO TO METRIC_COUNT(1)
78+
GO TO EXIT_ROUTINE
79+
WHEN TABLE_KEY(INDEX_K) = RECORD_KEY
80+
MOVE KEY_CODE(INDEX_K) TO RECORD_ID
81+
SET METRIC_COUNT(1) TO INDEX_K.
82+
EXIT_ROUTINE.
83+
MAIN_EXIT.
84+
STOP RUN.
85+
])
86+
AT_CHECK([${COBJ} prog.cbl], [0])
87+
AT_CHECK([${COBJ} -conf=a.conf prog.cbl], [0])
88+
89+
90+
# key item of OCCURS is RIGHT hand side on WHEN condition
91+
AT_DATA([prog.cbl], [
92+
IDENTIFICATION DIVISION.
93+
PROGRAM-ID. prog.
94+
DATA DIVISION.
95+
WORKING-STORAGE SECTION.
96+
01 ELEMENT_COUNT PIC 9(03) VALUE 3.
97+
01 RECORD_ARRAY.
98+
02 FILLER OCCURS 3.
99+
03 METRIC_COUNT PIC 9(03).
100+
01 RECORD_ID PIC X(02).
101+
01 RECORD_KEY.
102+
02 RECORD_STRUCT.
103+
03 RECORD_CODE PIC X(04).
104+
03 RECORD_TYPE PIC X(02).
105+
02 SERIAL_NO PIC 9(02).
106+
01 DATA_TABLE.
107+
02 ELEMENT OCCURS 1 TO 150
108+
DEPENDING ON ELEMENT_COUNT
109+
ASCENDING KEY TABLE_KEY INDEXED BY INDEX_K.
110+
03 TABLE_KEY.
111+
04 KEY_CODE.
112+
05 RECORD_CODE_KEY PIC X(04).
113+
05 RECORD_TYPE_KEY PIC X(02).
114+
04 SERIAL_NO_KEY PIC 9(02).
115+
03 FILLER PIC X(02).
116+
03 METRIC_DATA.
117+
04 METRIC_ELEMENT OCCURS 10 INDEXED BY INDEX_J.
118+
05 METER_NO PIC X(08).
119+
05 ADDITION_FLAG PIC X(01).
120+
03 FILLER PIC X(02).
121+
*
122+
PROCEDURE DIVISION.
123+
MAIN_ROUTINE.
124+
SEARCH ALL ELEMENT
125+
AT END
126+
MOVE ZERO TO METRIC_COUNT(1)
127+
GO TO EXIT_ROUTINE
128+
WHEN RECORD_KEY = TABLE_KEY(INDEX_K)
129+
MOVE KEY_CODE(INDEX_K) TO RECORD_ID
130+
SET METRIC_COUNT(1) TO INDEX_K.
131+
EXIT_ROUTINE.
132+
MAIN_EXIT.
133+
STOP RUN.
134+
])
135+
AT_CHECK([(${COBJ} prog.cbl | grep "Undeclared key") > a.txt 2>&1], [1])
136+
AT_CHECK([${COBJ} -conf=a.conf prog.cbl], [0])
137+
138+
139+
# only key item on WHEN condition
140+
AT_DATA([prog.cbl], [
141+
IDENTIFICATION DIVISION.
142+
PROGRAM-ID. prog.
143+
DATA DIVISION.
144+
WORKING-STORAGE SECTION.
145+
01 ELEMENT_COUNT PIC 9(03) VALUE 3.
146+
01 RECORD_ARRAY.
147+
02 FILLER OCCURS 3.
148+
03 METRIC_COUNT PIC 9(03).
149+
01 RECORD_ID PIC X(02).
150+
01 RECORD_KEY.
151+
02 RECORD_STRUCT.
152+
03 RECORD_CODE PIC X(04).
153+
03 RECORD_TYPE PIC X(02).
154+
02 SERIAL_NO PIC 9(02).
155+
01 DATA_TABLE.
156+
02 ELEMENT OCCURS 1 TO 150
157+
DEPENDING ON ELEMENT_COUNT
158+
ASCENDING KEY TABLE_KEY INDEXED BY INDEX_K.
159+
03 TABLE_KEY.
160+
04 KEY_CODE.
161+
05 RECORD_CODE_KEY PIC X(04).
162+
05 RECORD_TYPE_KEY PIC X(02).
163+
04 SERIAL_NO_KEY PIC 9(02).
164+
03 FILLER PIC X(02).
165+
03 METRIC_DATA.
166+
04 METRIC_ELEMENT OCCURS 10 INDEXED BY INDEX_J.
167+
05 METER_NO PIC X(08).
168+
05 ADDITION_FLAG PIC X(01).
169+
03 FILLER PIC X(02).
170+
*
171+
PROCEDURE DIVISION.
172+
MAIN_ROUTINE.
173+
SEARCH ALL ELEMENT
174+
AT END
175+
MOVE ZERO TO METRIC_COUNT(1)
176+
GO TO EXIT_ROUTINE
177+
WHEN TABLE_KEY(INDEX_K)
178+
MOVE KEY_CODE(INDEX_K) TO RECORD_ID
179+
SET METRIC_COUNT(1) TO INDEX_K.
180+
EXIT_ROUTINE.
181+
MAIN_EXIT.
182+
STOP RUN.
183+
])
184+
AT_CHECK([(${COBJ} prog.cbl | grep "Invalid type cast") > a.txt 2>&1], [1])
185+
AT_CHECK([(${COBJ} -conf=a.conf a.cbl | grep "Invalid type cast") > a.txt 2>&1], [1])
186+
187+
AT_CLEANUP

0 commit comments

Comments
 (0)