Files
NB-076 94400d50d4 feat: add benchmark-programs — 58 telecom COBOL test programs
作为子目录纳入系统,与核心测试管道协同

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-25 09:53:21 +08:00

88 lines
2.7 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. MinimalPgmEdge.
*> ============================================================
*> 最小限プログラム境界テスト (Minimal Program Edge Cases)
*> 型判定下限: どのタイプにも分類できない極小プログラム
*>
*> T1: PROCEDURE DIVISIONだけで何もしない
*> T2: STOP RUNのみ
*> T3: DISPLAYのみ
*> T4: CALL+Gobackのみ (Subprogram最小)
*> T5: IFのみでELSEなし
*> T6: 空PERFORM
*> T7: 88-levelのみ判定 (ファイル入出力なし)
*> T8: 全ての分岐を省略 (fall-through only)
*> ============================================================
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PASS PIC 9(2) VALUE 0.
01 WS-FAIL PIC 9(2) VALUE 0.
01 WS-X PIC 9(1) VALUE 0.
01 WS-Y PIC 9(1) VALUE 1.
PROCEDURE DIVISION.
MAIN.
DISPLAY "MINIMAL-EDGE: Minimal program edge tests"
*> T1: 空PERFORM
ADD 1 TO WS-PASS.
PERFORM EMPTY-PARA.
DISPLAY "T1-EMPTY-PERFORM: PASS".
*> T2: IFのみELSEなし
ADD 1 TO WS-PASS.
IF WS-X = 0
DISPLAY "T2-IF-ONLY: x=0 true (no ELSE) PASS"
END-IF.
*> T3: IF FALSE (何もしない)
ADD 1 TO WS-PASS.
IF WS-X = 1
DISPLAY "T3-IF-FALSE: SHOULD NOT REACH"
ADD 1 TO WS-FAIL
END-IF.
DISPLAY "T3-IF-FALSE: skipped correctly PASS".
*> T4: 88-levelのみ (ファイルなし)
ADD 1 TO WS-PASS.
IF WS-PASS > WS-FAIL
DISPLAY "T4-88-ONLY: relational op PASS"
END-IF.
*> T5: PERFORM VARYING 0回
ADD 1 TO WS-PASS.
PERFORM VARYING WS-X FROM 1 BY 1 UNTIL WS-X > 0
DISPLAY "T5-ZERO-ITER: EXPECTED NOT REACH"
ADD 1 TO WS-FAIL
END-PERFORM.
DISPLAY "T5-ZERO-ITER: 0 iterations PASS".
*> T6: 段落スルー (FROM paragraph)
ADD 1 TO WS-PASS.
GO TO T6-PARA.
T6-END.
DISPLAY "T6-FALL-THRU: reached PASS".
GO TO T6-DONE.
T6-PARA.
DISPLAY " T6-PARA: entering"
GO TO T6-END.
T6-DONE.
CONTINUE.
DISPLAY " "
DISPLAY "MINIMAL-EDGE: PASS=" WS-PASS " FAIL=" WS-FAIL
IF WS-FAIL = 0
DISPLAY "ALL PASSED"
STOP RUN RETURNING 0
ELSE
STOP RUN RETURNING 1
END-IF
.
EMPTY-PARA.
EXIT.
.
END PROGRAM MinimalPgmEdge.