1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
$! $Id: run_test.com,v 4.3 1998/01/08 00:03:35 cthuang Exp $
$! Perform all regression-tests for CPROTO on VAX/VMS
$
$ verify = F$VERIFY(0)
$ path := 'F$ENVIRONMENT("DEFAULT")
$ path := "''F$EXTRACT(0,F$LENGTH(path)-1,path)'.-]"
$ CPROTO :== "$''path'cproto.exe"
$ CPROTO1 :== "$''path'cproto1.exe"
$
$ caselist=""
$ open/read input_file run_test.txt
$ read_loop:
$ read/end=read_exit input_file sometext
$ if f$locate("vms",sometext) .ne. f$length(sometext)
$ then
$ sometext = f$edit(sometext,"collapse,lowercase")
$ sometext = f$extract(0, f$locate("=", sometext), sometext)
$ caselist = "''caselist'/''sometext'"
$ endif
$ goto read_loop
$ read_exit:
$ close input_file
$ caselist = "''caselist'/"
$
$
$ if "''p1'" .eqs. ""
$ then
$ cases = "*"
$ else
$ cases = "''p1'"
$ endif
$
$ old_name = ""
$ test_loop:
$ ref_name = F$SEARCH("''cases'.ref;",1)
$ if ref_name .eqs. ""
$ then
$ verify = F$VERIFY(verify)
$ exit
$ endif
$ if "''old_name'" .eqs. "''ref_name'" then exit
$ old_name = ref_name
$
$ com_name = F$EXTRACT(0, F$LOCATE(".REF;", ref_name), ref_name)
$ casename = F$PARSE(ref_name,,, "NAME", "SYNTAX_ONLY")
$ casename = F$EDIT(casename,"LOWERCASE")
$ case_num = F$EXTRACT(4, F$LENGTH(casename), casename)
$
$ write sys$output "** ",ref_name
$ if f$locate("/''casename'/", caselist) .eq. f$length(caselist)
$ then
$ write sys$output "...skipped"
$ goto test_loop
$ endif
$
$ if F$SEARCH("''com_name'.dcl;", 2) .eqs. ""
$ then
$ write sys$output "?? no script for ", ref_name
$ else
$ if F$SEARCH("''com_name'.out") .nes. "" then delete 'com_name.out;*
$ if F$SEARCH("''com_name'.err") .nes. "" then delete 'com_name.err;*
$ if F$SEARCH("''casename'.c") .nes. "" then delete 'casename.c;*
$ copy syntax.c 'casename.c;
$ set noon
$ define/user_mode sys$error 'casename.err
$ @'com_name.dcl
$ set on
$ if F$SEARCH("''com_name'.out") .eqs. ""
$ then
$ write sys$output "?? no output from test"
$ else
$ if f$search("''casename'.c;-1") .nes. ""
$ then
$ diff/out='com_name 'casename.c
$ if $severity .ne. 1
$ then
$ open/append output_file 'com_name.out
$ write output_file "... edited ''casename'.c ..."
$ close output_file
$ append 'casename.c 'com_name.out
$ endif
$ endif
$ diff/out='com_name 'com_name.out 'ref_name
$ if $severity .ne. 1
$ then
$ write sys$output "?? test failed"
$ type 'com_name.dif
$ else
$ delete 'com_name.dif;*
$ if F$SEARCH("''com_name'.err") .nes. "" then delete 'com_name.err;*
$ endif
$ delete 'casename.c;*, 'com_name.out;*
$ endif
$ endif
$ goto test_loop
|