📄 general.m4
字号:
_ATEOF # " 1 42 45 " => "^(1|42|45);". at_groups_pattern=`echo "$at_groups" | sed 's/^ *//;s/ *$//;s/ */|/g'` echo "$at_help_all" | awk 'BEGIN { FS = ";" } { if ($[1] !~ /^('"$at_groups_pattern"')$/) next } { if ($[1]) printf " %3d: %-18s %s\n", $[1], $[2], $[3] if ($[4]) printf " %s\n", $[4] } ' exit 0fim4_divert_pop([HELP_END])dnlm4_divert_push([PREPARE_TESTS])dnl# Don't take risks: use only absolute directories in PATH.## For stand-alone test suites, AUTOTEST_PATH is relative to `.'.## For embedded test suites, AUTOTEST_PATH is relative to the top level# of the package. Then expand it into build/src parts, since users# may create executables in both places.## There might be directories that don't exist, but don't redirect# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.AUTOTEST_PATH=`echo $AUTOTEST_PATH | tr ':' $PATH_SEPARATOR`at_path=_AS_PATH_WALK([$AUTOTEST_PATH $PATH],[case $as_dir in [[\\/]]* | ?:[[\\/]]* ) at_path=$at_path$PATH_SEPARATOR$as_dir ;; * ) if test -z "$at_top_builddir"; then # Stand-alone test suite. at_path=$at_path$PATH_SEPARATOR$as_dir else # Embedded test suite. at_path=$at_path$PATH_SEPARATOR$at_top_builddir/$as_dir at_path=$at_path$PATH_SEPARATOR$at_top_srcdir/$as_dir fi ;;esac])# Now build and simplify PATH.PATH=_AS_PATH_WALK([$at_path],[as_dir=`(cd "$as_dir" && pwd) 2>/dev/null`test -d "$as_dir" || continuecase $PATH in $as_dir | \ $as_dir$PATH_SEPARATOR* | \ *$PATH_SEPARATOR$as_dir | \ *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR* ) ;; '') PATH=$as_dir ;; *) PATH=$PATH$PATH_SEPARATOR$as_dir ;;esac])export PATH# Setting up the FDs.# 5 is the log file. Not to be overwritten if `-d'.m4_define([AS_MESSAGE_LOG_FD], [5])$at_debug_p && at_suite_log=/dev/nullexec AS_MESSAGE_LOG_FD>$at_suite_log# Banners and logs.AS_BOX(m4_defn([AT_TESTSUITE_NAME])[.]){ AS_BOX(m4_defn([AT_TESTSUITE_NAME])[.]) echo echo "$as_me: command line was:" echo " $ $[0] $at_cli_args" echo # Try to find a few ChangeLogs in case it might help determining the # exact version. Use the relative dir: if the top dir is a symlink, # find will not follow it (and options to follow the links are not # portable), which would result in no output here. if test -n "$at_top_srcdir"; then AS_BOX([ChangeLogs.]) echo for at_file in `find "$at_top_srcdir" -name ChangeLog -print` do echo "$as_me: $at_file:" sed 's/^/| /;10q' $at_file echo done AS_UNAME echo fi # Contents of the config files. for at_file in atconfig atlocal do test -r $at_file || continue echo "$as_me: $at_file:" sed 's/^/| /' $at_file echo done AS_BOX([Tested programs.]) echo} >&AS_MESSAGE_LOG_FD# Report what programs are being tested.for at_program in : $at_testeddo test "$at_program" = : && continue _AS_PATH_WALK([$PATH], [test -f $as_dir/$at_program && break]) if test -f $as_dir/$at_program; then { echo "AT_LINE: $as_dir/$at_program --version" $as_dir/$at_program --version echo } >&AS_MESSAGE_LOG_FD 2>&1 else AS_ERROR([cannot find $at_program]) fidone{ AS_BOX([Running the tests.])} >&AS_MESSAGE_LOG_FDat_start_date=`date`at_start_time=`(date +%s) 2>/dev/null`echo "$as_me: starting at: $at_start_date" >&AS_MESSAGE_LOG_FDat_xpass_list=at_xfail_list=at_pass_list=at_fail_list=at_skip_list=at_group_count=0m4_divert_pop([PREPARE_TESTS])dnlm4_divert_push([TESTS])dnl# Create the master directory if it doesn't already exist.test -d $at_suite_dir || mkdir $at_suite_dir || AS_ERROR([cannot create $at_suite_dir])# Can we diff with `/dev/null'? DU 5.0 refuses.if diff /dev/null /dev/null >/dev/null 2>&1; then at_devnull=/dev/nullelse at_devnull=$at_suite_dir/devnull cp /dev/null $at_devnullfi# Use `diff -u' when possible.if diff -u $at_devnull $at_devnull >/dev/null 2>&1; then at_diff='diff -u'else at_diff=difffifor at_group in $at_groupsdo # Be sure to come back to the top test directory. cd $at_suite_dir case $at_group in banner-*) at_group_log=$at_suite_log ;; *) # Skip tests we already run (using --keywords makes it easy to get # duplication). case " $at_pass_test $at_skip_test $at_fail_test " in *" $at_group "* ) continue;; esac # Normalize the test group number. at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"` # Create a fresh directory for the next test group, and enter. at_group_dir=$at_suite_dir/$at_group_normalized at_group_log=$at_group_dir/$as_me.log rm -rf $at_group_dir mkdir $at_group_dir || AS_ERROR([cannot create $at_group_dir]) cd $at_group_dir ;; esac echo 0 > $at_status_file # Clearly separate the test groups when verbose. test $at_group_count != 0 && $at_verbose # In verbose mode, append to the log file *and* show on # the standard output; in quiet mode only write to the log if test $at_verbose = echo; then at_tee_pipe="tee -a $at_group_log" else at_tee_pipe="cat >> $at_group_log" fi case $at_group indnl Test groups inserted here (TESTS).m4_divert_pop([TESTS])[]dnlm4_divert_push([TESTS_END])[]dnl * ) echo "$as_me: no such test group: $at_group" >&2 continue ;; esac # Be sure to come back to the suite directory, in particular # since below we might `rm' the group directory we are in currently. cd $at_suite_dir case $at_group in banner-*) ;; *) if test ! -f $at_check_line_file; then sed "s/^ */$as_me: warning: /" <<_ATEOF A failure happened in a test group before any test could be run. This means that test suite is improperly designed. Please report this failure to <AT_PACKAGE_BUGREPORT>._ATEOF echo "$at_setup_line" >$at_check_line_file fi at_group_count=`expr 1 + $at_group_count` $at_verbose $ECHO_N "$at_group. $at_setup_line: $ECHO_C" echo $ECHO_N "$at_group. $at_setup_line: $ECHO_C" >> $at_group_log case $at_xfail:$at_status in yes:0) at_msg="UNEXPECTED PASS" at_xpass_list="$at_xpass_list $at_group" at_errexit=$at_errexit_p ;; no:0) at_msg="ok" at_pass_list="$at_pass_list $at_group" at_errexit=false ;; *:77) at_msg="skipped (`cat $at_check_line_file`)" at_skip_list="$at_skip_list $at_group" at_errexit=false ;; yes:*) at_msg="expected failure (`cat $at_check_line_file`)" at_xfail_list="$at_xfail_list $at_group" at_errexit=false ;; no:*) at_msg="FAILED (`cat $at_check_line_file`)" at_fail_list="$at_fail_list $at_group" at_errexit=$at_errexit_p ;; esac echo $at_msg at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg" case $at_status in 0|77) # $at_times_file is only available if the group succeeded. # We're not including the group log, so the success message # is written in the global log separately. But we also # write to the group log in case they're using -d. if test -f $at_times_file; then at_log_msg="$at_log_msg (`sed 1d $at_times_file`)" rm -f $at_times_file fi echo "$at_log_msg" >> $at_group_log echo "$at_log_msg" >&AS_MESSAGE_LOG_FD # Cleanup the group directory, unless the user wants the files. $at_debug_p || rm -rf $at_group_dir ;; *) # Upon failure, include the log into the testsuite's global # log. The failure message is written in the group log. It # is later included in the global log. echo "$at_log_msg" >> $at_group_log # Upon failure, keep the group directory for autopsy, and # create the debugging script. { echo "#! /bin/sh" echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$[@]"}'\''='\''"$[@]"'\''' echo "cd $at_dir" echo 'exec ${CONFIG_SHELL-'"$SHELL"'}' "$[0]" \ '-v -d' "$at_debug_args" "$at_group" '${1+"$[@]"}' echo 'exit 1' } >$at_group_dir/run chmod +x $at_group_dir/run $at_errexit && break ;; esac ;; esacdone# Back to the top directory.cd $at_dir# Compute the duration of the suite.at_stop_date=`date`at_stop_time=`(date +%s) 2>/dev/null`echo "$as_me: ending at: $at_stop_date" >&AS_MESSAGE_LOG_FDat_duration_s=`(expr $at_stop_time - $at_start_time) 2>/dev/null`at_duration_m=`(expr $at_duration_s / 60) 2>/dev/null`at_duration_h=`(expr $at_duration_m / 60) 2>/dev/null`at_duration_s=`(expr $at_duration_s % 60) 2>/dev/null`at_duration_m=`(expr $at_duration_m % 60) 2>/dev/null`at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"if test "$at_duration" != "h m s"; then echo "$as_me: test suite duration: $at_duration" >&AS_MESSAGE_LOG_FDfi# Wrap up the test suite with summary statistics.at_skip_count=`set dummy $at_skip_list; shift; echo $[@%:@]`at_fail_count=`set dummy $at_fail_list; shift; echo $[@%:@]`at_xpass_count=`set dummy $at_xpass_list; shift; echo $[@%:@]`at_xfail_count=`set dummy $at_xfail_list; shift; echo $[@%:@]`at_run_count=`expr $at_group_count - $at_skip_count`at_unexpected_count=`expr $at_xpass_count + $at_fail_count`at_total_fail_count=`expr $at_xfail_count + $at_fail_count`echoAS_BOX([Test results.])echo{ echo AS_BOX([Test results.]) echo} >&AS_MESSAGE_LOG_FDdnldnl FIXME: this code is as far from i18n-cleanness as mandnl could imagine...dnlif test $at_run_count = 1; then at_result="1 test" at_were=waselse at_result="$at_run_count tests" at_were=werefiif $at_errexit_p && test $at_unexpected_count != 0; then if test $at_xpass_count = 1; then at_result="$at_result $at_were run, one passed" else at_result="$at_result $at_were run, one failed" fi at_result="$at_result unexpectedly and inhibited subsequent tests."else # Don't you just love exponential explosion of the number of cases? case $at_xpass_count:$at_fail_count:$at_xfail_count in # So far, so good. 0:0:0) at_result="$at_result $at_were successful." ;; 0:0:*) at_result="$at_result behaved as expected." ;; # Some unexpected failures 0:*:0) at_result="$at_result $at_were run,$at_fail_count failed unexpectedly." ;; # Some failures, both expected and unexpected 0:*:1) at_result="$at_result $at_were run,$at_total_fail_count failed ($at_xfail_count expected failure)." ;; 0:*:*) at_result="$at_result $at_were run,$at_total_fail_count failed ($at_xfail_count expected failures)." ;; # No unexpected failures, but some xpasses *:0:*) at_result="$at_result $at_were run,$at_xpass_count passed unexpectedly." ;; # No expected failures, but failures and xpasses *:1:0) at_result="$at_result $at_were run,$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;; *:*:0) at_result="$at_result $at_were run,$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;; # All of them. *:*:1) at_result="$at_result $at_were run,$at_xpass_count passed unexpectedly,$at_total_fail_count failed ($at_xfail_count expected failure)." ;; *:*:*) at_result="$at_result $at_were run,$at_xpass_count passed unexpectedly,$at_total_fail_count failed ($at_xfail_count expected failures)." ;; esac if test $at_skip_count = 0 && test $at_run_count -gt 1; then at_result="All $at_result" fifi# Now put skips in the mix.case $at_skip_count in 0) ;; 1) at_result="$at_result1 test was skipped." ;; *) at_result="$at_result$at_skip_count tests were skipped." ;;esacif test $at_unexpected_count = 0; then echo "$at_result" echo "$at_result" >&AS_MESSAGE_LOG_FDelse echo "ERROR: $at_result" >&2 echo "ERROR: $at_result" >&AS_MESSAGE_LOG_FD { echo AS_BOX([Summary of the failures.]) # Summary of failed and skipped tests. if test $at_fail_count != 0; then echo "Failed tests:" $SHELL $[0] $at_fail_list --list echo fi if test $at_skip_count != 0; then echo "Skipped tests:"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -