Patchwork [1,of,2,stable] fileset: add tests of generated working copy states

login
register
mail settings
Submitter Martin von Zweigbergk
Date Jan. 22, 2015, 10:21 p.m.
Message ID <9e6464357f9dc8f145e3.1421965287@martinvonz.mtv.corp.google.com>
Download mbox | patch
Permalink /patch/7535/
State Superseded
Commit 8efb7130a5191c1264831da2233d780ee4843bb7
Headers show

Comments

Martin von Zweigbergk - Jan. 22, 2015, 10:21 p.m.
# HG changeset patch
# User Martin von Zweigbergk <martinvonz@google.com>
# Date 1421883624 28800
#      Wed Jan 21 15:40:24 2015 -0800
# Branch stable
# Node ID 9e6464357f9dc8f145e30b0af89e3deb1bc5c2dd
# Parent  a43fdf33a6beb697945a3dbb7253f0436ea278a6
fileset: add tests of generated working copy states

Patch

diff -r a43fdf33a6be -r 9e6464357f9d tests/test-fileset-generated.t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-fileset-generated.t	Wed Jan 21 15:40:24 2015 -0800
@@ -0,0 +1,163 @@ 
+  $ hg init
+
+Set up history and working copy
+
+  $ python $TESTDIR/generate-working-copy-states.py state 2 1
+  $ hg addremove -q --similarity 0
+  $ hg commit -m first
+
+  $ python $TESTDIR/generate-working-copy-states.py state 2 2
+  $ hg addremove -q --similarity 0
+  $ hg commit -m second
+
+  $ python $TESTDIR/generate-working-copy-states.py state 2 wc
+  $ hg addremove -q --similarity 0
+  $ hg forget *_*_*-untracked
+  $ rm *_*_missing-*
+
+Test status
+
+  $ hg st -A 'set:modified()'
+  M content1_content1_content3-tracked
+  M content1_content2_content1-tracked
+  M content1_content2_content3-tracked
+  M missing_content2_content3-tracked
+
+  $ hg st -A 'set:added()'
+  A content1_missing_content1-tracked
+  A content1_missing_content3-tracked
+  A missing_missing_content3-tracked
+
+  $ hg st -A 'set:removed()'
+  R content1_content1_content1-untracked
+  R content1_content1_content3-untracked
+  R content1_content1_missing-untracked
+  R content1_content2_content1-untracked
+  R content1_content2_content2-untracked
+  R content1_content2_content3-untracked
+  R content1_content2_missing-untracked
+  R missing_content2_content2-untracked
+  R missing_content2_content3-untracked
+  R missing_content2_missing-untracked
+
+  $ hg st -A 'set:deleted()'
+  ! content1_content1_missing-tracked
+  ! content1_content2_missing-tracked
+  ! content1_missing_missing-tracked
+  ! missing_content2_missing-tracked
+  ! missing_missing_missing-tracked
+
+  $ hg st -A 'set:unknown()'
+  ? content1_missing_content1-untracked
+  ? content1_missing_content3-untracked
+  ? missing_missing_content3-untracked
+
+  $ hg st -A 'set:clean()'
+  C content1_content1_content1-tracked
+  C content1_content2_content2-tracked
+  C missing_content2_content2-tracked
+
+Test log
+
+  $ hg log -T '{rev}\n' --stat 'set:modified()'
+  1
+   content1_content2_content1-tracked |  2 +-
+   content1_content2_content3-tracked |  2 +-
+   missing_content2_content3-tracked  |  1 +
+   3 files changed, 3 insertions(+), 2 deletions(-)
+  
+  0
+   content1_content1_content3-tracked |  1 +
+   content1_content2_content1-tracked |  1 +
+   content1_content2_content3-tracked |  1 +
+   3 files changed, 3 insertions(+), 0 deletions(-)
+  
+BROKEN: rev 0 affects content1_missing_content*-tracked
+
+  $ hg log -T '{rev}\n' --stat 'set:added()'
+  1
+   content1_missing_content1-tracked |  1 -
+   content1_missing_content3-tracked |  1 -
+   2 files changed, 0 insertions(+), 2 deletions(-)
+  
+  $ hg log -T '{rev}\n' --stat 'set:removed()'
+  1
+   content1_content2_content1-untracked |  2 +-
+   content1_content2_content2-untracked |  2 +-
+   content1_content2_content3-untracked |  2 +-
+   content1_content2_missing-untracked  |  2 +-
+   missing_content2_content2-untracked  |  1 +
+   missing_content2_content3-untracked  |  1 +
+   missing_content2_missing-untracked   |  1 +
+   7 files changed, 7 insertions(+), 4 deletions(-)
+  
+  0
+   content1_content1_content1-untracked |  1 +
+   content1_content1_content3-untracked |  1 +
+   content1_content1_missing-untracked  |  1 +
+   content1_content2_content1-untracked |  1 +
+   content1_content2_content2-untracked |  1 +
+   content1_content2_content3-untracked |  1 +
+   content1_content2_missing-untracked  |  1 +
+   7 files changed, 7 insertions(+), 0 deletions(-)
+
+BROKEN: rev 0 affects content1_content1_missing-tracked,
+content1_content2_missing-tracked and content1_missing_missing-tracked.
+rev 1 affects content1_content2_missing-tracked,
+content1_missing_missing-tracked and missing_content2_missing-tracked
+
+  $ hg log -T '{rev}\n' --stat 'set:deleted()'
+
+BROKEN: rev 0 and 1 affect content1_missing_content*-untracked
+
+  $ hg log -T '{rev}\n' --stat 'set:unknown()'
+
+BROKEN: rev 1 affects content1_content2_content2-tracked and
+missing_content2_content2-tracked
+
+  $ hg log -T '{rev}\n' --stat 'set:clean()'
+  0
+   content1_content1_content1-tracked |  1 +
+   content1_content2_content2-tracked |  1 +
+   2 files changed, 2 insertions(+), 0 deletions(-)
+  
+Test revert
+
+BROKEN: the files that get undeleted were not modified, they were removed,
+and content1_content2_missing-tracked was also not modified, it was deleted
+
+  $ hg revert 'set:modified()'
+  reverting content1_content1_content3-tracked
+  reverting content1_content2_content1-tracked
+  undeleting content1_content2_content1-untracked
+  undeleting content1_content2_content2-untracked
+  reverting content1_content2_content3-tracked
+  undeleting content1_content2_content3-untracked
+  reverting content1_content2_missing-tracked
+  undeleting content1_content2_missing-untracked
+  reverting missing_content2_content3-tracked
+
+BROKEN: only the files that get forgotten are correct
+
+  $ hg revert 'set:added()'
+  forgetting content1_missing_content1-tracked
+  forgetting content1_missing_content3-tracked
+  undeleting missing_content2_content2-untracked
+  undeleting missing_content2_content3-untracked
+  reverting missing_content2_missing-tracked
+  undeleting missing_content2_missing-untracked
+  forgetting missing_missing_content3-tracked
+
+  $ hg revert 'set:removed()'
+  undeleting content1_content1_content1-untracked
+  undeleting content1_content1_content3-untracked
+  undeleting content1_content1_missing-untracked
+
+  $ hg revert 'set:deleted()'
+  reverting content1_content1_missing-tracked
+  forgetting content1_missing_missing-tracked
+  forgetting missing_missing_missing-tracked
+
+  $ hg revert 'set:unknown()'
+
+  $ hg revert 'set:clean()'