tests/test-remotefilelog-corrupt-cache.t
changeset 40495 3a333a582d7b
child 40571 95a079ea1e19
equal deleted inserted replaced
40494:9aeb9e2d28a7 40495:3a333a582d7b
       
     1   $ PYTHONPATH=$TESTDIR/..:$PYTHONPATH
       
     2   $ export PYTHONPATH
       
     3 
       
     4   $ . "$TESTDIR/remotefilelog-library.sh"
       
     5 
       
     6   $ hginit master
       
     7   $ cd master
       
     8   $ cat >> .hg/hgrc <<EOF
       
     9   > [remotefilelog]
       
    10   > server=True
       
    11   > EOF
       
    12   $ echo x > x
       
    13   $ echo y > y
       
    14   $ echo z > z
       
    15   $ hg commit -qAm xy
       
    16 
       
    17   $ cd ..
       
    18 
       
    19   $ hgcloneshallow ssh://user@dummy/master shallow -q
       
    20   3 files fetched over 1 fetches - (3 misses, 0.00% hit ratio) over *s (glob)
       
    21   $ cd shallow
       
    22 
       
    23 Verify corrupt cache handling repairs by default
       
    24 
       
    25   $ hg up -q null
       
    26   $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0
       
    27   $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0
       
    28   $ hg up tip
       
    29   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    30   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
       
    31 
       
    32 Verify corrupt cache error message
       
    33 
       
    34   $ hg up -q null
       
    35   $ cat >> .hg/hgrc <<EOF
       
    36   > [remotefilelog]
       
    37   > validatecache=off
       
    38   > EOF
       
    39   $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0
       
    40   $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0
       
    41   $ hg up tip 2>&1 | egrep "^RuntimeError"
       
    42   RuntimeError: unexpected remotefilelog header: illegal format
       
    43 
       
    44 Verify detection and remediation when remotefilelog.validatecachelog is set
       
    45 
       
    46   $ cat >> .hg/hgrc <<EOF
       
    47   > [remotefilelog]
       
    48   > validatecachelog=$PWD/.hg/remotefilelog_cache.log
       
    49   > validatecache=strict
       
    50   > EOF
       
    51   $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0
       
    52   $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0
       
    53   $ hg up tip
       
    54   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    55   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
       
    56   $ cat .hg/remotefilelog_cache.log
       
    57   corrupt $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 during contains
       
    58 
       
    59 Verify handling of corrupt server cache
       
    60 
       
    61   $ rm -f ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca
       
    62   $ touch ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca
       
    63   $ clearcache
       
    64   $ hg prefetch -r .
       
    65   3 files fetched over 1 fetches - (3 misses, 0.00% hit ratio) over *s (glob)
       
    66   $ test -s ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca
       
    67   $ hg debugremotefilelog $CACHEDIR/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/076f5e2225b3ff0400b98c92aa6cdf403ee24cca
       
    68   size: 2 bytes
       
    69   path: $TESTTMP/hgcache/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/076f5e2225b3ff0400b98c92aa6cdf403ee24cca 
       
    70   key: 076f5e2225b3 
       
    71   
       
    72           node =>           p1            p2      linknode     copyfrom
       
    73   076f5e2225b3 => 000000000000  000000000000  f3d0bb0d1e48