[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How are data files input for to custom drivers?

From: Gavin Smith
Subject: Re: How are data files input for to custom drivers?
Date: Mon, 8 Jun 2015 13:16:02 +0100

On 27 May 2015 at 22:27, Arthur Schwarz <address@hidden> wrote:
> Then is seems that the test harness would have to do:
> cat data |
> ./ |
> Because the awk loop in does a getline which reads from an
> input pipe (stdin). Have I read the code and the document correctly? This is
> really confusing to me. In Command-line arguments for test drivers
> the manual says "The first non-option argument passed to the test driver is
> the program to be run, and all the following ones are command-line options
> and arguments for this program." Which seems to mean that for custom drivers
> we get for:

In Makefile we have something like:

        @p='$<'; \
        $(am__set_b); \
        $(am__check_pre) $(T_LOG_DRIVER) --test-name "$$f" \
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_T_LOG_DRIVER_FLAGS)
        "$$tst" $(AM_TESTS_FD_REDIRECT)

The 'tst' shell variable is set inside 'am__check_pre' and is the name
of the test case.

In there is:

    echo $?
  ) | LC_ALL=C ${AM_TAP_AWK-awk} \
        -v me="$me" \
        -v test_script_name="$test_name" \
        -v log_file="$log_file" \
        -v trs_file="$trs_file" \
        -v expect_failure="$expect_failure" \
        -v merge="$merge" \
        -v ignore_exit="$ignore_exit" \
        -v comments="$comments" \
        -v diag_string="$diag_string" \
That final apostrophe is very important to notice: it is the start of
the awk script.

The "$@" line executes the test case. This was all the arguments given
to the in the Makefile, but now all the options have
been shift'd. So the output of the test case is the input of awk, via
the pipe (|).

reply via email to

[Prev in Thread] Current Thread [Next in Thread]