Skip to content

Commit 242339f

Browse files
committed
test(*): 添え字範囲外チェックのテストを追加
test(*): Add test code subscript out of bounds 従来のテストでは"-debug"オプションを有効として添え字範囲外エラーを確認していた。 そのため、"-debug"がない状態での添え字範囲外の動作と新規オプションに対するテストを追加した。
1 parent e855113 commit 242339f

2 files changed

Lines changed: 48 additions & 0 deletions

File tree

tests/atlocal.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ TEMPLATE="${abs_srcdir}/data-rep.src"
3737
FLAGS="-std=cobol2002 -debug -Wall ${COBOL_FLAGS}"
3838
FLAGS_NONE=""
3939
FLAGS_JP_COMPAT="${FLAGS} ${CONF_JP_COMPAT}"
40+
FLAGS_JP_COMPAT_NONE="${FLAGS_NONE} ${CONF_JP_COMPAT}"
4041
FLAGS_LIMIT_TEST="${FLAGS} ${CONF_LIMIT_TEST}"
4142
COMPILE="${COBC} -x ${FLAGS}"
4243
COMPILE_DEFAULT="${COBC} -x ${FLAGS_NONE}"
4344
COMPILE_JP_COMPAT="${COBC} -x ${FLAGS_JP_COMPAT}"
45+
COMPILE_JP_COMPAT_DEFAULT="${COBC} -x ${FLAGS_JP_COMPAT_NONE}"
4446
COMPILE_LIMIT_TEST="${COBC} -x ${FLAGS_LIMIT_TEST}"
4547
COMPILE_ONLY="${COBC} -fsyntax-only ${FLAGS}"
4648
COMPILE_ONLY_JP_COMPAT="${COBC} -fsyntax-only ${FLAGS_JP_COMPAT}"

tests/run.src/subscripts.at

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,3 +421,49 @@ AT_CHECK([./prog], [1], ,
421421
])
422422

423423
AT_CLEANUP
424+
425+
426+
AT_SETUP([Subscript out of bounds without debug])
427+
428+
AT_DATA([prog.cob], [
429+
IDENTIFICATION DIVISION.
430+
PROGRAM-ID. prog.
431+
DATA DIVISION.
432+
WORKING-STORAGE SECTION.
433+
01 G.
434+
02 X PIC X OCCURS 10.
435+
01 I PIC 9 VALUE 0.
436+
01 Z PIC X.
437+
PROCEDURE DIVISION.
438+
MOVE Z TO X(I).
439+
STOP RUN.
440+
])
441+
442+
AT_CHECK([${COMPILE_DEFAULT} -o prog prog.cob])
443+
AT_CHECK([./prog], [0])
444+
445+
AT_CLEANUP
446+
447+
448+
AT_SETUP([Subscript out of bounds check option])
449+
450+
AT_DATA([prog.cob], [
451+
IDENTIFICATION DIVISION.
452+
PROGRAM-ID. prog.
453+
DATA DIVISION.
454+
WORKING-STORAGE SECTION.
455+
01 G.
456+
02 X PIC X OCCURS 10.
457+
01 I PIC 9 VALUE 0.
458+
01 Z PIC X.
459+
PROCEDURE DIVISION.
460+
MOVE Z TO X(I).
461+
STOP RUN.
462+
])
463+
464+
AT_CHECK([${COMPILE_JP_COMPAT_DEFAULT} -o prog prog.cob])
465+
AT_CHECK([./prog], [1], ,
466+
[libcob: Subscript of 'X' out of bounds: 0
467+
])
468+
469+
AT_CLEANUP

0 commit comments

Comments
 (0)