#! /bin/csh # This script file is used to run chgen with an input .sch file to # create the pr*.c and .h files. These files are then used to # generate a new version of chgen. This version is then run with # the exact same input and command line options as the v10 run, and # then is run with the -metafile -datinput -viewname options setenv TESTCASE $1 setenv TESTROOT /nfs/mars/grad/kspinney/chgenv10/chgenv11/test/$TESTCASE # source code and executable for the # schema-specific version setenv CHGENV10 /nfs/mars/grad/kspinney/chgenv10/executable/chgen10 # This is the 'old' executable setenv CHGENV11 /nfs/mars/grad/kspinney/chgenv10/chgenv11/chgen11 # This is the new hand-made executable setenv CHGENV11SRC /nfs/mars/grad/kspinney/chgenv10/chgenv11 # This contains chgenv11 source files # to be copied to the schema-specific # directory. Note that the pr*.c and # schema.h files will be overwritten # the next four lines are the test case directories for the test cases. # Each test case is run four times - once each in these sub-directories setenv CHGEN10TEST $TESTROOT/chgenv10 # the base case setenv CHGEN11TEST $TESTROOT/chgenv11 # proves the hand-made mods work setenv CHGEN11BOOTTEST $TESTROOT/chgenv11-boot # proves that bootstrap mods work setenv CHGEN11DATTEST $TESTROOT/chgenv11-dat # proves the reading of .dat files with bootstrapped code # Run the test case with chgenv10 echo "" echo "***** Running chgen10 $TESTCASE*****" cp $TESTROOT/$TESTCASE.sch $CHGEN10TEST cd $CHGEN10TEST $CHGENV10 $TESTCASE -metafile # Run the original test case with handmade chgen11 # The handmade chgenv11 used pr*c and ttta.h files with hand mods to original # chgen soure files. echo "" echo "***** Running chgen11 handmade $TESTCASE*****" cp $TESTROOT/$TESTCASE.sch $CHGEN11TEST cd $CHGEN11TEST $CHGENV11 $TESTCASE -metafile # diff the output files between the two versions: echo "`date`" > $TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_delete.c differences (chgen10 vs chgen11 (handmade) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_delete.c $CHGEN10TEST/pr_delete.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_dump.c differences (chgen10 vs chgen11 (handmade) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_dump.c $CHGEN10TEST/pr_dump.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_free.c differences (chgen10 vs chgen11 (handmade) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_free.c $CHGEN10TEST/pr_free.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_load.c differences (chgen10 vs chgen11 (handmade) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_load.c $CHGEN10TEST/pr_load.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_stats.c differences (chgen10 vs chgen11 (handmade) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_stats.c $CHGEN10TEST/pr_stats.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "$TESTCASE.h differences (chgen10 vs chgen11 (handmade) ): " >>$TESTROOT/$TESTCASE-diff.out diff $TESTCASE.h $CHGEN10TEST/$TESTCASE.h >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "$TESTCASE.msdat differences (chgen10 vs chgen11 (handmade) ): " >>$TESTROOT/$TESTCASE-diff.out diff $TESTCASE.msdat $CHGEN10TEST/$TESTCASE.msdat >>$TESTROOT/$TESTCASE-diff.out echo "==============================================================" >>$TESTROOT/$TESTCASE-diff.out # Create a new bootstrapped version of chgen (chgen11) with the newly created pr*.c and $TESTCASE.h files echo "" echo "***** Making a bootstrap chgenv11*****" cp $CHGENV11SRC/*.c $TESTROOT # Original .c files cp $CHGENV11SRC/*.h $TESTROOT # Original .h files cp $CHGENV11SRC/Makefile.v11 $TESTROOT/Makefile.v11 chmod 666 pr*.c $TESTCASE.h schema.h cp $CHGEN11TEST/*.c $TESTROOT # schema-specific .c files cp $CHGEN11TEST/*.h $TESTROOT # schema-specific .h files cd $TESTROOT cp $TESTCASE.h schema.h # make a duplicate copy to satisfy Make because # the chgen legacy source files #include schema.h # while the pr*.c files #include .h # (e.g. ttta.h, bde.h, etc.) make -f Makefile.v11 # make the new source file rm *.o # for disk space reasons # Run the original test case with the bootstrapped chgen11 echo "" echo "***** Running chgen11 bootatrap $TESTCASE*****" cp $TESTROOT/$TESTCASE.sch $CHGEN11BOOTTEST cd $CHGEN11BOOTTEST $TESTROOT/chgen11 $TESTCASE -metafile # diff the output files between the two versions: echo "`date`" >> $TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_delete.c differences (chgen11 (handmade) vs chgen11 (bootstrap) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_delete.c $CHGEN11TEST/pr_delete.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_dump.c differences (chgen11 (handmade) vs chgen11 (bootstrap) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_dump.c $CHGEN11TEST/pr_dump.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_free.c differences (chgen11 (handmade) vs chgen11 (bootstrap) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_free.c $CHGEN11TEST/pr_free.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_load.c differences (chgen11 (handmade) vs chgen11 (bootstrap) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_load.c $CHGEN11TEST/pr_load.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_stats.c differences (chgen11 (handmade) vs chgen11 (bootstrap) ): " >>$TESTROOT/$TESTCASE-diff.out diff pr_stats.c $CHGEN11TEST/pr_stats.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "$TESTCASE.h differences (chgen11 (handmade) vs chgen11 (bootstrap) ): " >>$TESTROOT/$TESTCASE-diff.out diff $TESTCASE.h $CHGEN11TEST/$TESTCASE.h >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "$TESTCASE.msdat differences (chgen11 (handmade) vs chgen11 (bootstrap) ): " >>$TESTROOT/$TESTCASE-diff.out diff $TESTCASE.msdat $CHGEN11TEST/$TESTCASE.msdat >>$TESTROOT/$TESTCASE-diff.out echo "==============================================================" >>$TESTROOT/$TESTCASE-diff.out # Run the test case with chgen11 bootstrap and with the -datafile option echo "" echo "***** Running chgen11 bootatrap $TESTCASE -metafile -datinput -viewname LatestView*****" cp $TESTROOT/$TESTCASE.sch $CHGEN11DATTEST cp $TESTROOT/$TESTCASE.viewdefs $CHGEN11DATTEST cp $CHGEN11TEST/$TESTCASE.msdat $CHGEN11DATTEST/$TESTCASE.dat cd $CHGEN11DATTEST $TESTROOT/chgen11 $TESTCASE -metafile -datinput -viewname LatestView # diff the output files between the two versions: echo "`date`" >> $TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_delete.c differences (chgen11 (handmade) vs chgen11 bootstrap with -datinput option): " >>$TESTROOT/$TESTCASE-diff.out diff pr_delete.c $CHGEN11TEST/pr_delete.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_dump.c differences (chgen11 (handmade) vs chgen11 bootstrap with -datinput option): " >>$TESTROOT/$TESTCASE-diff.out diff pr_dump.c $CHGEN11TEST/pr_dump.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_free.c differences (chgen11 (handmade) vs chgen11 bootstrap with -datinput option): " >>$TESTROOT/$TESTCASE-diff.out diff pr_free.c $CHGEN11TEST/pr_free.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_load.c differences (chgen11 (handmade) vs chgen11 bootstrap with -datinput option): " >>$TESTROOT/$TESTCASE-diff.out diff pr_load.c $CHGEN11TEST/pr_load.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "pr_stats.c differences (chgen11 (handmade) vs chgen11 bootstrap with -datinput option): " >>$TESTROOT/$TESTCASE-diff.out diff pr_stats.c $CHGEN11TEST/pr_stats.c >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "$TESTCASE.h differences (chgen11 (handmade) vs chgen11 bootstrap with -datinput option): " >>$TESTROOT/$TESTCASE-diff.out diff $TESTCASE.h $CHGEN11TEST/$TESTCASE.h >>$TESTROOT/$TESTCASE-diff.out echo "" >>$TESTROOT/$TESTCASE-diff.out echo "$TESTCASE.msdat differences (chgen11 (handmade) vs chgen11 bootstrap with -datinput option): " >>$TESTROOT/$TESTCASE-diff.out diff $TESTCASE.msdat $CHGEN11TEST/$TESTCASE.msdat >>$TESTROOT/$TESTCASE-diff.out echo "==============================================================" >>$TESTROOT/$TESTCASE-diff.out echo "`date`" >> $TESTROOT/$TESTCASE-diff.out