Mercurial > hg
changeset 16971:8aeb2f1ae94c
tests: introduce hghave hardlinks
Some tests can't be run on FAT filesystems because it doesn't support
hardlinks.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Fri, 15 Jun 2012 00:02:27 +0200 |
parents | 8be2a28cc782 |
children | 5efe9c6a34fe |
files | tests/hghave.py tests/test-clone.t tests/test-contrib.t tests/test-hardlinks.t tests/test-relink.t |
diffstat | 5 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/hghave.py Fri Jun 15 00:02:27 2012 +0200 +++ b/tests/hghave.py Fri Jun 15 00:02:27 2012 +0200 @@ -189,6 +189,21 @@ except (OSError, AttributeError): return False +def has_hardlink(): + from mercurial import util + fh, fn = tempfile.mkstemp(dir='.', prefix=tempprefix) + os.close(fh) + name = tempfile.mktemp(dir='.', prefix=tempprefix) + try: + try: + util.oslink(fn, name) + os.unlink(name) + return True + except OSError: + return False + finally: + os.unlink(fn) + def has_tla(): return matchoutput('tla --version 2>&1', r'The GNU Arch Revision') @@ -266,6 +281,7 @@ "gettext": (has_gettext, "GNU Gettext (msgfmt)"), "git": (has_git, "git command line client"), "gpg": (has_gpg, "gpg client"), + "hardlink": (has_hardlink, "hardlinks"), "icasefs": (has_icasefs, "case insensitive file system"), "inotify": (has_inotify, "inotify extension support"), "lsprof": (has_lsprof, "python lsprof module"),
--- a/tests/test-clone.t Fri Jun 15 00:02:27 2012 +0200 +++ b/tests/test-clone.t Fri Jun 15 00:02:27 2012 +0200 @@ -48,8 +48,13 @@ No update, with debug option: +#if hardlink $ hg --debug clone -U . ../c linked 8 files +#else + $ hg --debug clone -U . ../c + copied 8 files +#endif $ cd ../c $ cat a 2>/dev/null || echo "a not present" a not present
--- a/tests/test-contrib.t Fri Jun 15 00:02:27 2012 +0200 +++ b/tests/test-contrib.t Fri Jun 15 00:02:27 2012 +0200 @@ -104,6 +104,8 @@ [1] +#if hardlink + Test shrink-revlog: $ cd repo-a $ hg --config extensions.shrink="$CONTRIBDIR/shrink-revlog.py" shrink @@ -127,6 +129,8 @@ 1 files, 3 changesets, 3 total revisions $ cd .. +#endif + Test simplemerge command: $ cp "$CONTRIBDIR/simplemerge" .