--- 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