feat: add benchmark-programs — 58 telecom COBOL test programs
作为子目录纳入系统,与核心测试管道协同 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
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.
|
||||
Reference in New Issue
Block a user