⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 general.m4

📁 MSYS在windows下模拟了一个类unix的终端
💻 M4
📖 第 1 页 / 共 2 页
字号:
  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([Silently 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_pass_list=at_fail_list=at_skip_list=at_group_count=0m4_divert([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-*) ;;    *)     # 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     rm -rf $at_group_dir     mkdir $at_group_dir ||       AS_ERROR([cannot create $at_group_dir])     cd $at_group_dir    ;;  esac  at_status=0  # Clearly separate the test groups when verbose.  test $at_group_count != 0 && $at_verbose  case $at_group indnl Test groups inserted here (TESTS).m4_divert([TAIL])[]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"      case $at_status in        0)  at_msg="ok"            at_pass_list="$at_pass_list $at_group"            # Cleanup the group directory, unless the user wants the files.            $at_debug_p || rm -rf $at_group_dir            ;;        77) at_msg="ok (skipped near \``cat $at_check_line_file`')"            at_skip_list="$at_skip_list $at_group"            # Cleanup the group directory, unless the user wants the files.            $at_debug_p || rm -rf $at_group_dir            ;;        *)  at_msg="FAILED near \``cat $at_check_line_file`'"            at_fail_list="$at_fail_list $at_group"            # Up failure, keep the group directory for autopsy.            # 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            ;;      esac      echo $at_msg      at_log_msg="$at_group. $at_setup_line: $at_msg"      # If the group failed, $at_times_file is not available.      test -f $at_times_file &&        at_log_msg="$at_log_msg	(`sed 1d $at_times_file`)"      echo "$at_log_msg" >&AS_MESSAGE_LOG_FD      $at_errexit_p && test -n "$at_fail_list" && break      ;;  esacdone# Back to the top directory, in particular because we might# rerun the suite verbosely.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 $[@%:@]`if test $at_fail_count = 0; then  if test $at_skip_count = 0; then    AS_BOX([All $at_group_count tests were successful.])  else    AS_BOX([All $at_group_count tests were successful ($at_skip_count skipped).])  fielif test $at_debug_p = false; then  if $at_errexit_p; then    AS_BOX([ERROR: One of the tests failed, inhibiting subsequent tests.])  else    AS_BOX([ERROR: Suite unsuccessful, $at_fail_count of $at_group_count tests failed.])  fi  # Normalize the names so that `ls' lists them in order.  echo 'You may investigate any problem if you feel able to do so, in which'  echo 'case the test suite provides a good starting point.'  echo  echo 'Now, failed tests will be executed again, verbosely, and logged'  echo 'in the file '$as_me'.log.'  {    echo    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:"      $SHELL $[0] $at_skip_list --list      echo    fi    echo    AS_BOX([Verbosely re-running the failing tests.])    echo  } >&AS_MESSAGE_LOG_FD  exec AS_MESSAGE_LOG_FD>/dev/null  $SHELL $[0] -v -d $at_debug_args $at_fail_list 2>&1 | tee -a $as_me.log  exec AS_MESSAGE_LOG_FD>>$as_me.log  {    echo    if test -n "$at_top_srcdir"; then      AS_BOX([Configuration logs.])      echo      for at_file in `find "$at_top_srcdir" -name config.log -print`      do  	echo "$as_me: $at_file:"  	sed 's/^/| /' $at_file  	echo      done    fi  } >&AS_MESSAGE_LOG_FD  AS_BOX([$as_me.log is created.])  echo  echo "Please send \`$as_me.log' and all information you think might help:"  echo  echo "   To: <AT_PACKAGE_BUGREPORT>"  echo "   Subject: @<:@AT_PACKAGE_STRING@:>@ $as_me:$at_fail_list failed"  echo  exit 1fiexit 0m4_divert_pop([TAIL])dnldnl End of AT_INIT: divert to KILL, only test groups are to bednl output, the rest is ignored.  Current diversion is BODY, inheriteddnl from M4sh.m4_divert_push([KILL])m4_wrap([m4_divert_pop([KILL])[]])])# AT_INIT# AT_TESTED(PROGRAMS)# -------------------# Specify the list of programs exercised by the test suite.  Their# versions are logged, and in the case of embedded test suite, they# must correspond to the version of the package..  The PATH should be# already preset so the proper executable will be selected.m4_define([AT_TESTED],[m4_append_uniq([AT_tested], [$1], [ ])])# AT_SETUP(DESCRIPTION)# ---------------------# Start a group of related tests, all to be executed in the same subshell.# The group is testing what DESCRIPTION says.m4_define([AT_SETUP],[m4_ifdef([AT_keywords], [m4_undefine([AT_keywords])])m4_define([AT_line], AT_LINE)m4_define([AT_description], [$1])m4_define([AT_ordinal], m4_incr(AT_ordinal))m4_append([AT_groups_all], [ ]m4_defn([AT_ordinal]))m4_divert_push([TESTS])dnl  AT_ordinal ) @%:@ AT_ordinal. m4_defn([AT_line]): $1    at_setup_line='m4_defn([AT_line])'    $at_verbose "AT_ordinal. m4_defn([AT_line]): testing $1..."    $at_quiet $ECHO_N "m4_format([[%3d: %-18s]],                       AT_ordinal, m4_defn([AT_line]))[]$ECHO_C"    (      $at_traceon])# AT_KEYWORDS(KEYOWRDS)# ---------------------# Declare a list of keywords associated to the current test group.m4_define([AT_KEYWORDS],[m4_append_uniq([AT_keywords], [$1], [,])])# AT_CLEANUP# ----------# Complete a group of related tests.m4_define([AT_CLEANUP],[m4_append([AT_help],at_help_all=$at_help_all'm4_defn([AT_ordinal]);m4_defn([AT_line]);m4_defn([AT_description]);m4_ifdef([AT_keywords], [m4_defn([AT_keywords])])')dnl    $at_times_skip || times >$at_times_file    )    at_status=$?    ;;m4_divert_pop([TESTS])dnl Back to KILL.])# AT_CLEANUP# AT_BANNER(TEXT)# ---------------# Output TEXT without any shell expansion.m4_define([AT_BANNER],[m4_define([AT_banner_ordinal], m4_incr(AT_banner_ordinal))m4_append([AT_groups_all], [ banner-]m4_defn([AT_banner_ordinal]))m4_divert_text([TESTS],[  banner-AT_banner_ordinal ) @%:@ Banner AT_banner_ordinal. AT_LINE    cat <<\_ATEOF$1_ATEOF    ;;])dnl])# AT_BANNER# AT_DATA(FILE, CONTENTS)# -----------------------# Initialize an input data FILE with given CONTENTS, which should end with# an end of line.# This macro is not robust to active symbols in CONTENTS *on purpose*.# If you don't want CONTENT to be evaluated, quote it twice.m4_define([AT_DATA],[cat >$1 <<'_ATEOF'$2[]_ATEOF])# AT_CHECK(COMMANDS, [STATUS = 0], STDOUT, STDERR)# ------------------------------------------------# Execute a test by performing given shell COMMANDS.  These commands# should normally exit with STATUS, while producing expected STDOUT and# STDERR contents.## STATUS, STDOUT, and STDERR are not checked if equal to `ignore'.## If STDOUT is `expout', then stdout is compared to the content of the file# `expout'.  Likewise for STDERR and `experr'.## If STDOUT is `stdout', then the stdout is left in the file `stdout',# likewise for STDERR and `stderr'.  Don't do this:##    AT_CHECK([command >out])#    # Some checks on `out'## do this instead:##    AT_CHECK([command], [], [stdout])#    # Some checks on `stdout'## This is an unfortunate limitation inherited from Ultrix which will not# let you redirect several times the same FD (see the Autoconf documentation).# If you use the `AT_CHECK([command >out])' be sure to get a test suite# that will show spurious failures.## You might wonder why not just use `ignore' and directly use stdout and# stderr left by the test suite.  Firstly because the names of these files# is an internal detail, and secondly, because##    AT_CHECK([command], [], [ignore])#    AT_CHECK([check stdout])## will use `stdout' both in input and output: undefined behavior would# certainly result.  That's why the test suite will save them in `at-stdout'# and `at-stderr', and will provide you with `stdout' and `stderr'.## Any line of stderr starting with leading blanks and a `+' are filtered# out, since most shells when tracing include subshell traces in stderr.# This may cause spurious failures when the test suite is run with `-x'.### Implementation Details# ----------------------# Ideally, we would like to run##    ( $at_traceon; COMMANDS >at-stdout 2> at-stderr )## but we must group COMMANDS as it is not limited to a single command, and# then the shells will save the traces in at-stderr. So we have to filter# them out when checking stderr, and we must send them into the test suite's# stderr to honor -x properly.## Limiting COMMANDS to a single command is not good either, since them# the user herself would use {} or (), and then we face the same problem.## But then, there is no point in running##   ( $at_traceon { $1 ; } >at-stdout 2>at-stder1 )## instead of the simpler##  ( $at_traceon; $1 ) >at-stdout 2>at-stder1#m4_define([AT_CHECK],[$at_traceoff$at_verbose "AT_LINE: AS_ESCAPE([$1])"echo AT_LINE >$at_check_line_file( $at_traceon; $1 ) >$at_stdout 2>$at_stder1at_status=$?grep '^ *+' $at_stder1 >&2grep -v '^ *+' $at_stder1 >$at_stderrat_failed=falsednl Check stderr.m4_case([$4],        stderr, [(echo stderr:; tee stderr <$at_stderr) >&5],        ignore, [(echo stderr:; cat $at_stderr) >&5],        experr, [$at_diff experr $at_stderr >&5 || at_failed=:],        [],     [$at_diff $at_devnull $at_stderr >&5 || at_failed=:],        [echo >>$at_stderr; echo "AS_ESCAPE([$4])" | $at_diff - $at_stderr >&5 || at_failed=:])dnl Check stdout.m4_case([$3],        stdout, [(echo stdout:; tee stdout <$at_stdout) >&5],        ignore, [(echo stdout:; cat $at_stdout) >&5],        expout, [$at_diff expout $at_stdout >&5 || at_failed=:],        [],     [$at_diff $at_devnull $at_stdout >&5 || at_failed=:],        [echo >>$at_stdout; echo "AS_ESCAPE([$3])" | $at_diff - $at_stdout >&5 || at_failed=:])dnl Check exit val.  Don't `skip' if we are precisely checking $? = 77.case $at_status inm4_case([$2],  [77],    [],    [   77) exit 77;;])dnlm4_case([$2],  [ignore],    [   *);;],    [   m4_default([$2], [0])) ;;   *) $at_verbose "AT_LINE: exit code was $at_status, expected m4_default([$2], [0])" >&2      at_failed=:;;])esacAS_IF($at_failed, [$5], [$6])$at_failed && exit 1$at_traceon])# AT_CHECK

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -