94400d50d4
作为子目录纳入系统,与核心测试管道协同 Co-Authored-By: Claude <noreply@anthropic.com>
67 lines
2.2 KiB
COBOL
67 lines
2.2 KiB
COBOL
*> ============================================================
|
|
*> 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.
|