Subject: Re: What's cooking in git.git (Nov 2010, #03; Wed, 24)

From: Thomas Rast <[email-masked]>
Date: Fri, 3 Dec 2010 12:22:33 +0100

Jakub Narebski wrote:
> On Fri, 3 Dec 2010, Thomas Rast wrote:
> > "gitweb: File based caching layer (from git.kernel.org)" does not work
> > on my automated tester:
[...]
> What are the results of relevant part of
> 
>  $ cd t
>  $ ./t9502-gitweb-standalone-parse-output.sh --debug
> 
> output?

  ok 1 - setup
  FULL_ID  = 1005c80cc11c531d327b12195027cbbb4ff9e3cb
  SHORT_ID = 1005c80
  not ok - 2 snapshot: full sha1
  #       
  #               gitweb_run "p=.git;a=snapshot;h=$FULL_ID;sf=tar" &&
  #               check_snapshot ".git-$SHORT_ID"
  #       
  Status: 200 OK
  Content-disposition: inline; filename=".git-1005c80.tar"
  Content-Type: application/x-tar

They all fail after that, the rest of the output is at the end.  OTOH
if I check out v1.7.3.1-48-g5768176 instead, where the test works ok,
it looks like this:

  ok 1 - setup
  FULL_ID  = 1005c80cc11c531d327b12195027cbbb4ff9e3cb
  SHORT_ID = 1005c80
  ok 2 - snapshot: full sha1
  Status: 200 OK
  Content-disposition: inline; filename=".git-1005c80.tar"
  Content-Type: application/x-tar

In other words, I cannot see a difference except that it fails. :-(

> Gitweb output caching should be turned off by default, so it shouldn't
> affect tests before 'enable caching' test.

Well, my test setup has a slight habit of uncovering bugs in odd code
paths since it usually runs under valgrind in a cronjob (i.e. without
a tty).  However, this one also fails when run normally.

In case it matters, this is RHEL5.5 with

  $ perl --version
  This is perl, v5.8.8 built for x86_64-linux-thread-multi

--- Rest of the --debug output ---
not ok - 3 snapshot: shortened sha1
#       
#               gitweb_run "p=.git;a=snapshot;h=$SHORT_ID;sf=tar" &&
#               check_snapshot ".git-$SHORT_ID"
#       
Status: 200 OK
Content-disposition: inline; filename=".git-1005c80.tar"
Content-Type: application/x-tar

not ok - 4 snapshot: almost full sha1
#       
#               ID=$(git rev-parse --short=30 HEAD) &&
#               gitweb_run "p=.git;a=snapshot;h=$ID;sf=tar" &&
#               check_snapshot ".git-$SHORT_ID"
#       
Status: 200 OK
Content-disposition: inline; filename=".git-1005c80.tar"
Content-Type: application/x-tar

not ok - 5 snapshot: HEAD
#       
#               gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tar" &&
#               check_snapshot ".git-HEAD-$SHORT_ID"
#       
Status: 200 OK
Content-disposition: inline; filename=".git-HEAD-1005c80.tar"
Content-Type: application/x-tar

not ok - 6 snapshot: short branch name (master)
#       
#               gitweb_run "p=.git;a=snapshot;h=master;sf=tar" &&
#               ID=$(git rev-parse --verify --short=7 master) &&
#               check_snapshot ".git-master-$ID"
#       
Status: 200 OK
Content-disposition: inline; filename=".git-master-1005c80.tar"
Content-Type: application/x-tar

not ok - 7 snapshot: short tag name (first)
#       
#               gitweb_run "p=.git;a=snapshot;h=first;sf=tar" &&
#               ID=$(git rev-parse --verify --short=7 first) &&
#               check_snapshot ".git-first-$ID"
#       
Status: 200 OK
Content-disposition: inline; filename=".git-first-1005c80.tar"
Content-Type: application/x-tar

not ok - 8 snapshot: full branch name (refs/heads/master)
#       
#               gitweb_run "p=.git;a=snapshot;h=refs/heads/master;sf=tar" &&
#               ID=$(git rev-parse --verify --short=7 master) &&
#               check_snapshot ".git-master-$ID"
#       
Status: 200 OK
Content-disposition: inline; filename=".git-master-1005c80.tar"
Content-Type: application/x-tar

not ok - 9 snapshot: full tag name (refs/tags/first)
#       
#               gitweb_run "p=.git;a=snapshot;h=refs/tags/first;sf=tar" &&
#               check_snapshot ".git-first"
#       
Status: 200 OK
Content-disposition: inline; filename=".git-first.tar"
Content-Type: application/x-tar

ok 10 - snapshot: hierarchical branch name (xx/test)
Status: 200 OK
Content-disposition: inline; filename=".git-xx.test-1005c80.tar"
Content-Type: application/x-tar

ok 11 - setup for caching tests (utf8 commit, binary file)
ok 12 - enable caching
not ok - 13 caching enabled, HTML output, generating cache
#       
#                       gitweb_run "p=.git;a=patch" &&
#                       mv gitweb.body cache.html &&
#                       test_cmp no_cache.html cache.html
#               
ok 14 - caching enabled, HTML output, cached version
not ok - 15 caching enabled, binary output, generating cache
#       
#                       gitweb_run "p=.git;a=blob_plain;f=image.png" &&
#                       mv gitweb.body cache.png &&
#                       cmp no_cache.png cache.png
#               
not ok - 16 caching enabled, binary output, cached version
#       
#                       gitweb_run "p=.git;a=blob_plain;f=image.png" &&
#                       mv gitweb.body cache.png &&
#                       cmp no_cache.png cache.png
#               
# failed 11 among 16 test(s)
1..16

-- 
Thomas Rast
trast@{inf,student}.ethz.ch