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