Skip to content

Commit dc54b34

Browse files
Update tests
1 parent ddcaa55 commit dc54b34

File tree

8 files changed

+166
-37
lines changed

8 files changed

+166
-37
lines changed

NEWS

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,19 @@ NEWS - user visible changes -*- outline -*-
66

77
* New GnuCOBOL features
88

9+
** at runtime, fatal size exception codes now fail when activated (with
10+
`-fec=ALL` or `-fec=SIZE or its subordinates). Theses exceptions can be
11+
caught with `ON SIZE ERROR` phrases to avoid the program failing when
12+
they are set. The affected exceptions codre are:
13+
EC-SIZE
14+
EC-SIZE-ADDRESS
15+
EC-SIZE-EXPONENTIATIOn
16+
EC-SIZE-OVERFLOW
17+
EC-SIZE-TRUNCATION
18+
EC-SIZE-UNDERFLOW
19+
EC-SIZE-ZERO-DIVIDE
20+
21+
922
** cobc now checks for binary and multi-byte encoded files and early exit
1023
parsing those; the error output for format errors (for example invalid
1124
indicator column) is now limited to 5 per source file

tests/ChangeLog

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,3 @@
1-
2025-10-07 Unknown <unknown@arch-tower>
2-
3-
* testsuite.src/data_binary.at, testsuite.src/data_display.at,
4-
testsuite.src/data_packed.at, testsuite.src/run_extenstions.at,
5-
testsuite.src/run_fundamental.at testsuite.src/run_misc.at: add a
6-
`-fno-ec=EC-SIZE` on tests that rely on a non standard exception
7-
handling
8-
9-
101
2025-05-22 David Declerck <[email protected]>
112

123
* atlocal.in, atlocal_win: set TZ=UTC globally

tests/testsuite.src/data_binary.at

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2261,7 +2261,7 @@ AT_DATA([prog.cob], [
22612261
STOP RUN.
22622262
])
22632263

2264-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
2264+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
22652265
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
22662266

22672267
AT_CLEANUP

tests/testsuite.src/data_display.at

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ AT_DATA([prog.cob], [
526526
STOP RUN.
527527
])
528528

529-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
529+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
530530
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
531531

532532
AT_CLEANUP
@@ -8729,7 +8729,7 @@ AT_DATA([prog.cob], [
87298729
DISPLAY 'EXPECTED ==> ' XPC-FLD0499E.
87308730
])
87318731

8732-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
8732+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
87338733
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
87348734

87358735
AT_DATA([prog2.cob], [
@@ -16933,7 +16933,7 @@ AT_DATA([prog2.cob], [
1693316933
DISPLAY 'EXPECTED ==> ' XPC-FLD0999E.
1693416934
])
1693516935

16936-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog2.cob], [0], [], [])
16936+
AT_CHECK([$COMPILE -fno-ec=size prog2.cob], [0], [], [])
1693716937
AT_CHECK([$COBCRUN_DIRECT ./prog2], [0], [], [])
1693816938

1693916939
AT_CLEANUP
@@ -22975,7 +22975,7 @@ AT_DATA([prog.cob], [
2297522975
DISPLAY 'EXPECTED ==> ' XPC-FLD0499B.
2297622976
])
2297722977

22978-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
22978+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
2297922979
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
2298022980

2298122981
AT_DATA([prog2.cob], [
@@ -29023,7 +29023,7 @@ AT_DATA([prog2.cob], [
2902329023
DISPLAY 'EXPECTED ==> ' XPC-FLD0999B.
2902429024
])
2902529025

29026-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog2.cob], [0], [], [])
29026+
AT_CHECK([$COMPILE -fno-ec=size prog2.cob], [0], [], [])
2902729027
AT_CHECK([$COBCRUN_DIRECT ./prog2], [0], [], [])
2902829028

2902929029
AT_CLEANUP

tests/testsuite.src/data_packed.at

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2227,7 +2227,7 @@ AT_DATA([prog.cob], [
22272227
STOP RUN.
22282228
])
22292229

2230-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
2230+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
22312231
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
22322232

22332233
AT_CLEANUP
@@ -20528,7 +20528,7 @@ AT_DATA([prog.cob], [
2052820528
DISPLAY 'EXPECTED ==> ' XPC-FLD0499E.
2052920529
])
2053020530

20531-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
20531+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
2053220532
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
2053320533

2053420534
AT_DATA([prog2.cob], [
@@ -28737,7 +28737,7 @@ AT_DATA([prog2.cob], [
2873728737
DISPLAY 'EXPECTED ==> ' XPC-FLD0999E.
2873828738
])
2873928739

28740-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog2.cob], [0], [], [])
28740+
AT_CHECK([$COMPILE -fno-ec=size prog2.cob], [0], [], [])
2874128741
AT_CHECK([$COBCRUN_DIRECT ./prog2], [0], [], [])
2874228742

2874328743
AT_CLEANUP
@@ -34829,7 +34829,7 @@ AT_DATA([prog.cob], [
3482934829
DISPLAY 'EXPECTED ==> ' HEX-OF (XPC-FLD0499B).
3483034830
])
3483134831

34832-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
34832+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
3483334833
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
3483434834

3483534835
AT_DATA([prog2.cob], [
@@ -40876,7 +40876,7 @@ AT_DATA([prog2.cob], [
4087640876
DISPLAY 'EXPECTED ==> ' HEX-OF (XPC-FLD0999B).
4087740877
])
4087840878

40879-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog2.cob], [0], [], [])
40879+
AT_CHECK([$COMPILE -fno-ec=size prog2.cob], [0], [], [])
4088040880
AT_CHECK([$COBCRUN_DIRECT ./prog2], [0], [], [])
4088140881

4088240882
AT_CLEANUP

tests/testsuite.src/run_extensions.at

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5477,7 +5477,7 @@ AT_DATA([prog.cob], [
54775477
STOP RUN.
54785478
])
54795479

5480-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE -facu-literal=ok -fno-trunc prog.cob], [0], [], [])
5480+
AT_CHECK([$COMPILE -fno-ec=size -facu-literal=ok -fno-trunc prog.cob], [0], [], [])
54815481

54825482
AT_CHECK([$COBCRUN_DIRECT ./prog], [0],
54835483
[Test using PIC XX COMP-X
@@ -5556,7 +5556,7 @@ AT_DATA([prog.cob], [
55565556
])
55575557

55585558
# also syntax-checking MF aliases...
5559-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE -std=mf -fno-trunc prog.cob], [0], [], [])
5559+
AT_CHECK([$COMPILE -fno-ec=size -std=mf -fno-trunc prog.cob], [0], [], [])
55605560

55615561
AT_CHECK([$COBCRUN_DIRECT ./prog], [0],
55625562
[Using PIC XX COMP-X

tests/testsuite.src/run_fundamental.at

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6647,7 +6647,7 @@ AT_DATA([prog.cob], [
66476647
GOBACK.
66486648
])
66496649

6650-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [],
6650+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [],
66516651
[prog.cob:14: warning: divide by constant ZERO
66526652
])
66536653
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
@@ -7378,7 +7378,7 @@ AT_DATA([prog.cob], [
73787378
GOBACK.
73797379
])
73807380

7381-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob])
7381+
AT_CHECK([$COMPILE -fno-ec=size prog.cob])
73827382
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
73837383

73847384
AT_CLEANUP

tests/testsuite.src/run_misc.at

Lines changed: 138 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2697,7 +2697,7 @@ AT_DATA([prog.cob], [
26972697
STOP RUN.
26982698
])
26992699

2700-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
2700+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
27012701
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
27022702

27032703
AT_CLEANUP
@@ -7446,7 +7446,7 @@ AT_DATA([prog.cob], [
74467446
.
74477447
])
74487448

7449-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
7449+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
74507450
AT_CHECK([$COBCRUN_DIRECT ./prog], [0],
74517451
[EC-SIZE-OVERFLOW
74527452
prog; ; 10
@@ -11733,7 +11733,7 @@ AT_DATA([prog.cob], [
1173311733
END PROGRAM prog.
1173411734
])
1173511735

11736-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [],
11736+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [],
1173711737
[prog.cob:10: warning: value size exceeds data size
1173811738
prog.cob:10: note: value is 30000
1173911739
prog.cob:7: note: 'x' defined here as PIC 9(4)
@@ -12741,7 +12741,7 @@ AT_DATA([prog.cob], [
1274112741
END-IF.
1274212742
STOP RUN.
1274312743
])
12744-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
12744+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
1274512745

1274612746
AT_CHECK([$COBCRUN_DIRECT ./prog], [0],
1274712747
[Simple Compute RSLT IS 400
@@ -12897,7 +12897,7 @@ AT_DATA([prog.cob], [
1289712897
STOP RUN.
1289812898
])
1289912899

12900-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE -farithmetic-osvs prog.cob], [0], [],
12900+
AT_CHECK([$COMPILE -fno-ec=size -farithmetic-osvs prog.cob], [0], [],
1290112901
[prog.cob: in paragraph 'MAIN':
1290212902
prog.cob:19: warning: precision of result may change with arithmetic-osvs
1290312903
prog.cob:21: warning: precision of result may change with arithmetic-osvs
@@ -13999,7 +13999,7 @@ AT_DATA([prog.cob], [
1399913999
.
1400014000
])
1400114001

14002-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
14002+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
1400314003
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
1400414004
AT_CLEANUP
1400514005

@@ -14030,7 +14030,7 @@ AT_DATA([prog.cob], [
1403014030
.
1403114031
])
1403214032

14033-
AT_CHECK([$COMPILE -fno-ec=EC-SIZE prog.cob], [0], [], [])
14033+
AT_CHECK([$COMPILE -fno-ec=size prog.cob], [0], [], [])
1403414034
AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
1403514035
AT_CLEANUP
1403614036

@@ -14039,7 +14039,7 @@ AT_SETUP([Constant Expressions])
1403914039
AT_KEYWORDS([runmisc condition expression])
1404014040

1404114041
AT_DATA([prog.cob], [
14042-
IDENTIFICATION DIVISION.
14042+
IDENTIFICATION DIVISION
1404314043
PROGRAM-ID. prog.
1404414044
DATA DIVISION.
1404514045
WORKING-STORAGE SECTION.
@@ -15693,8 +15693,8 @@ AT_DATA([prog.cob], [
1569315693
DATA DIVISION.
1569415694
WORKING-STORAGE SECTION.
1569515695
01 LARGE-VALUE PIC 9(3) VALUE 999.
15696-
01 SMALL-VALUE PIC 9(3) VALUE 999.
15697-
01 RESULT PIC 9(3) VALUE 999.
15696+
01 SMALL-VALUE PIC 9(3) VALUE 1.
15697+
01 RESULT PIC 9(3).
1569815698
PROCEDURE DIVISION.
1569915699
ADD SMALL-VALUE TO LARGE-VALUE
1570015700
GIVING RESULT.
@@ -15713,8 +15713,8 @@ AT_DATA([prog1.cob], [
1571315713
DATA DIVISION.
1571415714
WORKING-STORAGE SECTION.
1571515715
01 LARGE-VALUE PIC 9(3) VALUE 999.
15716-
01 SMALL-VALUE PIC 9(3) VALUE 999.
15717-
01 RESULT PIC 9(3) VALUE 999.
15716+
01 SMALL-VALUE PIC 9(3) VALUE 1.
15717+
01 RESULT PIC 9(3).
1571815718
PROCEDURE DIVISION.
1571915719
ADD SMALL-VALUE TO LARGE-VALUE
1572015720
GIVING RESULT
@@ -15727,6 +15727,131 @@ AT_DATA([prog1.cob], [
1572715727
AT_CHECK([$COMPILE prog1.cob], [0], [], [])
1572815728
AT_CHECK([$COBCRUN_DIRECT ./prog1], [0],
1572915729
[SIZE ERROR detected
15730-
999
15730+
000
1573115731
], [])
15732+
15733+
AT_DATA([prog2.cob], [
15734+
IDENTIFICATION DIVISION.
15735+
PROGRAM-ID. prog.
15736+
DATA DIVISION.
15737+
WORKING-STORAGE SECTION.
15738+
01 LARGE-VALUE PIC 9(3) VALUE 999.
15739+
01 SMALL-VALUE PIC 9(3) VALUE 1.
15740+
01 RESULT PIC 9(3).
15741+
PROCEDURE DIVISION.
15742+
COMPUTE LARGE-VALUE = LARGE-VALUE - (999 * SMALL-VALUE).
15743+
DIVIDE SMALL-VALUE BY LARGE-VALUE
15744+
GIVING RESULT.
15745+
DISPLAY RESULT.
15746+
STOP RUN.
15747+
])
15748+
15749+
AT_CHECK([$COMPILE prog2.cob], [0], [], [])
15750+
AT_CHECK([$COBCRUN_DIRECT ./prog2], [1],
15751+
[], [libcob: prog2.cob:11: error: unhandled fatal exception code: EC-SIZE-ZERO-DIVIDE
15752+
])
15753+
15754+
AT_DATA([prog3.cob], [
15755+
IDENTIFICATION DIVISION.
15756+
PROGRAM-ID. prog.
15757+
DATA DIVISION.
15758+
WORKING-STORAGE SECTION.
15759+
01 LARGE-VALUE PIC 9(3) VALUE 999.
15760+
01 SMALL-VALUE PIC 9(3) VALUE 1.
15761+
01 RESULT PIC 9(3).
15762+
PROCEDURE DIVISION.
15763+
COMPUTE LARGE-VALUE = LARGE-VALUE - SMALL-VALUE.
15764+
DIVIDE SMALL-VALUE BY LARGE-VALUE
15765+
GIVING RESULT
15766+
ON SIZE ERROR
15767+
DISPLAY "SIZE ERROR detected".
15768+
DISPLAY RESULT.
15769+
STOP RUN.
15770+
])
15771+
15772+
AT_CHECK([$COMPILE prog3.cob], [0], [], [])
15773+
AT_CHECK([$COBCRUN_DIRECT ./prog3], [0],
15774+
[000
15775+
], [])
15776+
15777+
AT_DATA([prog4.cob], [
15778+
IDENTIFICATION DIVISION.
15779+
PROGRAM-ID. prog.
15780+
DATA DIVISION.
15781+
WORKING-STORAGE SECTION.
15782+
01 TEST-VALUE PIC S9.
15783+
PROCEDURE DIVISION.
15784+
COMPUTE TEST-VALUE ROUNDED MODE PROHIBITED
15785+
= 2.49.
15786+
DISPLAY TEST-VALUE.
15787+
STOP RUN.
15788+
])
15789+
15790+
AT_CHECK([$COMPILE prog4.cob], [0], [], [])
15791+
AT_CHECK([$COBCRUN_DIRECT ./prog4], [1],
15792+
[], [libcob: prog4.cob:8: error: unhandled fatal exception code: EC-SIZE-TRUNCATION
15793+
])
15794+
15795+
15796+
AT_DATA([prog5.cob], [
15797+
IDENTIFICATION DIVISION.
15798+
PROGRAM-ID. prog.
15799+
DATA DIVISION.
15800+
WORKING-STORAGE SECTION.
15801+
01 TEST-VALUE PIC S9.
15802+
PROCEDURE DIVISION.
15803+
COMPUTE TEST-VALUE ROUNDED MODE PROHIBITED
15804+
= 2.49
15805+
ON SIZE ERROR
15806+
DISPLAY "SIZE ERROR detected".
15807+
DISPLAY TEST-VALUE.
15808+
STOP RUN.
15809+
])
15810+
15811+
AT_CHECK([$COMPILE prog5.cob], [0], [], [])
15812+
AT_CHECK([$COBCRUN_DIRECT ./prog5], [0],
15813+
[SIZE ERROR detected
15814+
+0
15815+
], [])
15816+
15817+
AT_DATA([prog6.cob], [
15818+
IDENTIFICATION DIVISION.
15819+
PROGRAM-ID. prog.
15820+
DATA DIVISION.
15821+
WORKING-STORAGE SECTION.
15822+
01 TEST-VALUE PIC S9 VALUE 0.
15823+
PROCEDURE DIVISION.
15824+
COMPUTE TEST-VALUE
15825+
= TEST-VALUE ** TEST-VALUE.
15826+
DISPLAY TEST-VALUE.
15827+
STOP RUN.
15828+
])
15829+
15830+
AT_CHECK([$COMPILE prog6.cob], [0], [], [])
15831+
AT_CHECK([$COBCRUN_DIRECT ./prog6], [1],
15832+
[], [libcob: prog6.cob:8: error: unhandled fatal exception code: EC-SIZE-EXPONENTIATION
15833+
])
15834+
15835+
AT_DATA([prog7.cob], [
15836+
IDENTIFICATION DIVISION.
15837+
PROGRAM-ID. prog.
15838+
DATA DIVISION.
15839+
WORKING-STORAGE SECTION.
15840+
01 TEST-VALUE PIC S9 VALUE 0.
15841+
PROCEDURE DIVISION.
15842+
COMPUTE TEST-VALUE
15843+
= TEST-VALUE ** TEST-VALUE
15844+
ON SIZE ERROR
15845+
DISPLAY "SIZE ERROR detected".
15846+
DISPLAY TEST-VALUE.
15847+
STOP RUN.
15848+
])
15849+
15850+
AT_CHECK([$COMPILE prog7.cob], [0], [], [])
15851+
AT_CHECK([$COBCRUN_DIRECT ./prog7], [0],
15852+
[SIZE ERROR detected
15853+
+1
15854+
], [])
15855+
15856+
1573215857
AT_CLEANUP

0 commit comments

Comments
 (0)