#! /bin/sh # # Generate the summary chapter # # $Id$ # echo "@c" echo "@c DO NOT EDIT -- AUTOMATICALLY GENERATED!!!" echo "@c" echo echo "@chapter Compliance Summary" echo wc2() { pattern=$1 shift grep "${pattern}" $* | wc -l } wc3() { pattern=$1 filter=$2 shift ; shift grep "${pattern}" $* | grep "${filter}" | wc -l } # adds the numbers passed on the command line addit() { sumx=0 for x in $* do sumx=`expr $sumx + $x` done echo $sumx } summarize_chapter() { echo if [ $# -eq 1 ] ; then grep "^@chapter" $1 | \ sed -e "s/^.chapter/@section/" \ -e "s/$/ Chapter/" else echo "@section Overall Summary" fi echo # functions functions_total=`wc2 "()" $*` functions_implemented=` wc3 "()" "Implemented" $*` functions_unimplemented=` wc3 "()" "Unimplemented" $*` functions_unmplementable=`wc3 "()" "Unimplementable" $*` functions_partial=` wc3 "()" "Partial Implementation" $*` functions_dummy=` wc3 "()" "Dummy Implementation" $*` functions_untested=` wc3 "()" "Untested Implementation" $*` functions_sum=`addit ${functions_implemented} \ ${functions_unimplemented} ${functions_unmplementable} \ ${functions_partial} ${functions_dummy} \ ${functions_untested}` # data types datatypes_total=`wc2 "Type," $*` datatypes_implemented=` wc3 "Type," "Implemented" $*` datatypes_unimplemented=` wc3 "Type," "Unimplemented" $*` datatypes_unmplementable=`wc3 "Type," "Unimplementable" $*` datatypes_partial=` wc3 "Type," "Partial Implementation" $*` datatypes_dummy=` wc3 "Type," "Dummy Implementation" $*` datatypes_untested=` wc3 "Type," "Untested Implementation" $*` datatypes_sum=`addit ${datatypes_implemented} \ ${datatypes_unimplemented} ${datatypes_unmplementable} \ ${datatypes_partial} ${datatypes_dummy} \ ${datatypes_untested}` # feature flags features_total=`wc2 "Feature Flag," $*` features_implemented=` wc3 "Feature Flag," "Implemented" $*` features_unimplemented=` wc3 "Feature Flag," "Unimplemented" $*` features_unmplementable=`wc3 "Feature Flag," "Unimplementable" $*` features_partial=` wc3 "Feature Flag," "Partial Implementation" $*` features_dummy=` wc3 "Feature Flag," "Dummy Implementation" $*` features_untested=` wc3 "Feature Flag," "Untested Implementation" $*` features_sum=`addit ${features_implemented} \ ${features_unimplemented} ${features_unmplementable} \ ${features_partial} ${features_dummy} \ ${features_untested}` # constants constants_total=`wc2 "Constant," $*` constants_implemented=` wc3 "Constant," "Implemented" $*` constants_unimplemented=` wc3 "Constant," "Unimplemented" $*` constants_unmplementable=`wc3 "Constant," "Unimplementable" $*` constants_partial=` wc3 "Constant," "Partial Implementation" $*` constants_dummy=` wc3 "Constant," "Dummy Implementation" $*` constants_untested=` wc3 "Constant," "Untested Implementation" $*` constants_sum=`addit ${constants_implemented} \ ${constants_unimplemented} ${constants_unmplementable} \ ${constants_partial} ${constants_dummy} \ ${constants_untested}` # Now print the reports echo "@example" echo "Functions:" echo " Total Number : ${functions_total}" echo " Implemented : ${functions_implemented}" echo " Unimplemented : ${functions_unimplemented}" echo " Unimplementable : ${functions_unmplementable}" echo " Partial : ${functions_partial}" echo " Dummy : ${functions_dummy}" echo " Untested : ${functions_untested}" echo "@end example" echo if [ ${functions_sum} -ne ${functions_total} ] ; then echo "@sp 1" echo "@center @b{FUNCTION COUNTS DO NOT ADD UP!!}" echo "@sp 1" fi echo "@example" echo "Data Types:" echo " Total Number : ${datatypes_total}" echo " Implemented : ${datatypes_implemented}" echo " Unimplemented : ${datatypes_unimplemented}" echo " Unimplementable : ${datatypes_unmplementable}" echo " Partial : ${datatypes_partial}" echo " Dummy : ${datatypes_dummy}" echo " Untested : ${datatypes_untested}" echo "@end example" echo if [ ${datatypes_sum} -ne ${datatypes_total} ] ; then echo "@sp 1" echo "@center @b{DATA TYPE COUNTS DO NOT ADD UP!!}" echo "@sp 1" fi echo "@example" echo "Feature Flags:" echo " Total Number : ${features_total}" echo " Implemented : ${features_implemented}" echo " Unimplemented : ${features_unimplemented}" echo " Unimplementable : ${features_unmplementable}" echo " Partial : ${features_partial}" echo " Dummy : ${features_dummy}" echo " Untested : ${features_untested}" echo "@end example" echo if [ ${features_sum} -ne ${features_total} ] ; then echo "@sp 1" echo "@center @b{FEATURE FLAG COUNTS DO NOT ADD UP!!}" echo "@sp 1" fi echo "@example" echo "Constants:" echo " Total Number : ${constants_total}" echo " Implemented : ${constants_implemented}" echo " Unimplemented : ${constants_unimplemented}" echo " Unimplementable : ${constants_unmplementable}" echo " Partial : ${constants_partial}" echo " Dummy : ${constants_dummy}" echo " Untested : ${constants_untested}" echo "@end example" echo if [ ${constants_sum} -ne ${constants_total} ] ; then echo "@sp 1" echo "@center @b{CONSTANT COUNTS DO NOT ADD UP!!}" echo "@sp 1" fi } if test $# -lt 1; then echo "Missing arguments" exit 1 fi chapters="$*" # go through the chapters one at a time for chapter in ${chapters} do summarize_chapter $chapter echo "@page" done # now generate the overall summary summarize_chapter ${chapters}