version 0.73.0

This commit is contained in:
2023-07-14 12:15:30 -03:00
parent 110d8a0419
commit 945dd1a809
1466 changed files with 374820 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
TARGETS = \
IX101A.PRT \
IX102A.PRT \
IX103A.PRT \
IX104A.PRT \
IX105A.PRT \
IX106A.PRT \
IX107A.PRT \
IX108A.PRT \
IX109A.PRT \
IX110A.PRT \
cleandat \
IX111A.PRT \
IX112A.PRT \
IX113A.PRT \
IX114A.PRT \
IX115A.PRT \
IX116A.PRT \
IX117A.PRT \
IX118A.PRT \
IX119A.PRT \
IX120A.PRT \
IX121A.PRT \
IX201A.PRT \
IX202A.PRT \
IX203A.PRT \
IX204A.PRT \
IX205A.PRT \
IX206A.PRT \
IX207A.PRT \
IX208A.PRT \
IX210A.PRT \
IX211A.PRT \
IX212A.PRT \
IX213A.PRT \
IX214A.PRT \
IX215A.PRT \
IX216A.PRT \
IX217A.PRT \
IX218A.PRT \
IX301M.PRT \
IX302M.PRT \
IX401M.PRT \
report
+29
View File
@@ -0,0 +1,29 @@
Module : IX
Filename Tot OK Fai Del Man
IX101A.PRT 2 2 0 0 0 OK
IX104A.PRT 13 13 0 0 0 OK
IX105A.PRT 9 9 0 0 0 OK
IX106A.PRT 10 10 0 0 0 OK
IX107A.PRT 14 14 0 0 0 OK
IX108A.PRT 32 32 0 0 0 OK
IX109A.PRT 13 12 1 0 0
IX112A.PRT 7 6 1 0 0
IX113A.PRT 4 4 0 0 0 OK
IX121A.PRT 3 3 0 0 0 OK
IX201A.PRT 2 2 0 0 0 OK
IX204A.PRT 13 13 0 0 0 OK
IX205A.PRT 12 11 1 0 0
IX206A.PRT 10 9 1 0 0
IX207A.PRT 8 8 0 0 0 OK
IX208A.PRT 29 19 10 0 0
IX210A.PRT 39 27 12 0 0
IX211A.PRT 17 13 4 0 0
IX212A.PRT 24 21 3 0 0
IX213A.PRT 21 15 6 0 0
IX214A.PRT 39 27 12 0 0
IX215A.PRT 33 7 23 3 0
IX216A.PRT 15 9 5 1 0
IX217A.PRT 6 1 5 0 0
IX218A.PRT 6 3 3 0 0
Total: 381 290 87 4 0 25 11 OK
Percentages: pgms ok: 44 % Tests ok: 76.1155 %
+37
View File
@@ -0,0 +1,37 @@
Module : IX
Filename Tot OK Fai Del Man
IX101A.PRT 2 2 0 0 0 OK
IX102A.PRT 11 11 0 0 0 OK
IX103A.PRT 12 12 0 0 0 OK
IX104A.PRT 13 10 3 0 0
IX105A.PRT 9 9 0 0 0 OK
IX106A.PRT 10 10 0 0 0 OK
IX107A.PRT 14 14 0 0 0 OK
IX108A.PRT 32 32 0 0 0 OK
IX109A.PRT 13 9 4 0 0
IX110A.PRT 4 4 0 0 0 OK
IX111A.PRT 0 0 0 0 0 OK
IX112A.PRT 7 6 1 0 0
IX113A.PRT 4 3 1 0 0
IX114A.PRT 3 2 1 0 0
IX115A.PRT 3 2 1 0 0
IX116A.PRT 3 2 1 0 0
IX117A.PRT 3 2 1 0 0
IX118A.PRT 3 2 1 0 0
IX119A.PRT 3 1 2 0 0
IX120A.PRT 2 1 1 0 0
IX121A.PRT 3 3 0 0 0 OK
IX201A.PRT 2 2 0 0 0 OK
IX202A.PRT 11 11 0 0 0 OK
IX203A.PRT 12 12 0 0 0 OK
IX204A.PRT 13 10 3 0 0
IX205A.PRT 12 11 1 0 0
IX206A.PRT 10 9 1 0 0
IX208A.PRT 29 21 8 0 0
IX211A.PRT 17 17 0 0 0 OK
IX212A.PRT 24 20 4 0 0
IX213A.PRT 21 15 6 0 0
IX216A.PRT 15 9 5 1 0
IX218A.PRT 6 5 1 0 0
Total: 326 279 46 1 0 33 14 OK
Percentages: pgms ok: 42.4242 % Tests ok: 85.5828 %
+69
View File
@@ -0,0 +1,69 @@
#
# Makefile to create binary form COBOL sources
#
prefix=/usr/local/
exec_prefix=../../compiler
g_includes=-I/usr/local/include
g_libraries=-L/usr/local/lib
CCX=gcc
#COB=${exec_prefix}/htcobol
COB=htcobol
#COB=htcobol-0.55
ASM=as
RM=rm -fr
COPYBOOKS= -I../copybooks -I.
INCLUDES=-I./ ${g_includes}
#LIBS=${g_libraries} -lhtcobol-0.55 -ldb -lm
LIBS=${g_libraries} -L../../lib -lhtcobol -ldb -lm
LDFLAGS=-ldl
#COBFLAGS=-P -D -F ${COPYBOOKS}
#COBFLAGS=-S -P -F ${COPYBOOKS}
COBFLAGS=-c -v -P -F ${COPYBOOKS}
ASMFLAGS=-D
CCXFLAGS=-g ${INCLUDES}
SRCS = EXEC85.cob
OBJS = $(SRCS:.cob=.o)
PROG = EXEC85
#include ${prefix}/config/COB.rules.in
#
# Rules for compiling .cob sources
.SUFFIX: .cob .o
%.o: %.cob
$(COB) $(COBFLAGS) $<
# $(ASM) $(ASMFLAGS) -o $*.o -a=$*.listing.0.txt $*.s
# @grep -v 'LISTING' $*.listing.0.txt | sed '/^$$/d' >$*.s.txt
# @${RM} $*.listing.0.txt
#
#include ${prefix}/config/COB.build.tmpl.in
all: ${PROG}
${PROG}: ${OBJS}
$(CCX) -o $@ ${OBJS} $(LDFLAGS) $(LIBS)
# strip $@
${PROG}.cob:
perl nc_exec85.pl newcob.val
setup: ${PROG}.cob ${PROG}
./${PROG}
perl nc_extr.pl XXXXX002
clean:
@${RM} ${OBJS} $(PROG) core $(PROG)*lis ${PROG}*txt ${PROG}*s \
core copybooks XX CM DB IC IF IX NC OB RL RW SG SM SQ ST \
t
cleanall: clean
@${RM} core *run.err.trace.txt *run.trace.txt temp*cob \
XXXXX002 XXXXX055 EXEC85.cob logfile*txt
programlist:
@echo ${PROG} ${PROGS}
+7
View File
@@ -0,0 +1,7 @@
#
# Makefile for IX NIST Module
#
include ../Makefile_head.h
MODULE=IX
include ../${MODULE}.idx
include ../Makefile_trail.h
+17
View File
@@ -0,0 +1,17 @@
#
# Makefile for NC NIST Module
#
include ../Makefile_head.h
MODULE=NC
include ../${MODULE}.idx
#
# Specific rules follow: these should override the general rules. Why not?
#
#NC109M.PRT:
# ./NC109M.EXE <NC109M.DATA
# mv prt NC109M.PRT
# ${RM} NC109M.cob NC109M.lis* NC109M.o NC109M.s NC109M.scan NC109M.EXE
#NC110M.PRT: NC110M.EXE
# ./NC110M.EXE >NC110M.PRT
# ${RM} NC110M.cob NC110M.lis* NC110M.o NC110M.s NC110M.scan NC110M.EXE
include ../Makefile_trail.h
+7
View File
@@ -0,0 +1,7 @@
#
# Makefile for SM NIST Module
#
include ../Makefile_head.h
MODULE=SM
include ../${MODULE}.idx
include ../Makefile_trail.h
+38
View File
@@ -0,0 +1,38 @@
#
# Makefile to create binary form COBOL sources
#
prefix=/usr/local/
comp_prefix=../../..
exec_prefix=${comp_prefix}/compiler
g_includes=-I/usr/local/include
g_libraries=-L/usr/lib
CCX=gcc
COBPP=${comp_prefix}/cobpp/htcobolpp
COB=${exec_prefix}/htcobol
ASM=as
RM=rm -f
COPYBOOKS= -I../copybooks -I.
INCLUDES=-I./ ${g_includes}
LIBS=${g_libraries} -L${comp_prefix}/lib -lhtcobol -ldb -lm -ldl
LDFLAGS=
COBFLAGS=-P ${COPYBOOKS}
ASMFLAGS=-D
CCXFLAGS=-g ${INCLUDES}
%.cob : %.CBL
${COBPP} ${COPYBOOKS} -f $< -o $@
%.s : %.cob
${COB} -T8 -S -P -D $*.cob
grep "error" $*.lis
%.o : %.s
${ASM} -o $*.o -as=$*.listing.0.txt --gstabs $*.s
%.EXE : %.o
gcc -g -o $*.EXE $*.o ${LIBS}
%.PRT : %.EXE
./$*.EXE 2>nl
mv -f nl $*.RTE
mv prt $*.PRT
${RM} $*.cob $*.lis* $*.o $*.s $*.scan $*.EXE
+16
View File
@@ -0,0 +1,16 @@
#
# Makefile to create binary form COBOL sources
#
all: cleandat ${TARGETS}
report:
../xtr_rpt.sh ${MODULE}
diff ../${MODULE}.rpt ../${MODULE}_prev.rpt
cat ../??.rpt >../nist.rpt
clean:
@${RM} core *.cob *.lis* *.s*
#
cleanall: clean cleandat
@${RM} *.PRT *.RTE
cleandat:
@${RM} *.DAT*
+101
View File
@@ -0,0 +1,101 @@
TARGETS = \
NC101A.PRT \
NC102A.PRT \
NC103A.PRT \
NC104A.PRT \
NC105A.PRT \
NC106A.PRT \
NC107A.PRT \
NC108M.PRT \
NC110M.PRT \
NC111A.PRT \
NC112A.PRT \
NC113M.PRT \
NC114M.PRT \
NC115A.PRT \
NC116A.PRT \
NC117A.PRT \
NC118A.PRT \
NC119A.PRT \
NC120A.PRT \
NC121M.PRT \
NC122A.PRT \
NC123A.PRT \
NC124A.PRT \
NC125A.PRT \
NC126A.PRT \
NC127A.PRT \
NC131A.PRT \
NC132A.PRT \
NC133A.PRT \
NC134A.PRT \
NC135A.PRT \
NC136A.PRT \
NC137A.PRT \
NC138A.PRT \
NC139A.PRT \
NC140A.PRT \
NC141A.PRT \
NC170A.PRT \
NC171A.PRT \
NC172A.PRT \
NC173A.PRT \
NC175A.PRT \
NC176A.PRT \
NC177A.PRT \
NC201A.PRT \
NC202A.PRT \
NC203A.PRT \
NC204M.PRT \
NC205A.PRT \
NC206A.PRT \
NC207A.PRT \
NC208A.PRT \
NC209A.PRT \
NC210A.PRT \
NC211A.PRT \
NC214M.PRT \
NC216A.PRT \
NC217A.PRT \
NC218A.PRT \
NC219A.PRT \
NC220M.PRT \
NC221A.PRT \
NC222A.PRT \
NC223A.PRT \
NC224A.PRT \
NC225A.PRT \
NC231A.PRT \
NC232A.PRT \
NC233A.PRT \
NC234A.PRT \
NC235A.PRT \
NC236A.PRT \
NC237A.PRT \
NC238A.PRT \
NC239A.PRT \
NC240A.PRT \
NC241A.PRT \
NC242A.PRT \
NC243A.PRT \
NC244A.PRT \
NC245A.PRT \
NC246A.PRT \
NC247A.PRT \
NC248A.PRT \
NC250A.PRT \
NC251A.PRT \
NC252A.PRT \
NC253A.PRT \
NC302M.PRT \
NC303M.PRT \
NC401M.PRT \
report
## Hang at run time
#NC109M.PRT
## Hang at compile time
#NC174A.PRT
#NC215A.PRT
#NC254A.PRT
+82
View File
@@ -0,0 +1,82 @@
Module : NC
Filename Tot OK Fai Del Man
NC101A.PRT 93 93 0 0 0 OK
NC102A.PRT 42 42 0 0 0 OK
NC103A.PRT 102 102 0 0 0 OK
NC104A.PRT 141 141 0 0 0 OK
NC105A.PRT 132 129 0 3 0 OK
NC106A.PRT 126 121 5 0 0
NC107A.PRT 177 171 1 0 5
NC108M.PRT 14 14 0 0 0 OK
NC111A.PRT 7 7 0 0 0 OK
NC112A.PRT 32 32 0 0 0 OK
NC114M.PRT 6 5 0 0 1 OK
NC115A.PRT 31 31 0 0 0 OK
NC116A.PRT 66 66 0 0 0 OK
NC117A.PRT 40 39 1 0 0
NC118A.PRT 29 23 6 0 0
NC119A.PRT 36 33 3 0 0
NC120A.PRT 39 36 3 0 0
NC121M.PRT 41 39 0 0 2 OK
NC122A.PRT 24 24 0 0 0 OK
NC123A.PRT 34 34 0 0 0 OK
NC124A.PRT 169 167 2 0 0
NC125A.PRT 110 110 0 0 0 OK
NC126A.PRT 145 145 0 0 0 OK
NC127A.PRT 2 2 0 0 0 OK
NC131A.PRT 10 10 0 0 0 OK
NC132A.PRT 25 25 0 0 0 OK
NC133A.PRT 25 25 0 0 0 OK
NC134A.PRT 20 20 0 0 0 OK
NC135A.PRT 8 7 0 0 1 OK
NC136A.PRT 8 8 0 0 0 OK
NC137A.PRT 8 8 0 0 0 OK
NC138A.PRT 36 36 0 0 0 OK
NC139A.PRT 41 41 0 0 0 OK
NC140A.PRT 70 70 0 0 0 OK
NC141A.PRT 9 9 0 0 0 OK
NC170A.PRT 96 93 3 0 0
NC171A.PRT 108 107 1 0 0
NC172A.PRT 101 101 0 0 0 OK
NC173A.PRT 102 102 0 0 0 OK
NC175A.PRT 97 92 5 0 0
NC176A.PRT 124 121 3 0 0
NC177A.PRT 108 104 4 0 0
NC201A.PRT 59 56 3 0 0
NC202A.PRT 77 74 3 0 0
NC203A.PRT 57 55 2 0 0
NC204M.PRT 15 0 15 0 0
NC206A.PRT 53 53 0 0 0 OK
NC207A.PRT 85 85 0 0 0 OK
NC208A.PRT 24 24 0 0 0 OK
NC209A.PRT 32 27 5 0 0
NC210A.PRT 85 85 0 0 0 OK
NC214M.PRT 0 0 0 0 0 OK
NC216A.PRT 57 55 2 0 0
NC217A.PRT 81 80 0 1 0 OK
NC218A.PRT 125 125 0 0 0 OK
NC219A.PRT 9 7 2 0 0
NC220M.PRT 25 23 0 0 2 OK
NC221A.PRT 17 17 0 0 0 OK
NC222A.PRT 8 8 0 0 0 OK
NC223A.PRT 94 42 52 0 0
NC224A.PRT 14 10 0 4 0 OK
NC231A.PRT 24 16 8 0 0
NC232A.PRT 17 17 0 0 0 OK
NC233A.PRT 14 7 7 0 0
NC234A.PRT 17 17 0 0 0 OK
NC236A.PRT 10 5 5 0 0
NC239A.PRT 8 8 0 0 0 OK
NC240A.PRT 11 11 0 0 0 OK
NC241A.PRT 11 11 0 0 0 OK
NC242A.PRT 12 12 0 0 0 OK
NC243A.PRT 16 16 0 0 0 OK
NC244A.PRT 6 6 0 0 0 OK
NC245A.PRT 28 28 0 0 0 OK
NC247A.PRT 21 17 3 1 0
NC248A.PRT 11 8 3 0 0
NC251A.PRT 59 58 1 0 0
NC252A.PRT 75 75 0 0 0 OK
NC253A.PRT 61 48 13 0 0
Total: 3952 3771 161 9 11 78 51 OK
Percentages: pgms ok: 65.3846 % Tests ok: 95.42 %
+79
View File
@@ -0,0 +1,79 @@
Module : NC
Filename Tot OK Fai Del Man
NC101A.PRT 93 93 0 0 0 OK
NC102A.PRT 42 40 0 2 0 OK
NC103A.PRT 102 102 0 0 0 OK
NC104A.PRT 141 140 1 0 0
NC105A.PRT 132 121 8 3 0
NC106A.PRT 126 119 7 0 0
NC107A.PRT 177 169 3 0 5
NC108M.PRT 14 14 0 0 0 OK
NC111A.PRT 7 7 0 0 0 OK
NC112A.PRT 32 32 0 0 0 OK
NC115A.PRT 31 23 8 0 0
NC116A.PRT 66 66 0 0 0 OK
NC117A.PRT 40 39 1 0 0
NC118A.PRT 29 23 6 0 0
NC119A.PRT 36 33 3 0 0
NC120A.PRT 39 36 3 0 0
NC121M.PRT 41 37 2 0 2
NC122A.PRT 24 19 5 0 0
NC123A.PRT 34 24 10 0 0
NC124A.PRT 169 165 4 0 0
NC125A.PRT 110 110 0 0 0 OK
NC126A.PRT 145 145 0 0 0 OK
NC127A.PRT 2 2 0 0 0 OK
NC131A.PRT 10 10 0 0 0 OK
NC132A.PRT 25 25 0 0 0 OK
NC133A.PRT 25 25 0 0 0 OK
NC134A.PRT 20 20 0 0 0 OK
NC135A.PRT 8 7 0 0 1 OK
NC136A.PRT 8 8 0 0 0 OK
NC137A.PRT 8 8 0 0 0 OK
NC138A.PRT 36 36 0 0 0 OK
NC139A.PRT 41 41 0 0 0 OK
NC140A.PRT 70 70 0 0 0 OK
NC141A.PRT 9 9 0 0 0 OK
NC170A.PRT 96 93 3 0 0
NC171A.PRT 108 107 1 0 0
NC172A.PRT 101 101 0 0 0 OK
NC173A.PRT 102 102 0 0 0 OK
NC175A.PRT 97 92 5 0 0
NC176A.PRT 124 119 5 0 0
NC177A.PRT 108 104 4 0 0
NC201A.PRT 59 56 3 0 0
NC202A.PRT 77 74 3 0 0
NC203A.PRT 58 53 5 0 0
NC204M.PRT 15 0 15 0 0
NC206A.PRT 53 53 0 0 0 OK
NC208A.PRT 24 24 0 0 0 OK
NC209A.PRT 32 27 5 0 0
NC210A.PRT 85 85 0 0 0 OK
NC216A.PRT 57 36 21 0 0
NC217A.PRT 81 80 0 1 0 OK
NC218A.PRT 125 125 0 0 0 OK
NC220M.PRT 25 23 0 0 2 OK
NC221A.PRT 17 13 4 0 0
NC222A.PRT 8 6 2 0 0
NC223A.PRT 94 42 52 0 0
NC224A.PRT 14 10 0 4 0 OK
NC231A.PRT 24 16 8 0 0
NC232A.PRT 17 17 0 0 0 OK
NC233A.PRT 14 7 7 0 0
NC234A.PRT 17 17 0 0 0 OK
NC236A.PRT 10 5 5 0 0
NC239A.PRT 8 8 0 0 0 OK
NC240A.PRT 11 11 0 0 0 OK
NC241A.PRT 11 11 0 0 0 OK
NC242A.PRT 12 12 0 0 0 OK
NC243A.PRT 16 16 0 0 0 OK
NC244A.PRT 6 6 0 0 0 OK
NC245A.PRT 28 28 0 0 0 OK
NC247A.PRT 20 17 2 1 0
NC248A.PRT 11 8 3 0 0
NC251A.PRT 60 57 3 0 0
NC252A.PRT 75 75 0 0 0 OK
NC253A.PRT 61 48 13 0 0
NC254A.PRT 9 5 4 0 0
Total: 3862 3607 234 11 10 75 40 OK
Percentages: pgms ok: 53.3333 % Tests ok: 93.3972 %
+53
View File
@@ -0,0 +1,53 @@
The NIST CCVS85 Test Suite
------------------------------------------------------------------------
This directory contains the NIST test program suite auxiliary utilities.
IMPORTANT NOTE:
The NIST test programs source is not included, but can be downloaded from the
here (1).
How to run the tests:
------------------------------------------------------------------------
- Download and expand the NIST test programs source.
- Prepare the setup (make setup) which does the following:
- Run nc_exec85.pl to create EXEC85.cob (perl nc_exec85.pl newcob.val).
- Compile EXEC85.cob to create EXEC85.
- If TC compiler is installed in bin directories (make EXEC85).
- If TC compiler is installed in development directories (mak.sh EXEC85).
- Run EXEC85.
- Run nc_extr.pl to create test programs (perl nc_extr.pl XXXXX002).
- Compile and run NIST test program as required.
- Run all the tests (make -k -i -f ../Makefile_NC) from each subdirectory (in this case NC).
You can select only one of the tests with the target program_name.PRT (i.e. NC101A.PRT).
NIST test modules:
------------------------------------------------------------------------
Core tests:
NC - COBOL core tests
SM - COPY sentence tests
IC - CALL sentence tests
File I-O tests:
SQ - Sequential file I-O tests
RL - Relative file I-O tests
IX - Indexed file I-O tests
ST - SORT sentence tests
Advanced features:
RW - REPORT SECTION tests
CM - COMMUNICATION SECTION tests
IF - Intrinsic Function tests
SG - Segment tests
DB - Debugging feature tests
OB - Obsolete feature tests
------------------------------------------------------------------------
1) NIST test programs source
http://www.itl.nist.gov/div897/ctg/cobol_form.htm
+19
View File
@@ -0,0 +1,19 @@
TARGETS=\
SM101A.PRT \
SM102A.PRT \
SM103A.PRT \
SM104A.PRT \
SM105A.PRT \
SM106A.PRT \
SM107A.PRT \
SM201A.PRT \
SM202A.PRT \
SM203A.PRT \
SM204A.PRT \
SM205A.PRT \
SM206A.PRT \
SM207A.PRT \
SM208A.PRT \
SM301M.PRT \
SM401M.PRT \
report
+12
View File
@@ -0,0 +1,12 @@
Module : SM
Filename Tot OK Fai Del Man
SM103A.PRT 6 6 0 0 0 OK
SM105A.PRT 9 9 0 0 0 OK
SM106A.PRT 1 0 0 0 1 OK
SM107A.PRT 200 200 0 0 0 OK
SM201A.PRT 11 10 1 0 0
SM203A.PRT 1 1 0 0 0 OK
SM205A.PRT 9 9 0 0 0 OK
SM208A.PRT 7 0 6 1 0
Total: 244 235 7 1 1 8 6 OK
Percentages: pgms ok: 75 % Tests ok: 96.3115 %
+50
View File
@@ -0,0 +1,50 @@
#!/bin/bash
#
# This shell script will run make and create trace.txt
# cmd: mak.sh [filename(s)]
# David Essex April 2001
#
e0a="invalid number of parms..."
e0b="invalid option(s) "
e0c="This shell script will run make and create trace.txt"
e0d="cmd: mak.sh [filename(s)]"
#
p_print1 ()
{
for arg in "$@"
do
echo $arg >&2
done
}
#
PATH=../../compiler:$PATH
#TCOB_DIR=$PWD/../../compiler
#TCOB_PPDIR=$PWD/../../cobpp
#export TCOB_DIR TCOB_PPDIR
TCOB_OPTIONS_PATH=$PWD/../../compiler
TCOB_PP_PATH=$PWD/../../cobpp
export TCOB_OPTIONS_PATH TCOB_PP_PATH
#
#prglst=''
prglst=`make programlist`
prg=''
#
p_main ()
{
make clean
for prg in "$@"
do
make $prg 2>$prg.run.err.trace.txt | tee -a $prg.run.trace.txt
# echo "make for $prg"
done
}
#
if [ "$#" -eq 0 ]
then
p_main $prglst
# echo "prglst="$prglst
else
p_main "$@"
# echo "prglst="$prglst
fi
#
+36
View File
@@ -0,0 +1,36 @@
*SELECT-MODULE IX
*SELECT-MODULE NC
*SELECT-MODULE SM
X-00173 "TEST_FILE"
X-00273 "TEST_FILE2"
X-00373 "SQ-FS3.DAT"
X-01473 "SEQ1.DAT"
X-01573 "SQ-FS3.DAT"
X-01873 "SQ-FS2.DAT"
X-01973 "SQ-FS3.DAT"
X-02173 "REL1.DAT"
X-02473 "IX-FS1.DAT"
X-02573 "IX-FD2.DAT"
X-02673 "IX-FD3.DAT"
X-02773 "SORT1.DAT"
X-02873 "SORT2.DAT"
X-02973 "SORT3.DAT"
X-05173 sw1
X-05273 SW2
X-05573 "prt" ORGANIZATION SEQUENTIAL
X-05673 COB_DISPLAY
X-05773 COB_INPUT
X-05873 PARAMFIL
X-06873 64000
X-06973 COB_INPUT
X-07473 ID
X-07573 ID
X-08173 "^%|\[]{}"
X-08273 Linux
X-08373 Linux
X-08473 STANDARD
X-09073 "A"
X-09173 "D"
*END-MONITOR
*BEGIN-UPDATE
*END-UPDATE
+459
View File
@@ -0,0 +1,459 @@
#!/usr/local/bin/perl -w
#
# Copyright (C) 2001 David Essex
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
#
###########################################################################
# #
# Perl script to extract EXEC85 COBOL program from NIST test file #
# and change SELECT clause file names #
# #
###########################################################################
############### Globals ################
my $SW_start;
# Set to true to output program files
my $SW_output = "true";
#my $SW_output = "";
#
my $SW_nistfile = "true";
my $InString;
my $OutString;
my @InStringArray;
my @InStringArray1;
my $FileNameOut;
#my $FileNameLog = "logfile.txt";
#my $FileNameLog = $ARGV[1];
my $FileNameLog;
my @FileNameLogArray;
my $FileNameNIST = $ARGV[0];
my @SubPrmArray;
my $SubPrmItem;
my $PrgmInCntr = 0;
my $SubDirDel = "/";
my $SubDir = "e85/";
# program name extention
my $PrgmNameExtention = ".cob";
#
my $PrgmSubIn = "SELECT OPTIONAL POPULATION-FILE";
my $PrgmSubOut = "SELECT POPULATION-FILE ";
#
#------------------ File names begin ------------------#
#
#\* "XXXXX001." "../newcob.val"
my $PrgmFileIn01 = "XXXXX001. ";
my $PrgmFileOut01 = "\"newcob.val\"";
#
# "XXXXX002".
my $PrgmFileIn02 = "XXXXX002 ";
my $PrgmFileOut02 = "\"XXXXX002\"";
#
# "XXXXX003".
my $PrgmFileIn03 = "XXXXX003";
my $PrgmFileOut03 = "\"XXXXX003\"";
#
# "XXXXX055".
my $PrgmFileIn55 = "XXXXX055";
my $PrgmFileOut55 = "\"XXXXX055\"";
#
# "XXXXX058" "make_pop_linux.txt"
my $PrgmFileIn58 = "XXXXX058";
my $PrgmFileOut58 = "\"make_pop_linux.txt\"";
#
#------------------ End globals ------------------#
sub initialize_rtn ()
{
@FileNameLogArray = <logfile*txt>;
$FileNameLog = "logfile." . ($#FileNameLogArray + 2) . ".txt";
if (-f $FileNameLog) {
print "ERROR: file FileNameLog \"$FileNameLog\" exists\n";
die;
}
# print "FileNameLog = $FileNameLog;\n";
open (NISTFILE, "< $FileNameNIST")
or die "unable to open file \"$FileNameNIST\"";
open (LOGFILE, "> $FileNameLog ")
or die "unable to run \"$FileNameLog\"";
}
sub process_header ()
{
print LOGFILE "* ---------------------------------------- *\n";
print LOGFILE "head :" . $_ . ":\n";
$SW_start = 'True';
$InString = $_;
$InString =~ s/^\*HEADER,//g;
$InString =~ s/ /:/;
$InString =~ s/ //g;
print LOGFILE "InString :" . $InString . ":\n";
@InStringArray1 = split(/:/, $InString);
@InStringArray = split(/,/, $InStringArray1[0]);
for ($i=0; $i<=$#InStringArray; $i++) {
print LOGFILE "InStringArray[$i] :" . "$InStringArray[$i]" . ":\n";
}
}
sub determine_FileNameOut ()
{
# $FileNameOut = $SubDir .
$FileNameOut = $InStringArray[$#InStringArray] .
$PrgmNameExtention;
print LOGFILE "FileNameOut :" . "$FileNameOut" . ":\n";
}
sub output_PgmFile ()
{
print PGMFILE $InString . "\n";
}
#
#000600*INSTALLATION
sub process_line_06 ()
{
$SubtStringIn1 = "000600 INSTALLATION";
$SubtStringOut1 = "000600*INSTALLATION";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
}
#000700* "ON-SITE VALIDATION,
sub process_line_07 ()
{
$SubtStringIn1 = "000700 \"ON-SITE VALIDATION,";
$SubtStringOut1 = "000700* \"ON-SITE VALIDATION,";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
}
#000800* "COBOL 85 VERSION
sub process_line_08 ()
{
$SubtStringIn1 = "000800 \"COBOL 85 VERSION";
$SubtStringOut1 = "000800* \"COBOL 85 VERSION";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
}
#my $PrgmFile55 = "\"XXXXX055\"";
#my $PrgmFile58 = "\"make_pop_linux.txt\"";
#002500 SELECT OPTIONAL POPULATION-FILE EXEC84.2
#002600 ASSIGN TO EXEC84.2
#002700 XXXXX001. EXEC84.2
#
#\* SELECT OPTIONAL POPULATION-FILE
# SELECT POPULATION-FILE
# ASSIGN TO
#* "XXXXX001"
# "newcob.val"
# ORGANIZATION LINE SEQUENTIAL
# ACCESS SEQUENTIAL.
#
sub process_file01_24 ()
{
$SubtStringIn1 = "002500 SELECT";
$SubtStringOut1 = "002500* SELECT";
$SubtStringIn2 = "SELECT OPTIONAL POPULATION-FILE";
$SubtStringOut2 = "SELECT POPULATION-FILE ";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
$InString = $_;
$InString =~ s/$SubtStringIn2/$SubtStringOut2/;
output_PgmFile;
}
sub process_file01_26 ()
{
$SubtStringIn1 = "002700 XXXXX001. ";
$SubtStringOut1 = "002700* XXXXX001. ";
$SubtStringOut2 = "002701 ORGANIZATION LINE SEQUENTIAL";
$SubtStringOut3 = "002702 ACCESS SEQUENTIAL. ";
# $SubtStringIn2 = "XXXXX001. ";
# $PrgmFile01 = "newcob.val";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
$InString = $_;
$InString =~ s/$PrgmFileIn01/$PrgmFileOut01/;
output_PgmFile;
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut2/;
output_PgmFile;
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut3/;
output_PgmFile;
}
#002800 SELECT SOURCE-COBOL-PROGRAMS EXEC84.2
#002900 ASSIGN TO EXEC84.2
#003000 XXXXX002 EXEC84.2
#003100 ORGANIZATION SEQUENTIAL. EXEC84.2
#
# SELECT SOURCE-COBOL-PROGRAMS
# ASSIGN TO
# "XXXXX002"
# ORGANIZATION LINE SEQUENTIAL
#* ORGANIZATION SEQUENTIAL
# ACCESS SEQUENTIAL.
#* ORGANIZATION SEQUENTIAL.
#
sub process_file02_29 ()
{
$SubtStringIn1 = "003000 XXXXX002";
$SubtStringOut1 = "003000* XXXXX002";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
$InString = $_;
$InString =~ s/$PrgmFileIn02/$PrgmFileOut02/;
output_PgmFile;
}
sub process_file02_30 ()
{
$SubtStringIn = "003100 ORGANIZATION SEQUENTIAL. ";
$SubtStringOut1 = "003100* ORGANIZATION SEQUENTIAL. ";
$SubtStringOut2 = "003100 ORGANIZATION LINE SEQUENTIAL";
$SubtStringOut3 = "003101 ACCESS SEQUENTIAL. ";
$InString = $_;
$InString =~ s/$SubtStringIn/$SubtStringOut1/;
output_PgmFile;
$InString = $_;
$InString =~ s/$SubtStringIn/$SubtStringOut2/;
output_PgmFile;
$InString = $_;
$InString =~ s/$SubtStringIn/$SubtStringOut3/;
output_PgmFile;
}
#003200 SELECT UPDATED-POPULATION-FILE EXEC84.2
#003300 ASSIGN TO EXEC84.2
#003400 XXXXX003. EXEC84.2
#
# SELECT UPDATED-POPULATION-FILE
# ASSIGN TO
# "XXXXX003".
#
sub process_file03_33 ()
{
$SubtStringIn1 = "003400 XXXXX003.";
$SubtStringOut1 = "003400* XXXXX003.";
# "XXXXX003".
# $PrgmFileIn03 = "XXXXX003";
# $PrgmFileOut03 = ""XXXXX003"";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
$InString = $_;
$InString =~ s/$PrgmFileIn03. /$PrgmFileOut03./;
output_PgmFile;
}
#
#003500 SELECT PRINT-FILE EXEC84.2
#003600 ASSIGN TO EXEC84.2
#003700 XXXXX055. EXEC84.2
#
# SELECT PRINT-FILE
# ASSIGN TO
# "XXXXX055".
sub process_file55_36 ()
{
$SubtStringIn1 = "003700 XXXXX055.";
$SubtStringOut1 = "003700* XXXXX055.";
# "XXXXX055".
# $PrgmFileIn55 = "XXXXX055";
# $PrgmFileOut55 = ""XXXXX055"";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
$InString = $_;
$InString =~ s/$PrgmFileIn55. /$PrgmFileOut55./;
output_PgmFile;
}
#
#003800 SELECT CONTROL-CARD-FILE EXEC84.2
#003900 ASSIGN TO EXEC84.2
#004000 XXXXX058. EXEC84.2
#
# SELECT CONTROL-CARD-FILE
# ASSIGN TO
#* "XXXXX058"
# "make_pop_linux.txt"
# ORGANIZATION LINE SEQUENTIAL
# ACCESS SEQUENTIAL.
sub process_file58_39 ()
{
$SubtStringIn1 = "004000 XXXXX058.";
$SubtStringOut1 = "004000* XXXXX058.";
$SubtStringIn2 = "004000 XXXXX058. ";
$SubtStringOut2 = "004001 ORGANIZATION LINE SEQUENTIAL";
$SubtStringOut3 = "004002 ACCESS SEQUENTIAL. ";
# "XXXXX058" "make_pop_linux.txt"
# $PrgmFileIn58 = "XXXXX058";
# $PrgmFileOut58 = ""make_pop_linux.txt"";
$InString = $_;
$InString =~ s/$SubtStringIn1/$SubtStringOut1/;
output_PgmFile;
$InString = $_;
$InString =~ s/$PrgmFileIn58\. /$PrgmFileOut58/;
output_PgmFile;
$InString = $_;
$InString =~ s/$SubtStringIn2/$SubtStringOut2/;
output_PgmFile;
$InString = $_;
$InString =~ s/$SubtStringIn2/$SubtStringOut3/;
output_PgmFile;
}
# -------------------- main begins here -------------------- #
if ($#ARGV != 0) {
print "ERROR: invalid number of arguments " . ($#ARGV + 1) . " != 1\n";
die;
}
initialize_rtn;
#while ($SW_nistfile)
#read(NISTFILE, $inbuf, 81);
read(NISTFILE, $_, 81);
while ($SW_nistfile)
#while (<NISTFILE>)
#while ((<NISTFILE>) && ($SW_nistfile))
{
# $_ = $inbuf;
chop;
if ($SW_start) {
if (/^\*END-OF,/) {
print LOGFILE "tail :" . $_ . ":\n";
$SW_start = '';
if ($SW_output) {
close(PGMFILE);
}
$SW_nistfile = '';
close(NISTFILE);
}
else {
# $PrgmInCntr++;
if ($SW_output) {
$PrgmInCntr++;
# if (($PrgmInCntr > 23) && ($PrgmInCntr < 40)) {
if (($PrgmInCntr == 5) ||
($PrgmInCntr == 6) ||
($PrgmInCntr == 7) ||
($PrgmInCntr == 24) ||
($PrgmInCntr == 26) ||
($PrgmInCntr == 29) ||
($PrgmInCntr == 30) ||
($PrgmInCntr == 33) ||
($PrgmInCntr == 36) ||
($PrgmInCntr == 39)
) {
if ($PrgmInCntr == 24) {
process_file01_24;
# $InString = $_;
# process_line25($_);
# print PGMFILE $InString . "\n";
}
if ($PrgmInCntr == 5) {
process_line_06;
}
if ($PrgmInCntr == 6) {
process_line_07;
}
if ($PrgmInCntr == 7) {
process_line_08;
}
if ($PrgmInCntr == 26) {
process_file01_26;
}
if ($PrgmInCntr == 29) {
process_file02_29;
}
if ($PrgmInCntr == 30) {
process_file02_30;
}
if ($PrgmInCntr == 33) {
process_file03_33;
}
if ($PrgmInCntr == 36) {
process_file55_36;
}
if ($PrgmInCntr == 39) {
process_file58_39;
}
}
else {
print PGMFILE $_ . "\n";
}
}
# $PrgmInCntr++;
}
}
else {
if (/^\*HEADER,/) {
process_header;
determine_FileNameOut;
if ($SW_output) {
open (PGMFILE, "> $FileNameOut")
or die "unable to open output file \"$FileNameOut\"";
}
}
else {
print LOGFILE "* ---------------------------------------- *\n";
print LOGFILE "ignoring :" . $_ . ":\n";
}
}
# read(NISTFILE, $inbuf, 81);
read(NISTFILE, $_, 81);
}
print LOGFILE "* ---------------------------------------- *\n";
print LOGFILE "PrgmInCntr =" . $PrgmInCntr;
close(NISTFILE);
close(LOGFILE);
__END__
+322
View File
@@ -0,0 +1,322 @@
#!/usr/local/bin/perl -w
#
# Copyright (C) 2001 David Essex
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
#
###########################################################################
# #
# Perl script to separate NIST test suite into separate files #
# and create a Makefile for the NIST test suite COBOL programs #
# #
###########################################################################
################################ Globals ##################################
my $SW_start;
# Set to true to output program files
my $SW_output = "true";
#my $SW_output = "";
my $InString;
my @InStringArray;
my @InStringArray1;
my $FileNameOut;
my $FileName;
#my $FileNameLog = "logfile.txt";
#my $FileNameLog = $ARGV[1];
my $FileNameLog;
my @FileNameLogArray;
my $FileNameNIST = $ARGV[0];
my @SubPrmArray;
my $SubPrmItem;
my $PrgmOutCntr = 0;
my $SubDirDel = "/";
# Replace directory name if required
#my $SubDir0 = "t";
my $SubDir0 = ".";
my $SubDir1 = "copybooks";
my $SubDir = "";
my $SubDirIdx = 0;
my @SubDirList = ("copybooks", "XX", "CM", "DB", "IC", "IF", "IX", "NC", "OB", "RL", "RW", "SG", "SM", "SQ", "ST");
my @SubDirListCntr = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
#
# PrgmList is actually an array of arrays
# It is used in two subroutines: create_makefile_list and create_makefiles
# The syntax for an array of arrays is a bit odd
# For more information on the syntax see:
# http://www.perldoc.com/perl5.6.1/pod/perldsc.html#ARRAYS-OF-ARRAYS
my @PrgmList;
#
my @ExtentionStringArray1 = ("COBOL", "SUBRTN", "SUBPRG", "CLBRY", "DATA*");
# Replace values with preffered output extention (suffix)
my @ExtentionStringArray2 = (".CBL", ".SUBRTN", ".SUBPRG", ".CPY", ".DATA");
#my @ExtentionStringArray2 = (".CBL", ".SUBRTN", ".CBL", "", ".DATA");
my @ExtentionStringArrayCntr = (0, 0, 0, 0, 0);
#
#------------------------------ End globals ------------------------------#
############################### Subroutines ###############################
sub initialize_rtn ()
{
if (! -d $SubDir0) {
mkdir $SubDir0, 0755 ;
}
}
sub create_subdir ()
{
$SubDir = $SubDir0 . $SubDirDel . $SubDirList[$SubDirIdx];
if (! -d $SubDir) {
mkdir $SubDir, 0755 ;
}
}
sub process_header ()
{
print LOGFILE "* ---------------------------------------- *\n";
print LOGFILE "head :" . $_ . ":\n";
$SW_start = 'True';
$InString = $_;
$InString =~ s/\*HEADER,//g;
# $InString =~ s/ /:/;
$InString =~ s/ //g;
print LOGFILE "InString :" . $InString . ":\n";
@InStringArray1 = split(/:/, $InString);
@InStringArray = split(/,/, $InStringArray1[0]);
for ($i=0; $i<=$#InStringArray; $i++) {
print LOGFILE "InStringArray[$i] :" . "$InStringArray[$i]" . ":\n";
}
}
#
# Add current filename to the appropriate directory listing
#
sub create_makefile_list ()
{
# push(@PrgmList, $FileName);
if ($SubDirIdx >= 2 and $SubDirIdx <= 14) {
push(@{$PrgmList[$SubDirIdx]}, $FileName);
}
}
#
# Output information about each directory to the log file
#
sub create_makefiles ()
{
for ($SubDirIdx=2; $SubDirIdx<=14; $SubDirIdx++) {
push(@{$PrgmList[$SubDirIdx]}, $FileName);
print LOGFILE "* ---------------------------------------- *\n";
print LOGFILE "Number of elements in " . $SubDirList[$SubDirIdx] .
" array :" . $#{$PrgmList[$SubDirIdx]} . "\n";
for ($i=0; $i<$#{$PrgmList[$SubDirIdx]}; $i++) {
print LOGFILE "Element " . $i . " in " . $SubDirList[$SubDirIdx] .
" array " . $PrgmList[$SubDirIdx][$i] ."\n";
}
}
}
sub determine_FileNameOut ()
{
$i = 0;
$ftype = "";
$ftlist = $InStringArray[$#InStringArray];
$ftdir = substr $ftlist, 0, 2;
# print LOGFILE "Debug : \$ftlist=" . $ftlist .
# ", \$ftdir=" .$ftdir .
# "\;\n";
# $j = $#InStringArray - 1;
# Determine file extention and substitution
$fext = $InStringArray[$#InStringArray];
for ($i=0; $i<=$#ExtentionStringArray1; $i++) {
# print LOGFILE "Debug : \$ExtentionStringArray1[" .
# $i .
# "]=" .
# $ExtentionStringArray1[$i] .
# ", " .
# " \$InStringArray[" . $j . "]=" .
# $InStringArray[$#InStringArray - 1] .
# ":\n";
if ($ExtentionStringArray1[$i] eq $InStringArray[$#InStringArray - 1]) {
$fext = $ExtentionStringArray2[$i];
$ftype = $i;
$ExtentionStringArrayCntr[$i]++;
$i= $#ExtentionStringArray1;
}
}
# Determine program sub directory
if ($ftype eq 3) {
$SubDir = $SubDirList[0];
$SubDirListCntr[0]++;
$SubDirIdx = 0;
}
else {
$SubDir = $SubDirList[1];
$SubDirListCntr[1]++;
for ($i=2; $i<=$#SubDirList; $i++) {
if ($SubDirList[$i] eq $ftdir) {
$SubDir = $SubDirList[$i];
$SubDirIdx = $i;
$SubDirListCntr[1]--;
$SubDirListCntr[$i]++;
$i = $#SubDirList;
}
}
}
# $FileName = $InStringArray[$#InStringArray] . "." . $fext;
$FileName = $InStringArray[$#InStringArray] . $fext;
$FileNameOut = $SubDir0 .
$SubDirDel .
$SubDir .
$SubDirDel .
$FileName ;
print LOGFILE "FileNameOut :" . "$FileNameOut" . ":\n";
if ($SubDirListCntr[$SubDirIdx] == 1) {
create_subdir;
}
if ($SubDirIdx > 1) {
create_makefile_list;
}
}
sub makefile_list1 ()
{
print LOGFILE "Number of elements in array :" . $#SubPrmArray . "\n";
print LOGFILE "* ---------------------------------------- *\n";
#sort @SubPrmArray;
@InStringArray1 = split(/:/, $SubPrmArray[0]);
$element1 = $InStringArray1[0];
$element2 = $InStringArray1[0];
foreach $element (@SubPrmArray) {
@InStringArray1 = split(/:/, $element);
if ($element1 eq $InStringArray1[0]) {
$element2 = $element2 . " " . $InStringArray1[1];
}
else {
print LOGFILE "$element2" . "\n";
$element1 = $InStringArray1[0];
$element2 = $InStringArray1[0] . " " . $InStringArray1[1];
}
}
}
#---------------------------- End subroutines ----------------------------#
################################## Main ###################################
if ($#ARGV != 0) {
print "ERROR: invalid number of arguments " . ($#ARGV + 1) . " != 1\n";
die;
}
@FileNameLogArray = <logfile*txt>;
$FileNameLog = "logfile." . ($#FileNameLogArray + 2) . ".txt";
if (-f $FileNameLog) {
print "ERROR: file FileNameLog \"$FileNameLog\" exists\n";
die;
}
#print "FileNameLog = $FileNameLog;\n";
#die;
#open (NISTFILE, "< $ARGV[0]")
open (NISTFILE, "< $FileNameNIST")
or die "unable to open file \"$FileNameNIST\"";
open (LOGFILE, "> $FileNameLog ")
or die "unable to create file \"$FileNameLog\"";
# Remove comment to create directories where for output program files
initialize_rtn;
while (<NISTFILE>)
{
chop;
if ($SW_start) {
if (/\*END-OF,/) {
print LOGFILE "tail :" . $_ . ":\n";
$SW_start = '';
$PrgmOutCntr++;
if ($SW_output) {
close(PGMFILE);
}
}
else {
if ($SW_output) {
print PGMFILE $_ . "\n";
}
}
}
else {
if (/\*HEADER,/) {
process_header;
determine_FileNameOut;
if ($SW_output) {
open (PGMFILE, "> $FileNameOut")
or die "unable to open output file \"$FileNameOut\"";
}
# if (($#InStringArray == 3) and ("$InStringArray[2]" eq "SUBPRG")) {
# if ($#InStringArray == 3) {
# $SubPrmItem = $InStringArray[1] . "." . $InStringArray[0] . ":" .
# $InStringArray[3] . "." . $InStringArray[2];
# print LOGFILE "SubPrmItem:" . "$SubPrmItem" . ":\n";
# push(@SubPrmArray, $SubPrmItem);
# }
}
else {
print LOGFILE "* ---------------------------------------- *\n";
print LOGFILE "ignoring :" . $_ . ":\n";
}
}
}
print LOGFILE "* ---------------------------------------- *\n";
print LOGFILE "Number of output programs :" . $PrgmOutCntr . "\n";
print LOGFILE "****\n";
for ($y=0; $y<=$#SubDirList; $y++) {
print LOGFILE "Number of files in directory " .
$SubDirList[$y] .
" is " .
$SubDirListCntr[$y] .
"\n";
}
print LOGFILE "****\n";
for ($y=0; $y<=$#ExtentionStringArray1; $y++) {
print LOGFILE "Number of files by extention " .
$ExtentionStringArray2[$y] .
" is " .
$ExtentionStringArrayCntr[$y] .
"\n";
}
print LOGFILE "****\n";
create_makefiles;
close(LOGFILE);
__END__
+119
View File
@@ -0,0 +1,119 @@
#!/usr/bin/perl -s
#
# Copyright (C) 2001 Keisuke Nishida
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
$skip{"NC109M"} = 1;
$skip{"NC110M"} = 1;
$skip{"NC113M"} = 1;
$skip{"NC204M"} = 1;
my $num_progs = 0;
my $test_skipped = 0;
my $compile_error = 0;
my $execute_error = 0;
my $total_all = 0;
my $total_pass = 0;
my $total_fail = 0;
my $total_deleted = 0;
my $total_inspect = 0;
my $total_ok = 0;
open (LOG, "> ../report.log") || die;
print LOG "Filename total pass fail deleted inspect\n";
print LOG "-------- ----- ---- ---- ------- -------\n";
foreach $in (glob("*.CBL")) {
my $exe = $in;
my $prt = $in;
$exe =~ s/\.CBL//;
$prt =~ s/\.CBL/\.PRT/;
$num_progs++;
printf LOG "%-12s", $in;
if ($skip{$exe}) {
$test_skipped++;
print LOG " ----- test skipped -----\n";
} else {
print "cobc $in && ./$exe\n";
if (system ("cobc $in") != 0) {
$compile_error++;
print LOG " ===== compile error =====\n";
} else {
if (system ("./$exe") != 0) {
$execute_error++;
print LOG " ***** execute error *****\n";
} else {
my $total = 0;
my $pass = 0;
my $fail = 0;
my $deleted = 0;
my $inspect = 0;
if (open (PRT, "report.txt")) {
while (<PRT>) {
if (/^ *([0-9]+) *OF *([0-9]+) *TESTS WERE/) {
$total += $2;
$pass += $1;
} elsif (/^ *([0-9NO]+) *TEST\(S\) ([A-Z]+)/) {
my $num = $1 eq "NO" ? 0 : $1;
if ($2 eq "FAILED") {
$fail += $num;
} elsif ($2 eq "DELETED") {
$deleted += $num;
} elsif ($2 eq "REQUIRE") {
$inspect += $num;
}
}
}
}
printf LOG ("%5s %4s %4s %7s %7s %s\n",
$total, $pass, $fail, $deleted, $inspect,
$fail == 0 ? "OK" : "");
$total_all += $total;
$total_pass += $pass;
$total_fail += $fail;
$total_deleted += $deleted;
$total_inspect += $inspect;
$total_ok++ if $fail == 0;
rename ("report.txt", "$exe.PRT");
}
}
}
}
print LOG "-------- ----- ---- ---- ------- -------\n";
printf LOG ("Total %5s %4s %4s %7s %7s\n",
$total_all, $total_pass, $total_fail, $total_deleted,
$total_inspect);
printf LOG ("%% 100.0 %4.1f %4.1f %4.1f %4.1f\n\n",
100 * $total_pass / $total_all,
100 * $total_fail / $total_all,
100 * $total_deleted / $total_all,
100 * $total_inspect / $total_all) if $total_all;
$num_tested = $num_progs - $test_skipped - $compile_error - $execute_error;
printf LOG ("Number of programs: %2s\n", $num_progs);
printf LOG ("Successfully tested: %2s (%5.2f%%)\n",
$num_tested, 100 * $num_tested / $num_progs);
printf LOG ("Successfully executed: %2s (%5.2f%%)\n",
$total_ok, 100 * $total_ok / $num_progs);
printf LOG ("Test skipped: %2s (%5.2f%%)\n",
$test_skipped, 100 * $test_skipped / $num_progs);
printf LOG ("Compile error: %2s (%5.2f%%)\n",
$compile_error, 100 * $compile_error / $num_progs);
printf LOG ("Execute error: %2s (%5.2f%%)\n",
$execute_error, 100 * $execute_error / $num_progs);
+123
View File
@@ -0,0 +1,123 @@
Module : IX
Filename Tot OK Fai Del Man
IX101A.PRT 2 2 0 0 0 OK
IX104A.PRT 13 13 0 0 0 OK
IX105A.PRT 9 9 0 0 0 OK
IX106A.PRT 10 10 0 0 0 OK
IX107A.PRT 14 14 0 0 0 OK
IX108A.PRT 32 32 0 0 0 OK
IX109A.PRT 13 12 1 0 0
IX112A.PRT 7 6 1 0 0
IX113A.PRT 4 4 0 0 0 OK
IX121A.PRT 3 3 0 0 0 OK
IX201A.PRT 2 2 0 0 0 OK
IX204A.PRT 13 13 0 0 0 OK
IX205A.PRT 12 11 1 0 0
IX206A.PRT 10 9 1 0 0
IX207A.PRT 8 8 0 0 0 OK
IX208A.PRT 29 19 10 0 0
IX210A.PRT 39 27 12 0 0
IX211A.PRT 17 13 4 0 0
IX212A.PRT 24 21 3 0 0
IX213A.PRT 21 15 6 0 0
IX214A.PRT 39 27 12 0 0
IX215A.PRT 33 7 23 3 0
IX216A.PRT 15 9 5 1 0
IX217A.PRT 6 1 5 0 0
IX218A.PRT 6 3 3 0 0
Total: 381 290 87 4 0 25 11 OK
Percentages: pgms ok: 44 % Tests ok: 76.1155 %
Module : NC
Filename Tot OK Fai Del Man
NC101A.PRT 93 93 0 0 0 OK
NC102A.PRT 42 42 0 0 0 OK
NC103A.PRT 102 102 0 0 0 OK
NC104A.PRT 141 141 0 0 0 OK
NC105A.PRT 132 129 0 3 0 OK
NC106A.PRT 126 121 5 0 0
NC107A.PRT 177 171 1 0 5
NC108M.PRT 14 14 0 0 0 OK
NC111A.PRT 7 7 0 0 0 OK
NC112A.PRT 32 32 0 0 0 OK
NC114M.PRT 6 5 0 0 1 OK
NC115A.PRT 31 31 0 0 0 OK
NC116A.PRT 66 66 0 0 0 OK
NC117A.PRT 40 39 1 0 0
NC118A.PRT 29 23 6 0 0
NC119A.PRT 36 33 3 0 0
NC120A.PRT 39 36 3 0 0
NC121M.PRT 41 39 0 0 2 OK
NC122A.PRT 24 24 0 0 0 OK
NC123A.PRT 34 34 0 0 0 OK
NC124A.PRT 169 167 2 0 0
NC125A.PRT 110 110 0 0 0 OK
NC126A.PRT 145 145 0 0 0 OK
NC127A.PRT 2 2 0 0 0 OK
NC131A.PRT 10 10 0 0 0 OK
NC132A.PRT 25 25 0 0 0 OK
NC133A.PRT 25 25 0 0 0 OK
NC134A.PRT 20 20 0 0 0 OK
NC135A.PRT 8 7 0 0 1 OK
NC136A.PRT 8 8 0 0 0 OK
NC137A.PRT 8 8 0 0 0 OK
NC138A.PRT 36 36 0 0 0 OK
NC139A.PRT 41 41 0 0 0 OK
NC140A.PRT 70 70 0 0 0 OK
NC141A.PRT 9 9 0 0 0 OK
NC170A.PRT 96 93 3 0 0
NC171A.PRT 108 107 1 0 0
NC172A.PRT 101 101 0 0 0 OK
NC173A.PRT 102 102 0 0 0 OK
NC175A.PRT 97 92 5 0 0
NC176A.PRT 124 121 3 0 0
NC177A.PRT 108 104 4 0 0
NC201A.PRT 59 56 3 0 0
NC202A.PRT 77 74 3 0 0
NC203A.PRT 57 55 2 0 0
NC204M.PRT 15 0 15 0 0
NC206A.PRT 53 53 0 0 0 OK
NC207A.PRT 85 85 0 0 0 OK
NC208A.PRT 24 24 0 0 0 OK
NC209A.PRT 32 27 5 0 0
NC210A.PRT 85 85 0 0 0 OK
NC214M.PRT 0 0 0 0 0 OK
NC216A.PRT 57 55 2 0 0
NC217A.PRT 81 80 0 1 0 OK
NC218A.PRT 125 125 0 0 0 OK
NC219A.PRT 9 7 2 0 0
NC220M.PRT 25 23 0 0 2 OK
NC221A.PRT 17 17 0 0 0 OK
NC222A.PRT 8 8 0 0 0 OK
NC223A.PRT 94 42 52 0 0
NC224A.PRT 14 10 0 4 0 OK
NC231A.PRT 24 16 8 0 0
NC232A.PRT 17 17 0 0 0 OK
NC233A.PRT 14 7 7 0 0
NC234A.PRT 17 17 0 0 0 OK
NC236A.PRT 10 5 5 0 0
NC239A.PRT 8 8 0 0 0 OK
NC240A.PRT 11 11 0 0 0 OK
NC241A.PRT 11 11 0 0 0 OK
NC242A.PRT 12 12 0 0 0 OK
NC243A.PRT 16 16 0 0 0 OK
NC244A.PRT 6 6 0 0 0 OK
NC245A.PRT 28 28 0 0 0 OK
NC247A.PRT 21 17 3 1 0
NC248A.PRT 11 8 3 0 0
NC251A.PRT 59 58 1 0 0
NC252A.PRT 75 75 0 0 0 OK
NC253A.PRT 61 48 13 0 0
Total: 3952 3771 161 9 11 78 51 OK
Percentages: pgms ok: 65.3846 % Tests ok: 95.42 %
Module : SM
Filename Tot OK Fai Del Man
SM103A.PRT 6 6 0 0 0 OK
SM105A.PRT 9 9 0 0 0 OK
SM106A.PRT 1 0 0 0 1 OK
SM107A.PRT 200 200 0 0 0 OK
SM201A.PRT 11 10 1 0 0
SM203A.PRT 1 1 0 0 0 OK
SM205A.PRT 9 9 0 0 0 OK
SM208A.PRT 7 0 6 1 0
Total: 244 235 7 1 1 8 6 OK
Percentages: pgms ok: 75 % Tests ok: 96.3115 %
+116
View File
@@ -0,0 +1,116 @@
Module : IX
Filename Tot OK Fai Del Man
IX101A.PRT 2 2 0 0 0 OK
IX102A.PRT 11 11 0 0 0 OK
IX103A.PRT 12 12 0 0 0 OK
IX104A.PRT 13 10 3 0 0
IX105A.PRT 9 9 0 0 0 OK
IX106A.PRT 10 10 0 0 0 OK
IX107A.PRT 14 14 0 0 0 OK
IX108A.PRT 32 32 0 0 0 OK
IX109A.PRT 13 9 4 0 0
IX110A.PRT 4 4 0 0 0 OK
IX111A.PRT 0 0 0 0 0 OK
IX112A.PRT 7 6 1 0 0
IX113A.PRT 4 3 1 0 0
IX114A.PRT 3 2 1 0 0
IX115A.PRT 3 2 1 0 0
IX116A.PRT 3 2 1 0 0
IX117A.PRT 3 2 1 0 0
IX118A.PRT 3 2 1 0 0
IX119A.PRT 3 1 2 0 0
IX120A.PRT 2 1 1 0 0
IX121A.PRT 3 3 0 0 0 OK
IX201A.PRT 2 2 0 0 0 OK
IX202A.PRT 11 11 0 0 0 OK
IX203A.PRT 12 12 0 0 0 OK
IX204A.PRT 13 10 3 0 0
IX205A.PRT 12 11 1 0 0
IX206A.PRT 10 9 1 0 0
IX208A.PRT 29 21 8 0 0
IX211A.PRT 17 17 0 0 0 OK
IX212A.PRT 24 20 4 0 0
IX213A.PRT 21 15 6 0 0
IX216A.PRT 15 9 5 1 0
IX218A.PRT 6 5 1 0 0
Total: 326 279 46 1 0 33 14 OK
Percentages: pgms ok: 42.4242 % Tests ok: 85.5828 %
Module : NC
Filename Tot OK Fai Del Man
NC101A.PRT 93 93 0 0 0 OK
NC102A.PRT 42 40 0 2 0 OK
NC103A.PRT 102 102 0 0 0 OK
NC104A.PRT 141 140 1 0 0
NC105A.PRT 132 121 8 3 0
NC106A.PRT 126 119 7 0 0
NC107A.PRT 177 169 3 0 5
NC108M.PRT 14 14 0 0 0 OK
NC111A.PRT 7 7 0 0 0 OK
NC112A.PRT 32 32 0 0 0 OK
NC115A.PRT 31 23 8 0 0
NC116A.PRT 66 66 0 0 0 OK
NC117A.PRT 40 39 1 0 0
NC118A.PRT 29 23 6 0 0
NC119A.PRT 36 33 3 0 0
NC120A.PRT 39 36 3 0 0
NC121M.PRT 41 37 2 0 2
NC122A.PRT 24 19 5 0 0
NC123A.PRT 34 24 10 0 0
NC124A.PRT 169 165 4 0 0
NC125A.PRT 110 110 0 0 0 OK
NC126A.PRT 145 145 0 0 0 OK
NC127A.PRT 2 2 0 0 0 OK
NC131A.PRT 10 10 0 0 0 OK
NC132A.PRT 25 25 0 0 0 OK
NC133A.PRT 25 25 0 0 0 OK
NC134A.PRT 20 20 0 0 0 OK
NC135A.PRT 8 7 0 0 1 OK
NC136A.PRT 8 8 0 0 0 OK
NC137A.PRT 8 8 0 0 0 OK
NC138A.PRT 36 36 0 0 0 OK
NC139A.PRT 41 41 0 0 0 OK
NC140A.PRT 70 70 0 0 0 OK
NC141A.PRT 9 9 0 0 0 OK
NC170A.PRT 96 93 3 0 0
NC171A.PRT 108 107 1 0 0
NC172A.PRT 101 101 0 0 0 OK
NC173A.PRT 102 102 0 0 0 OK
NC175A.PRT 97 92 5 0 0
NC176A.PRT 124 119 5 0 0
NC177A.PRT 108 104 4 0 0
NC201A.PRT 59 56 3 0 0
NC202A.PRT 77 74 3 0 0
NC203A.PRT 58 53 5 0 0
NC204M.PRT 15 0 15 0 0
NC206A.PRT 53 53 0 0 0 OK
NC208A.PRT 24 24 0 0 0 OK
NC209A.PRT 32 27 5 0 0
NC210A.PRT 85 85 0 0 0 OK
NC216A.PRT 57 36 21 0 0
NC217A.PRT 81 80 0 1 0 OK
NC218A.PRT 125 125 0 0 0 OK
NC220M.PRT 25 23 0 0 2 OK
NC221A.PRT 17 13 4 0 0
NC222A.PRT 8 6 2 0 0
NC223A.PRT 94 42 52 0 0
NC224A.PRT 14 10 0 4 0 OK
NC231A.PRT 24 16 8 0 0
NC232A.PRT 17 17 0 0 0 OK
NC233A.PRT 14 7 7 0 0
NC234A.PRT 17 17 0 0 0 OK
NC236A.PRT 10 5 5 0 0
NC239A.PRT 8 8 0 0 0 OK
NC240A.PRT 11 11 0 0 0 OK
NC241A.PRT 11 11 0 0 0 OK
NC242A.PRT 12 12 0 0 0 OK
NC243A.PRT 16 16 0 0 0 OK
NC244A.PRT 6 6 0 0 0 OK
NC245A.PRT 28 28 0 0 0 OK
NC247A.PRT 20 17 2 1 0
NC248A.PRT 11 8 3 0 0
NC251A.PRT 60 57 3 0 0
NC252A.PRT 75 75 0 0 0 OK
NC253A.PRT 61 48 13 0 0
NC254A.PRT 9 5 4 0 0
Total: 3862 3607 234 11 10 75 40 OK
Percentages: pgms ok: 53.3333 % Tests ok: 93.3972 %
+70
View File
@@ -0,0 +1,70 @@
#!/bin/bash -
#
# Copyright (C) 2001 Bernard Giroud
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
#
gawk -v module=$1 '
BEGIN {FS=" ";
print "Module : ",module
print " Filename "," Tot"," OK"," Fai"," Del"," Man"
tot_tot = 0
tot_ok = 0
tot_failed = 0
tot_deleted = 0
tot_inspect = 0
tot_pgm = 0
tot_pgm_ok = 0
}
{
if ($5 == "WERE" && $6 == "EXECUTED") {
nr_ok = $1 + 0
nr_tot = $3 + 0
tot_tot = tot_tot + nr_tot
tot_ok = tot_ok + nr_ok
tot_pgm = tot_pgm + 1
}
if ($2 == "TEST(S)") {
if ($3 == "FAILED") {
nr_failed = $1 + 0
if ($1 == "NO") nr_failed = 0
tot_failed = tot_failed + nr_failed
}
if ($3 == "DELETED") {
nr_deleted = $1 + 0
if ($1 == "NO") nr_deleted = 0
tot_deleted = tot_deleted + nr_deleted
}
if ($3 == "REQUIRE") {
nr_inspect = $1 + 0
if ($1 == "NO") nr_inspect = 0
tot_inspect = tot_inspect + nr_inspect
stat = " "
if (nr_failed == 0) {
stat = "OK"
tot_pgm_ok = tot_pgm_ok + 1
}
printf "%11s %4d %4d %4d %4d %4d %s\n", FILENAME, nr_tot, nr_ok, nr_failed, nr_deleted, nr_inspect, stat
}
}
}
END {
pc_success = (100 * tot_ok) / tot_tot
printf "%11s %4d %4d %4d %4d %4d %4d %4d OK\n", "Total: ", tot_tot, tot_ok, tot_failed, tot_deleted, tot_inspect, tot_pgm, tot_pgm_ok
pc_pgms_ok = (100 * tot_pgm_ok) / tot_pgm
print " Percentages: pgms ok:", pc_pgms_ok, "% Tests ok:", pc_success, "%"
}
' *.PRT >../$1.rpt