[PATCH v4 0/3] test-lib: improve missing prereq handling

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

 



The ssh signing feature was breaking tests when the broken openssh-8.7
was used. We have now fixed that by checking for this exact case in the
GPGSSH prereq and I will improve that check further in a future patch.
However we are now in a situation where a broken openssh in the future
will result in successfull tests but not a working git build afterwards
(either not compiling in the expected feature or like in the ssh case
runtime failures) resulting in a false sense of security in the tests.
This patches try to improve this situation by showing which prereqs
failed in the test summary and by adding an environment variable to
enforce certain prereqs to succeed or abort the test otherwise.

See also:
https://public-inbox.org/git/xmqqv916wh7t.fsf@gitster.g/

changes since v3:
 - reword comment about test framework fd setup

changes sinve v2:
 - use a space separated list for GIT_TES_REQUIRED_PREREQ like we do for
   GIT_SKIP_TESTS
 - use BAIL_OUT() insted of just error()
 - make BAIL_OUT() print errors even when used within prereq context

changes since v1:
 - use \012 instead of \n for possible portability reasons
 - fix typo in commit msg

Fabian Stelzer (3):
  test-lib: show missing prereq summary
  test-lib: introduce required prereq for test runs
  test-lib: make BAIL_OUT() work in tests and prereq

 t/README                |  6 ++++++
 t/aggregate-results.sh  | 17 +++++++++++++++++
 t/test-lib-functions.sh | 11 +++++++++++
 t/test-lib.sh           | 25 +++++++++++++++++++++----
 4 files changed, 55 insertions(+), 4 deletions(-)

Range-diff against v3:
1:  35c92671e5 = 1:  9617d336c7 test-lib: show missing prereq summary
2:  d6a53f0980 = 2:  409694823a test-lib: introduce required prereq for test runs
3:  de21c484d6 ! 3:  3757e4e238 test-lib: make BAIL_OUT() work in tests and prereq
    @@ t/test-lib.sh: USER_TERM="$TERM"
      TERM=dumb
      export TERM USER_TERM
      
    -+# Set up additional fds so we can control single test i/o
    ++# What is written by tests to stdout and stderr is sent so different places
    ++# depending on the test mode (e.g. /dev/null in non-verbose mode, piped to tee
    ++# with --tee option, etc.). We save the original stdin to FD #6 and stdout and
    ++# stderr to #5 and #7, so that the test framework can use them (e.g. for
    ++# printing errors within the test framework) independently of the test mode.
     +exec 5>&1
     +exec 6<&0
     +exec 7>&2

base-commit: abe6bb3905392d5eb6b01fa6e54d7e784e0522aa
-- 
2.31.1




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux