📄 test
字号:
#/bin/sh# Compare the output of ../src/indent to correct output# generated by earlier versionsINDENT=../src/indent# First, make sure the executable existsif test -x $INDENT; then if test -d ./output; then echo '****' echo 'Errors remain; output directory still exists' echo '****' ls -ld ./output exit 1 fi echo -n "Regression testing " $INDENT --version echoelse echo '****' echo First, you must make $INDENT echo '****' echo exit 1fi# Code to be tested with default optionsEXAMPLES="do.c else.c for.c func-def.c lshift.c ncs.c \ proto.c typedef.h no-newline.c emacs-compatible.h fp.c unary.c \ struct_param.c no-newline2.c no-newline3.c wide.c"BUGS="case-label.c one-line-1.c one-line-2.c one-line-3.c \ one-line-4.c struct-decl.c sizeof-in-while.c line-break-comment.c \ macro.c enum.c elif.c nested.c wrapped-string.c"INDENTSRC="args.c backup.h backup.c dirent_def.h globs.c indent.h \ indent.c indent_globs.h io.c lexi.c memcpy.c parse.c pr_comment.c \ sys.h version.h"mkdir outputecho -n "Generating indent et al with default settings..."for i in $EXAMPLES $INDENTSRC $BUGSdo $INDENT -npro $i -o output/$idoneecho "Done."# Cases testing certain optionsecho -n "Generating special option examples..."SPECIALS="typedef-bug.c bug-hp.c bug-di.c newlined-parms.c indent.pro.c \ comments1.c comments1-fca.c ncs-on-return.c sob.c continue.c continue-lp.c \ kr.c struct-decl-kr.c embedded-cuddle1.c embedded-cuddle2.c kr-proc-decls.c \ bbb-test.c preesc-comment.c if-decl-else-decl.c cp-indent.c comments.c \ elipsis-attribute.c comments2.c comments3.c comments4.c brackets.c brackets33.c \ brackets34.c brackets35.c brackets36.c brackets37.c brackets38.c \ initializers.c else-if.c else-comment-br.c else-comment-bl.c \ else-comment-br-ce.c const.c case.c case-br.c scope.c scope-br.c \ comment-break.c cdb.c bbreak.c bad-break.c pre.c dont-line-up-parentheses.c \ bad-comment.c unknown-type.c unknown-type-npsl.c bug-npsl.c bug-psl.c"ARGS="-bad"$INDENT -npro $ARGS bad-break.c -o output/bad-break.c$INDENT -npro $ARGS bad-comment.c -o output/bad-comment.cARGS="-cdb"$INDENT -npro $ARGS cdb.c -o output/cdb.cARGS="-kr"$INDENT -npro $ARGS kr.c -o output/kr.c$INDENT -npro $ARGS struct-decl.c -o output/struct-decl-kr.c$INDENT -npro $ARGS embedded-cuddle1.c -o output/embedded-cuddle1.c$INDENT -npro $ARGS embedded-cuddle2.c -o output/embedded-cuddle2.c$INDENT -npro $ARGS kr-proc-decls.c -o output/kr-proc-decls.cARGS="-cli23 -bli8 -di50 -cbi1 -ci7 -i5"$INDENT -npro $ARGS case.c -o output/case.c$INDENT -npro $ARGS -br case.c -o output/case-br.c$INDENT -npro $ARGS scope.c -o output/scope.c$INDENT -npro $ARGS -br scope.c -o output/scope-br.cARGS="-nlp -ci3 -fca"$INDENT -npro $ARGS continue.c -o output/continue.cARGS="-lp"$INDENT -npro $ARGS continue.c -o output/continue-lp.cARGS="-sob"$INDENT -npro $ARGS sob.c -o output/sob.cARGS="-ncs -TUNCH"$INDENT -npro $ARGS typedef-bug.c -o output/typedef-bug.c$INDENT -npro $ARGS ncs-on-return.c -o output/ncs-on-return.cARGS="-kr -i2"$INDENT -npro $ARGS bug-hp.c -o output/bug-hp.cARGS="-orig"$INDENT -npro $ARGS bug-di.c -o output/bug-di.c$INDENT -npro $ARGS newlined-parms.c -o output/newlined-parms.cARGS="-bad -bap -nbc -bl -c36 -cd36 -ncdb -nce -ci8 -cli0 -cs -d0 \-di1 -nfca -i2 -ip0 -l80 -nlp -npcs -npsl -nsc -nsob -ss -nv"$INDENT -npro $ARGS indent.pro.c -o output/indent.pro.cARGS="-fca"$INDENT -npro $ARGS comments1.c -o output/comments1-fca.cARGS="-bbb"$INDENT -npro $ARGS bbb-test.c -o output/bbb-test.c$INDENT -npro comments1.c -o output/comments1.c$INDENT -npro unknown-type.c -o output/unknown-type.c$INDENT -npro preesc-comment.c -o output/preesc-comment.cARGS="-npsl"$INDENT -npro $ARGS if-decl-else-decl.c -o output/if-decl-else-decl.c$INDENT -npro $ARGS unknown-type.c -o output/unknown-type-npsl.c$INDENT -npro $ARGS bug-npsl.c -o output/bug-npsl.c$INDENT -npro bug-npsl.c -o output/bug-psl.cARGS="-cp9"$INDENT -npro $ARGS cp-indent.c -o output/cp-indent.cARGS="-di7"$INDENT -npro $ARGS comments.c -o output/comments.cARGS="-ci5 -T aClient"$INDENT -npro $ARGS elipsis-attribute.c -o output/elipsis-attribute.cARGS="-npsl -npcs -di3"$INDENT -npro $ARGS comments2.c -o output/comments2.c$INDENT -npro $ARGS comments3.c -o output/comments3.cARGS="-cdb -sc"$INDENT -npro $ARGS comments4.c -o output/comments4.c$INDENT -npro brackets.c -o output/brackets.c$INDENT -npro --line-length33 brackets.c -o output/brackets33.c$INDENT -npro --line-length34 brackets.c -o output/brackets34.c$INDENT -npro --line-length35 brackets.c -o output/brackets35.c$INDENT -npro --line-length36 brackets.c -o output/brackets36.c$INDENT -npro --line-length37 brackets.c -o output/brackets37.c$INDENT -npro --line-length38 brackets.c -o output/brackets38.c$INDENT -npro --line-length40 bbreak.c -o output/bbreak.cARGS="-ci5"$INDENT -npro $ARGS initializers.c -o output/initializers.cARGS="-nhnl --brace-indent0 --indent-level2 --dont-line-up-parentheses --continuation-indentation4 --paren-indentation0 --line-length80"$INDENT -npro $ARGS else-if.c -o output/else-if.cARGS=""$INDENT -npro -bl else-comment.c -o output/else-comment-bl.c$INDENT -npro -br else-comment.c -o output/else-comment-br.c$INDENT -npro -br -ce else-comment.c -o output/else-comment-br-ce.cARGS="-kr -cp0 -l132 -lps -br -psl"$INDENT -npro $ARGS const.c -o output/const.cARGS="--dont-break-procedure-type --ignore-newlines"$INDENT -npro $ARGS comment-break.c -o output/comment-break.cARGS="-ppi 5"$INDENT -npro $ARGS pre.c -o output/pre.cARGS="-i4 -l100 -nlp"$INDENT -npro $ARGS dont-line-up-parentheses.c -o output/dont-line-up-parentheses.c# Check line counting of input file$INDENT -npro line-count.c -o /dev/null 2>&1 | cut -d: -f3 > output/line-count.cecho "Done."ERR=output/errors# Now diff all the new files with the old standardechoecho "Diffing generated code against standard..."for i in $EXAMPLES $INDENTSRC $SPECIALS $BUGS; do echo -n ...$i... diff --initial-tab standard/$i output/$i > output/$i-diffs 2>&1 if [ -s output/$i-diffs ]; then echo -n ERROR: $i failed | tee -a $ERR else rm output/$i-diffs fi echodoneecho "Diffing generated code against standard...Done."# Testing indent (x) == indent (indent (x))echoecho -n "Testing meta-indent..."ARGS="-bacc -nbad -nbap -nbc -br -cdb -nce -ci4 -cli4 -cs -nfc1 \-fca -i4 -ip0 -l78 -lp -npcs -psl -sc -ss -ts4"$INDENT -npro $ARGS meta-indent.c -o output/meta-indent.c-1diff --initial-tab output/meta-indent.c-1 standard/meta-indent.c > output/meta-diffsif [ -s output/meta-diffs ]; then echo ERROR: 1st Meta test failed | tee -a $ERRelse rm output/meta-diffsfifor j in 1 2 3 4 5; do i=`expr $j + 1` $INDENT -npro $ARGS output/meta-indent.c-$j -o output/meta-indent.c-$i diff --initial-tab output/meta-indent.c-$j output/meta-indent.c-$i > output/meta-diffs-$j-$i if [ -s output/meta-diffs-$j-$i ]; then echo ERROR: Meta test $i failed | tee -a $ERR else rm output/meta-diffs-$j-$ifidoneecho "Done"# This section was added when `pr_comment.c' was rewritten, to test# the new comment-handling code.echoecho Testing new comment stuff...A1="-fca"A2="-fc1"A3="-fca -fc1"A4="-fca -fc1 -cdb"A5="-fca -fc1 -cdb -sc"A6="-fca -fc1 -sc"A7="-sc -fc1"A8="-cdb -fc1"A9="-sc -cdb -fc1"A10="-sc -cdb"$INDENT -npro -st boxed.c > output/boxed.c-0$INDENT -npro -st $A1 boxed.c > output/boxed.c-1$INDENT -npro -st $A2 boxed.c > output/boxed.c-2$INDENT -npro -st $A3 boxed.c > output/boxed.c-3$INDENT -npro -st $A4 boxed.c > output/boxed.c-4$INDENT -npro -st $A5 boxed.c > output/boxed.c-5$INDENT -npro -st $A6 boxed.c > output/boxed.c-6$INDENT -npro -st $A7 boxed.c > output/boxed.c-7$INDENT -npro -st $A8 boxed.c > output/boxed.c-8$INDENT -npro -st $A9 boxed.c > output/boxed.c-9$INDENT -npro outer.c -o output/outer.c-0$INDENT -npro $A1 outer.c -o output/outer.c-1$INDENT -npro $A2 outer.c -o output/outer.c-2$INDENT -npro $A3 outer.c -o output/outer.c-3$INDENT -npro $A4 outer.c -o output/outer.c-4$INDENT -npro $A5 outer.c -o output/outer.c-5$INDENT -npro $A6 outer.c -o output/outer.c-6$INDENT -npro $A7 outer.c -o output/outer.c-7$INDENT -npro $A8 outer.c -o output/outer.c-8$INDENT -npro $A9 outer.c -o output/outer.c-9A1="-fc1 -fca"A2="-fc1 -fca -cdb"A3="-fc1 -fca -cdb -sc"A4="-fc1 -fca -sc"A5="-fc1 -fca -l 50 -lc 50"A6="-fc1 -fca -l 50 -lc 50 -cdb"A7="-fc1 -fca -l 50 -lc 50 -sc"A8="-fc1 -fca -l 50 -lc 50 -sc -cdb"$INDENT -npro newlines.c -o output/newlines.c-0$INDENT -npro $A1 newlines.c -o output/newlines.c-1$INDENT -npro $A2 newlines.c -o output/newlines.c-2$INDENT -npro $A3 newlines.c -o output/newlines.c-3$INDENT -npro $A4 newlines.c -o output/newlines.c-4$INDENT -npro $A5 newlines.c -o output/newlines.c-5$INDENT -npro $A6 newlines.c -o output/newlines.c-6$INDENT -npro $A7 newlines.c -o output/newlines.c-7$INDENT -npro $A8 newlines.c -o output/newlines.c-8A1="-l 50 -lc 50"A2="-l 50 -lc 50 -c 20"A3="-l 50 -lc 50 -cd 30"A4="-c 20 -cd 30"A5="-fc1 -fca"A6="-l 50 -lc 50 -fc1 -fca"A7="-cp 10"A8="-fc1 -fca -l50 -lc50 -c 30 -cd 20 -cp 8"A9="-cdb -sc -l 50 -lc 50 -fca -fc1"$INDENT -npro cplus.c -o output/cplus.c-0$INDENT -npro $A1 cplus.c -o output/cplus.c-1$INDENT -npro $A2 cplus.c -o output/cplus.c-2$INDENT -npro $A3 cplus.c -o output/cplus.c-3$INDENT -npro $A4 cplus.c -o output/cplus.c-4$INDENT -npro $A5 cplus.c -o output/cplus.c-5$INDENT -npro $A6 cplus.c -o output/cplus.c-6$INDENT -npro $A7 cplus.c -o output/cplus.c-7$INDENT -npro $A8 cplus.c -o output/cplus.c-8$INDENT -npro $A9 cplus.c -o output/cplus.c-9A1="-sc -cdb -fc1"A2="-i 10 -fc1"$INDENT -npro tabs.c -o -fc1 output/tabs.c-0$INDENT -npro $A1 tabs.c -o output/tabs.c-1$INDENT -npro $A2 tabs.c -o output/tabs.c-2$INDENT -npro cplus-one.c -o output/cplus-one.c$INDENT -npro class-func.cc -o output/class-func.cc$INDENT -npro empty.c -o output/empty.c$INDENT -npro already-starred.c -o output/already-starred.c$INDENT -npro box-comm.c -o output/box-comm.c$INDENT -npro long-comm.c -o output/long-comm.c$INDENT -npro ind-star.c -o output/ind-star.c$INDENT -npro first-in-block.c -o output/first-in-block.c# currently fails $INDENT -npro two-on-line.c -o output/two-on-line.c$INDENT -npro method.c -o output/method.cA1="-fca"$INDENT -npro right-margin-comment.c $A1 -o output/right-margin-comment.c# These aren't really comment testing, they test the indent control# statements '*INDENT-ON*' and '*INDENT-OFF*'$INDENT -npro on-off-1.c -o output/on-off-1.c$INDENT -npro on-off-2.c -o output/on-off-2.ccd outputERR=errors# currently fails: two-on-line.c for i in boxed.c-* outer.c-* newlines.c-* cplus.c-* tabs.c-* cplus-one.c class-func.cc \ empty.c already-starred.c box-comm.c long-comm.c ind-star.c first-in-block.c \ on-off-1.c on-off-2.c \ method.c right-margin-comment.cdo echo -n ...$i... diff --initial-tab ../standard/$i $i > $i-diffs 2>&1 if [ -s $i-diffs ] then echo -n ERROR: $i failed | tee -a $ERR echo >> $ERR else rm $i-diffs fi echodoneecho Testing new comment stuff...Done.# Now see if any errors occured. If so, bitch and moan, otherwise,# remove the output directory.#if test -s $ERRthen echo '**** Errors occured:' cat $ERR echo '**** Errors occured: ./output not removed' echoelse cd .. rm -rf output echo echo Regression test successfully completed. echofi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -