# HG changeset patch # User Patrick Mezard # Date 1186607472 -7200 # Node ID 1a028bdaddcee758be73e5d202b2211fa266f561 # Parent 06154aff2b1af2b9478b948625f167124053b538# Parent dcfd75502b827a14417e1333e35ce6251f3ef5cf Merge with crew-stable diff --git a/tests/hghave b/tests/hghave --- a/tests/hghave +++ b/tests/hghave @@ -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 @@ if __name__ == '__main__': 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) diff --git a/tests/test-no-symlinks b/tests/test-no-symlinks new file mode 100755 --- /dev/null +++ b/tests/test-no-symlinks @@ -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 diff --git a/tests/test-no-symlinks.bundle b/tests/test-no-symlinks.bundle new file mode 100644 index 0000000000000000000000000000000000000000..6c4b94ad67cfc1465f9f659179178c8854801f39 GIT binary patch literal 558 zc$@()0@3|QM=>x$T4*^jL0KkKSsYCK5dZ)bfB*iw&@)vF|MhHU#B%@t-k3o9TC5Eb z!IqOj4B?0Y$Re--d5oa1RECMP$kGh}X!SiN(3$`PL8C)J0ilge4Kh7Onl$o_Jxx7N zO+t+kff^*xG8zB?Gyu>50B8UJ00000f{iH8P?;EphJz-WU_po)01XTYlK>Hc28K+4 z1D!s>1N9&?{oU9$;lMyS6CDL+5CH@XNCAj&FmnV^{t-kF03u4N)IbP;xr}qXaM+T* zNxl9b*opYAc>L-?=*zIB>D9$i!-ygJ400;EhB-5nuaJTx!yX*;60axQC@*MZx_(20 zCA7~Xjchc_?R?O@XOIV$#Sx{1s(4Fl0K!A;d<^Iq$~Y;AafLDx$qX~96N+3XFeK_J zOlpu;1E^>!1&P4{A|(reiv=|)D)$`P^}1~Qj!k;$>F2hV1>|rhXgr}MfD`uhGhWIP z0O|Jw&UPYsl9i2gZrMbJj7(TikwB49@Fd=F_@l}W(jiAUF(YD-^68XXPD_4ZSCS_7 zm~i0Y#uh;YkwrXcvEdTJOfZ$mi9nBQHe;MeJDXGvO*Qe(++3FY=KhoB)={(rneiZi z^9l?S4=CIJ(ugIQPK_hUIVf${sX<^6B>w93tJqa;^C|&FMD;RLss)LctbJII#06j? wL0?4{R5hT{~A^-pY diff --git a/tests/test-no-symlinks.out b/tests/test-no-symlinks.out new file mode 100644 --- /dev/null +++ b/tests/test-no-symlinks.out @@ -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