largefiles: test coverage of handling of store corruption stable
authorMads Kiilerich <madski@unity3d.com>
Fri, 23 Oct 2015 21:27:29 +0200
branchstable
changeset 26822 d881c072050a
parent 26821 27683c63f44c
child 26823 45e8bd2f36f0
largefiles: test coverage of handling of store corruption This reveals that update might put a corrupted largefile in the working directory where it will show up as modified and ready for commit.
tests/test-largefiles-cache.t
--- a/tests/test-largefiles-cache.t	Fri Oct 23 06:06:22 2015 -0400
+++ b/tests/test-largefiles-cache.t	Fri Oct 23 21:27:29 2015 +0200
@@ -179,3 +179,25 @@
   $ find src/.hg/largefiles/* | egrep "(dirstate|$hash)" | sort
   src/.hg/largefiles/dirstate
   src/.hg/largefiles/e2fb5f2139d086ded2cb600d5a91a196e76bf020
+
+Inject corruption into the largefiles store and see how update handles that:
+
+  $ cd src
+  $ hg up -qC
+  $ cat large
+  modified
+  $ rm large
+  $ cat .hglf/large
+  e2fb5f2139d086ded2cb600d5a91a196e76bf020
+  $ mv .hg/largefiles/e2fb5f2139d086ded2cb600d5a91a196e76bf020 ..
+  $ echo corruption > .hg/largefiles/e2fb5f2139d086ded2cb600d5a91a196e76bf020
+(the following update will put the corrupted file into the working directory
+where it will show up as a change)
+  $ hg up -C
+  getting changed largefiles
+  1 largefiles updated, 0 removed
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg st
+  M large
+  ? z
+  $ rm .hg/largefiles/e2fb5f2139d086ded2cb600d5a91a196e76bf020