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

191 lines
8.0 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. TABEGIN.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CON-FLAG-ON PIC S9(04) COMP VALUE 1.
01 CON-NORMAL PIC S9(04) COMP VALUE 0.
01 CON-STATUS-OFF PIC S9(08) COMP VALUE 0.
01 CON-COMMIT-MAX PIC 9(04) COMP VALUE 5.
01 WRK-COMMIT-COUNT PIC 9(04) COMP.
01 WRK-TARIFF-COUNT PIC 9(02) COMP VALUE 5.
01 WRK-TARIFF-TABLE.
03 TP-ENTRY OCCURS 5 TIMES.
05 TP-CODE PIC X(03).
05 TP-NAME PIC X(08).
05 TP-BASE-FEE PIC 9(09) COMP.
05 TP-UNIT-PRICE PIC 9(04) COMP.
05 TP-FREE-SEC PIC 9(09) COMP.
05 TP-OVER-PRICE PIC 9(04) COMP.
05 TP-ROAM-PRICE PIC 9(04) COMP.
05 TP-SMS-PRICE PIC 9(04) COMP.
05 TP-DATA-PRICE PIC 9(04) COMP.
01 CDR-TEST-COUNT PIC 9(02) COMP VALUE 8.
01 CDR-TEST-DATA.
03 CDR-TEST-ENTRY OCCURS 8 TIMES.
05 TE-ID PIC X(10).
05 TE-CALLER PIC X(11).
05 TE-CALLEE PIC X(11).
05 TE-START PIC X(14).
05 TE-DURATION PIC 9(09) COMP.
05 TE-TYPE PIC X(02).
05 TE-ROAM PIC X(01).
01 WRK-IDX PIC 9(02) COMP.
01 WRK-JDX PIC 9(02) COMP.
01 COMMONMEMORY GLOBAL EXTERNAL.
03 CM-TARIFF-TABLE.
05 CM-TP-ENTRY OCCURS 5 TIMES.
10 CTP-CODE PIC X(03).
10 CTP-NAME PIC X(08).
10 CTP-BASE-FEE PIC 9(09) COMP.
10 CTP-UNIT-PRICE PIC 9(04) COMP.
10 CTP-FREE-SEC PIC 9(09) COMP.
10 CTP-OVER-PRICE PIC 9(04) COMP.
10 CTP-ROAM-PRICE PIC 9(04) COMP.
10 CTP-SMS-PRICE PIC 9(04) COMP.
10 CTP-DATA-PRICE PIC 9(04) COMP.
03 CM-TARIFF-COUNT PIC 9(02) COMP.
03 CM-TEST-COUNT PIC 9(02) COMP.
03 CM-TEST-DATA.
05 CMT-ENTRY OCCURS 8 TIMES.
10 CMT-ID PIC X(10).
10 CMT-CALLER PIC X(11).
10 CMT-CALLEE PIC X(11).
10 CMT-START PIC X(14).
10 CMT-DURATION PIC 9(09) COMP.
10 CMT-TYPE PIC X(02).
10 CMT-ROAM PIC X(01).
03 CM-COMMIT-COUNT PIC 9(04) COMP.
03 CM-PROC-COUNT PIC 9(08) COMP.
LINKAGE SECTION.
01 LK-STATUS PIC S9(08) COMP.
PROCEDURE DIVISION USING LK-STATUS.
0000-BEGIN SECTION.
MOVE CON-STATUS-OFF TO LK-STATUS.
MOVE 5 TO WRK-TARIFF-COUNT.
MOVE "P01" TO TP-CODE(1)
MOVE "BASIC" TO TP-NAME(1)
MOVE 3000 TO TP-BASE-FEE(1)
MOVE 20 TO TP-UNIT-PRICE(1)
MOVE 6000 TO TP-FREE-SEC(1)
MOVE 20 TO TP-OVER-PRICE(1)
MOVE 50 TO TP-ROAM-PRICE(1)
MOVE 10 TO TP-SMS-PRICE(1)
MOVE 30 TO TP-DATA-PRICE(1)
MOVE "P02" TO TP-CODE(2)
MOVE "BUSINESS" TO TP-NAME(2)
MOVE 8000 TO TP-BASE-FEE(2)
MOVE 10 TO TP-UNIT-PRICE(2)
MOVE 30000 TO TP-FREE-SEC(2)
MOVE 15 TO TP-OVER-PRICE(2)
MOVE 30 TO TP-ROAM-PRICE(2)
MOVE 5 TO TP-SMS-PRICE(2)
MOVE 20 TO TP-DATA-PRICE(2)
MOVE "P03" TO TP-CODE(3)
MOVE "UNLIMIT" TO TP-NAME(3)
MOVE 20000 TO TP-BASE-FEE(3)
MOVE 5 TO TP-UNIT-PRICE(3)
MOVE 120000 TO TP-FREE-SEC(3)
MOVE 5 TO TP-OVER-PRICE(3)
MOVE 20 TO TP-ROAM-PRICE(3)
MOVE 3 TO TP-SMS-PRICE(3)
MOVE 10 TO TP-DATA-PRICE(3)
MOVE "P04" TO TP-CODE(4)
MOVE "DATA" TO TP-NAME(4)
MOVE 5000 TO TP-BASE-FEE(4)
MOVE 0 TO TP-UNIT-PRICE(4)
MOVE 0 TO TP-FREE-SEC(4)
MOVE 0 TO TP-OVER-PRICE(4)
MOVE 0 TO TP-ROAM-PRICE(4)
MOVE 0 TO TP-SMS-PRICE(4)
MOVE 20 TO TP-DATA-PRICE(4)
MOVE "P05" TO TP-CODE(5)
MOVE "CHEAP" TO TP-NAME(5)
MOVE 1000 TO TP-BASE-FEE(5)
MOVE 30 TO TP-UNIT-PRICE(5)
MOVE 1800 TO TP-FREE-SEC(5)
MOVE 30 TO TP-OVER-PRICE(5)
MOVE 150 TO TP-ROAM-PRICE(5)
MOVE 100 TO TP-SMS-PRICE(5)
MOVE 50 TO TP-DATA-PRICE(5)
MOVE 5 TO CM-TARIFF-COUNT
PERFORM VARYING WRK-JDX FROM 1 BY 1 UNTIL WRK-JDX > 5
MOVE TP-CODE(WRK-JDX) TO CTP-CODE(WRK-JDX)
MOVE TP-NAME(WRK-JDX) TO CTP-NAME(WRK-JDX)
MOVE TP-BASE-FEE(WRK-JDX) TO CTP-BASE-FEE(WRK-JDX)
MOVE TP-UNIT-PRICE(WRK-JDX) TO CTP-UNIT-PRICE(WRK-JDX)
MOVE TP-FREE-SEC(WRK-JDX) TO CTP-FREE-SEC(WRK-JDX)
MOVE TP-OVER-PRICE(WRK-JDX) TO CTP-OVER-PRICE(WRK-JDX)
MOVE TP-ROAM-PRICE(WRK-JDX) TO CTP-ROAM-PRICE(WRK-JDX)
MOVE TP-SMS-PRICE(WRK-JDX) TO CTP-SMS-PRICE(WRK-JDX)
MOVE TP-DATA-PRICE(WRK-JDX) TO CTP-DATA-PRICE(WRK-JDX)
END-PERFORM.
MOVE 8 TO CM-TEST-COUNT
MOVE "CDR0000001" TO CMT-ID(1)
MOVE "86138001380" TO CMT-CALLER(1)
MOVE "86139009990" TO CMT-CALLEE(1)
MOVE "20250601083000" TO CMT-START(1)
MOVE 120 TO CMT-DURATION(1)
MOVE "01" TO CMT-TYPE(1)
MOVE "N" TO CMT-ROAM(1)
MOVE "CDR0000002" TO CMT-ID(2)
MOVE "86138001380" TO CMT-CALLER(2)
MOVE "86137007770" TO CMT-CALLEE(2)
MOVE "20250601084500" TO CMT-START(2)
MOVE 45 TO CMT-DURATION(2)
MOVE "01" TO CMT-TYPE(2)
MOVE "N" TO CMT-ROAM(2)
MOVE "CDR0000003" TO CMT-ID(3)
MOVE "86138001380" TO CMT-CALLER(3)
MOVE "86136006660" TO CMT-CALLEE(3)
MOVE "20250601090000" TO CMT-START(3)
MOVE 300 TO CMT-DURATION(3)
MOVE "01" TO CMT-TYPE(3)
MOVE "N" TO CMT-ROAM(3)
MOVE "CDR0000004" TO CMT-ID(4)
MOVE "86139002100" TO CMT-CALLER(4)
MOVE "86138001380" TO CMT-CALLEE(4)
MOVE "20250601100000" TO CMT-START(4)
MOVE 600 TO CMT-DURATION(4)
MOVE "01" TO CMT-TYPE(4)
MOVE "N" TO CMT-ROAM(4)
MOVE "CDR0000005" TO CMT-ID(5)
MOVE "86139002100" TO CMT-CALLER(5)
MOVE "86138001380" TO CMT-CALLEE(5)
MOVE "20250601110000" TO CMT-START(5)
MOVE 1 TO CMT-DURATION(5)
MOVE "02" TO CMT-TYPE(5)
MOVE "N" TO CMT-ROAM(5)
MOVE "CDR0000006" TO CMT-ID(6)
MOVE "86137005500" TO CMT-CALLER(6)
MOVE "86139002100" TO CMT-CALLEE(6)
MOVE "20250601120000" TO CMT-START(6)
MOVE 1200 TO CMT-DURATION(6)
MOVE "01" TO CMT-TYPE(6)
MOVE "Y" TO CMT-ROAM(6)
MOVE "CDR0000007" TO CMT-ID(7)
MOVE "86138001380" TO CMT-CALLER(7)
MOVE "86136006660" TO CMT-CALLEE(7)
MOVE "20250601130000" TO CMT-START(7)
MOVE 900 TO CMT-DURATION(7)
MOVE "03" TO CMT-TYPE(7)
MOVE "N" TO CMT-ROAM(7)
MOVE "CDR0000008" TO CMT-ID(8)
MOVE "86137005500" TO CMT-CALLER(8)
MOVE "86135005550" TO CMT-CALLEE(8)
MOVE "20250601140000" TO CMT-START(8)
MOVE 1800 TO CMT-DURATION(8)
MOVE "01" TO CMT-TYPE(8)
MOVE "N" TO CMT-ROAM(8)
MOVE CON-COMMIT-MAX TO CM-COMMIT-COUNT.
MOVE ZERO TO CM-PROC-COUNT.
DISPLAY "TABEGIN: tariff=" CM-TARIFF-COUNT
" cdrs=" CM-TEST-COUNT " loaded"
GOBACK.
END PROGRAM TABEGIN.