Skip to content
  • Gábor Szeder's avatar
    tests: add 'test_bool_env' to catch non-bool GIT_TEST_* values · 43a2afee
    Gábor Szeder authored and Junio C Hamano's avatar Junio C Hamano committed
    Since 3b072c57 (tests: replace test_tristate with "git env--helper",
    2019-06-21) we get the normalized bool values of various GIT_TEST_*
    environment variables via 'git env--helper'.  Now, while the 'git
    env--helper' command itself does catch invalid values in the
    environment variable or in the given --default and exits with error
    (exit code 128 or 129, respectively), it's invoked in conditions like
    'if ! git env--helper ...', which means that all invalid bool values
    are interpreted the same as the ordinary 'false' (exit code 1).  This
    has led to inadvertently skipped httpd tests in our CI builds for a
    couple of weeks, see 39602906
    
     (ci: restore running httpd tests,
    2019-09-06).
    
    Let's be more careful about what the test suite accepts as bool values
    in GIT_TEST_* environment variables, and error out loud and clear on
    invalid values instead of simply skipping tests.  Add the
    'test_bool_env' helper function to encapsulate the invocation of 'git
    env--helper' and the verification of its exit code, and replace all
    invocations of that command in our test framework and test suite with
    a call to this new helper (except in 't0017-env-helper.sh', of
    course).
    
      $ GIT_TEST_GIT_DAEMON=YesPlease ./t5570-git-daemon.sh
      fatal: bad numeric config value 'YesPlease' for 'GIT_TEST_GIT_DAEMON': invalid unit
      error: test_bool_env requires bool values both for $GIT_TEST_GIT_DAEMON and for the default fallback
    
    Signed-off-by: default avatarSZEDER Gábor <szeder.dev@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    43a2afee