[PATCH 1 of 4] test-arbitraryfilectx: stabilize for Windows

Matt Harbison mharbison72 at gmail.com
Sun Oct 29 05:09:42 UTC 2017


# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1508469408 14400
#      Thu Oct 19 23:16:48 2017 -0400
# Branch stable
# Node ID 825986c7d37b500910977fc9966619bd26dcaba3
# Parent  6e66033f91ccfb7666ec0a25d19954673269c61a
test-arbitraryfilectx: stabilize for Windows

Previously, the second last test (context.arbitraryfilectx(..)) returned True on
Windows.  I changed the repo setup sequence to import a patch, so that way the
repo would have a proper symlink.  That made the last test fail, since it is
comparing files in wdir(), one of which is not the expected symlink.

Apparently the (feature !) line matching doesn't work well with (no-eol), so I
had to conditionalize the test instead of the output.

diff --git a/tests/test-arbitraryfilectx.t b/tests/test-arbitraryfilectx.t
--- a/tests/test-arbitraryfilectx.t
+++ b/tests/test-arbitraryfilectx.t
@@ -19,6 +19,7 @@
   $ mkdir case1
   $ cd case1
   $ hg init
+#if symlink
   $ printf "A" > real_A
   $ printf "foo" > A
   $ printf "foo" > B
@@ -29,6 +30,44 @@
   adding real_A
   adding sym_A
   $ hg commit -m "base"
+#else
+  $ hg import -q --bypass - <<EOF
+  > # HG changeset patch
+  > # User test
+  > # Date 0 0
+  > base
+  > 
+  > diff --git a/A b/A
+  > new file mode 100644
+  > --- /dev/null
+  > +++ b/A
+  > @@ -0,0 +1,1 @@
+  > +foo
+  > \ No newline at end of file
+  > diff --git a/B b/B
+  > new file mode 100644
+  > --- /dev/null
+  > +++ b/B
+  > @@ -0,0 +1,1 @@
+  > +foo
+  > \ No newline at end of file
+  > diff --git a/real_A b/real_A
+  > new file mode 100644
+  > --- /dev/null
+  > +++ b/real_A
+  > @@ -0,0 +1,1 @@
+  > +A
+  > \ No newline at end of file
+  > diff --git a/sym_A b/sym_A
+  > new file mode 120000
+  > --- /dev/null
+  > +++ b/sym_A
+  > @@ -0,0 +1,1 @@
+  > +A
+  > \ No newline at end of file
+  > EOF
+  $ hg up -q
+#endif
 
 These files are different and should return True (different):
 (Note that filecmp.cmp's return semantics are inverted from ours, so we invert
@@ -53,5 +92,10 @@
 
 A naive use of filecmp on those two would wrongly return True, since it follows
 the symlink to "A", which has different contents.
+#if symlink
   $ hg eval "not filecmp.cmp('real_A', 'sym_A')"
   True (no-eol)
+#else
+  $ hg eval "not filecmp.cmp('real_A', 'sym_A')"
+  False (no-eol)
+#endif


More information about the Mercurial-devel mailing list