tests/test-persistent-nodemap.t
changeset 48277 96aa3a68d3b5
parent 48041 37a41267d000
parent 48269 aa88fb60ecb4
child 48295 bf11ff22a9af
equal deleted inserted replaced
48274:d86908050375 48277:96aa3a68d3b5
   433   tip-rev: 5002
   433   tip-rev: 5002
   434   tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
   434   tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
   435   data-length: 121088
   435   data-length: 121088
   436   data-unused: 0
   436   data-unused: 0
   437   data-unused: 0.000%
   437   data-unused: 0.000%
   438 
       
   439 Sub-case: fallback for corrupted data file
       
   440 ------------------------------------------
       
   441 
       
   442 Sabotaging the data file so that nodemap resolutions fail, triggering fallback to
       
   443 (non-persistent) C implementation.
       
   444 
       
   445 
       
   446   $ UUID=`hg debugnodemap --metadata| grep 'uid:' | \
       
   447   > sed 's/uid: //'`
       
   448   $ FILE=.hg/store/00changelog-"${UUID}".nd
       
   449   $ python -c "fobj = open('$FILE', 'r+b'); fobj.write(b'\xff' * 121088); fobj.close()"
       
   450 
       
   451 The nodemap data file is still considered in sync with the docket. This
       
   452 would fail without the fallback to the (non-persistent) C implementation:
       
   453 
       
   454   $ hg log -r b355ef8adce0949b8bdf6afc72ca853740d65944 -T '{rev}\n' --traceback
       
   455   5002
       
   456 
       
   457 The nodemap data file hasn't been fixed, more tests can be inserted:
       
   458 
       
   459   $ hg debugnodemap --dump-disk | f --bytes=256 --hexdump --size
       
   460   size=121088
       
   461   0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   462   0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   463   0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   464   0030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   465   0040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   466   0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   467   0060: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   468   0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   469   0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   470   0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   471   00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   472   00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   473   00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   474   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   475   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   476   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
       
   477 
       
   478   $ mv ../tmp-data-file $FILE
   438   $ mv ../tmp-data-file $FILE
   479   $ mv ../tmp-docket .hg/store/00changelog.n
   439   $ mv ../tmp-docket .hg/store/00changelog.n
   480 
   440 
   481 Check transaction related property
   441 Check transaction related property
   482 ==================================
   442 ==================================