# Initialization and helpers for Gitweb tests, which source this # shell library instead of test-lib.sh. # # Copyright (c) 2007 Jakub Narebski # gitweb_init () { safe_pwd="$(perl -MPOSIX=getcwd -e 'print quotemeta(getcwd)')" cat >gitweb_config.perl <.git/description <gitweb.output 2>gitweb.log && perl -w -e ' open O, ">gitweb.headers"; while (<>) { print O; last if (/^\r$/ || /^$/); } open O, ">gitweb.body"; while (<>) { print O; } close O; ' gitweb.output && if grep '^[[]' gitweb.log >/dev/null 2>&1; then test_debug 'cat gitweb.log >&2' && false else true fi # gitweb.log is left for debugging # gitweb.output is used to parse HTTP output # gitweb.headers contains only HTTP headers # gitweb.body contains body of message, without headers } . ./test-lib.sh if ! test_have_prereq PERL; then skip_all='skipping gitweb tests, perl not available' test_done fi perl -MEncode -e '$e="";decode_utf8($e, Encode::FB_CROAK)' >/dev/null 2>&1 || { skip_all='skipping gitweb tests, perl version is too old' test_done } perl -MCGI -MCGI::Util -MCGI::Carp -e 0 >/dev/null 2>&1 || { skip_all='skipping gitweb tests, CGI & CGI::Util & CGI::Carp modules not available' test_done } perl -mTime::HiRes -e 0 >/dev/null 2>&1 || { skip_all='skipping gitweb tests, Time::HiRes module not available' test_done } gitweb_init