Merge with crew-stable
authorPatrick Mezard <pmezard@gmail.com>
Wed, 08 Aug 2007 23:11:12 +0200
changeset 5149 1a028bdaddce
parent 5148 06154aff2b1a (current diff)
parent 5085 dcfd75502b82 (diff)
child 5150 ff461baa9c4e
Merge with crew-stable
tests/test-no-symlinks
--- a/tests/hghave	Wed Aug 08 23:00:01 2007 +0200
+++ b/tests/hghave	Wed Aug 08 23:11:12 2007 +0200
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 """Test the running system for features availability. Exit with zero
-if all features are there, non-zero otherwise.
+if all features are there, non-zero otherwise. If a feature name is
+prefixed with "no-", the absence of feature is tested.
 """
 import optparse
 import os
@@ -67,13 +68,19 @@
         failures += 1
 
     for feature in args:
+        negate = feature.startswith('no-')
+        if negate:
+            feature = feature[3:]
+        
         if feature not in checks:
             error('hghave: unknown feature: ' + feature)
             continue
 
         check, desc = checks[feature]
-        if not check():
+        if not negate and not check():
             error('hghave: missing feature: ' + desc)
+        elif negate and check():
+            error('hghave: unexpected feature: ' + desc)
 
     if failures != 0:
         sys.exit(1)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-no-symlinks	Wed Aug 08 23:11:12 2007 +0200
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+"$TESTDIR/hghave" no-symlink || exit 80
+
+# The following script was used to create the bundle:
+#
+# hg init symlinks
+# cd symlinks
+# echo a > a
+# mkdir d
+# echo b > d/b
+# ln -s a a.lnk
+# ln -s d/b d/b.lnk
+# hg ci -Am t
+# hg bundle --base null ../test-no-symlinks.bundle
+
+# Extract a symlink on a platform not supporting them
+echo % unbundle
+hg init t
+cd t
+hg pull "$TESTDIR/test-no-symlinks.bundle"
+hg update
+
+cat a.lnk && echo
+cat d/b.lnk && echo
+
+# Copy a symlink and move another
+echo % move and copy
+hg copy a.lnk d/a2.lnk
+hg mv d/b.lnk b2.lnk
+hg ci -Am copy
+cat d/a2.lnk && echo
+cat b2.lnk && echo
+
+# Bundle and extract again
+echo % bundle
+hg bundle --base null ../symlinks.bundle
+cd ..
+
+hg init t2
+cd t2
+hg pull ../symlinks.bundle
+hg update
+
+cat a.lnk && echo
+cat d/a2.lnk && echo
+cat b2.lnk && echo
\ No newline at end of file
Binary file tests/test-no-symlinks.bundle has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-no-symlinks.out	Wed Aug 08 23:11:12 2007 +0200
@@ -0,0 +1,26 @@
+% unbundle
+pulling from C:\dev\mercurial\hg\hg-local-stable\tests/test-no-symlinks.bundle
+requesting all changes
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 4 changes to 4 files
+(run 'hg update' to get a working copy)
+4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+a
+d/b
+% move and copy
+a
+d/b
+% bundle
+pulling from ../symlinks.bundle
+requesting all changes
+adding changesets
+adding manifests
+adding file changes
+added 2 changesets with 6 changes to 6 files
+(run 'hg update' to get a working copy)
+5 files updated, 0 files merged, 0 files removed, 0 files unresolved
+a
+a
+d/b