t3700-add: fix dependence on stdout and stderr buffering
[gitweb.git] / t / gitweb-lib.sh
index 845253274b72e18a72858104a59ea32c9da0a862..81ef2a0969d98f05ce22cd8a06fcb55a7af9aee8 100644 (file)
@@ -19,12 +19,13 @@ our \$site_name = '[localhost]';
 our \$site_header = '';
 our \$site_footer = '';
 our \$home_text = 'indextext.html';
-our @stylesheets = ('file:///$TEST_DIRECTORY/../gitweb/gitweb.css');
-our \$logo = 'file:///$TEST_DIRECTORY/../gitweb/git-logo.png';
-our \$favicon = 'file:///$TEST_DIRECTORY/../gitweb/git-favicon.png';
+our @stylesheets = ('file:///$TEST_DIRECTORY/../gitweb/static/gitweb.css');
+our \$logo = 'file:///$TEST_DIRECTORY/../gitweb/static/git-logo.png';
+our \$favicon = 'file:///$TEST_DIRECTORY/../gitweb/static/git-favicon.png';
 our \$projects_list = '';
 our \$export_ok = '';
 our \$strict_export = '';
+our \$maxload = undef;
 
 EOF
 
@@ -52,21 +53,35 @@ gitweb_run () {
        rm -f gitweb.log &&
        perl -- "$SCRIPT_NAME" \
                >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 false; else true; fi
 
        # gitweb.log is left for debugging
-       # gitweb.output is used to parse http output
+       # 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
-       say 'skipping gitweb tests, perl not available'
+       skip_all='skipping gitweb tests, perl not available'
        test_done
 fi
 
 perl -MEncode -e 'decode_utf8("", Encode::FB_CROAK)' >/dev/null 2>&1 || {
-    say 'skipping gitweb tests, perl version is too old'
+    skip_all='skipping gitweb tests, perl version is too old'
     test_done
 }