feat: add benchmark-programs — 58 telecom COBOL test programs
作为子目录纳入系统,与核心测试管道协同 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
*> ============================================================
|
||||
*> caller : 计费子程序调用者 (Billing Subprogram Caller)
|
||||
*> Input : WS-N1, WS-N2 (用量参数)
|
||||
*> Output: WS-RESULT (CALL计算结果)
|
||||
*> Coverage: C-N001~N008, C-A001, C-R001, C-R002
|
||||
*> ============================================================
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. caller.
|
||||
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-PGM-NAME PIC X(8) VALUE "callee ".
|
||||
01 WS-N1 PIC 9(10).
|
||||
01 WS-N2 PIC 9(10).
|
||||
01 WS-RESULT1 PIC 9(10).
|
||||
01 WS-RESULT2 PIC 9(10).
|
||||
01 WS-RESULT3 PIC 9(10).
|
||||
01 WS-ALL-PASS PIC X VALUE 'Y'.
|
||||
88 WS-ALL-PASS-YES VALUE 'Y'.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
MAIN.
|
||||
|
||||
*> Test 1: CALL literal program name
|
||||
MOVE 100 TO WS-N1
|
||||
MOVE 200 TO WS-N2
|
||||
CALL "callee" USING WS-N1 WS-N2 WS-RESULT1
|
||||
IF WS-RESULT1 = 300
|
||||
DISPLAY "Test 1: PASS"
|
||||
ELSE
|
||||
DISPLAY "Test 1: FAIL (expected 300, got " WS-RESULT1 ")"
|
||||
MOVE 'N' TO WS-ALL-PASS
|
||||
END-IF
|
||||
|
||||
*> Test 2: CALL variable program name
|
||||
MOVE 10 TO WS-N1
|
||||
MOVE 20 TO WS-N2
|
||||
CALL WS-PGM-NAME USING WS-N1 WS-N2 WS-RESULT2
|
||||
IF WS-RESULT2 = 30
|
||||
DISPLAY "Test 2: PASS"
|
||||
ELSE
|
||||
DISPLAY "Test 2: FAIL (expected 30, got " WS-RESULT2 ")"
|
||||
MOVE 'N' TO WS-ALL-PASS
|
||||
END-IF
|
||||
|
||||
*> Test 3: CALL IS INITIAL (forces subprogram reinitialization)
|
||||
MOVE 1 TO WS-N1
|
||||
MOVE 2 TO WS-N2
|
||||
CALL "callee" IS INITIAL USING WS-N1 WS-N2 WS-RESULT3
|
||||
IF WS-RESULT3 = 3
|
||||
DISPLAY "Test 3: PASS"
|
||||
ELSE
|
||||
DISPLAY "Test 3: FAIL (expected 3, got " WS-RESULT3 ")"
|
||||
MOVE 'N' TO WS-ALL-PASS
|
||||
END-IF
|
||||
|
||||
IF WS-ALL-PASS-YES
|
||||
DISPLAY "25-subprogram: PASS"
|
||||
STOP RUN RETURNING 0
|
||||
ELSE
|
||||
DISPLAY "25-subprogram: FAIL"
|
||||
STOP RUN RETURNING 1
|
||||
END-IF
|
||||
.
|
||||
|
||||
END PROGRAM caller.
|
||||
Reference in New Issue
Block a user