view tests/test-symlink-os-yes-fs-no.py @ 21740:2b3b60031b6f

run-tests: fixes the number of tests ran when '--retest' is enabled This patch fixes a regression recently introduced by a refactoring. (see 92a6b16c9186 and about 200 previous changesets from Gregory Szorc) While retesting, that is when '--retest' is enabled, only failure tests run and others either skipped or ignored. During retesting, "result.testsRun" holds the count of failure test that has run. But as while printing output, we have subtracted the skipped and ignored count from "result.testsRun". Therefore, to make the count remain the same, we need to add skipped and ignored count before printing.
author anuraggoel <anurag.dsps@gmail.com>
date Thu, 12 Jun 2014 03:20:28 +0530
parents 6ae45c0b4625
children 3b453513f1fe
line wrap: on
line source

import os, sys, time
from mercurial import hg, ui, commands, util

TESTDIR = os.environ["TESTDIR"]
BUNDLEPATH = os.path.join(TESTDIR, 'bundles', 'test-no-symlinks.hg')

# only makes sense to test on os which supports symlinks
if not getattr(os, "symlink", False):
    sys.exit(80) # SKIPPED_STATUS defined in run-tests.py

u = ui.ui()
# hide outer repo
hg.peer(u, {}, '.', create=True)

# clone with symlink support
hg.clone(u, {}, BUNDLEPATH, 'test0')

repo = hg.repository(u, 'test0')

# wait a bit, or the status call wont update the dirstate
time.sleep(1)
commands.status(u, repo)

# now disable symlink support -- this is what os.symlink would do on a
# non-symlink file system
def symlink_failure(src, dst):
    raise OSError(1, "Operation not permitted")
os.symlink = symlink_failure

# dereference links as if a Samba server has exported this to a
# Windows client
for f in 'test0/a.lnk', 'test0/d/b.lnk':
    os.unlink(f)
    fp = open(f, 'wb')
    fp.write(util.readfile(f[:-4]))
    fp.close()

# reload repository
u = ui.ui()
repo = hg.repository(u, 'test0')
commands.status(u, repo)

# try cloning a repo which contains symlinks
u = ui.ui()
hg.clone(u, {}, BUNDLEPATH, 'test1')