Mercurial > hg
view tests/test-sparse-clone.t @ 46326:3e23794b9e1c
run-tests: work around the Windows firewall popup for server processes
Windows doesn't have a `python3` executable, so cc0b332ab9fc attempted to work
around the issue by copying the current python to `python3.exe`. That put it in
`_tmpbindir` because of failures in `test-run-tests.t` when using `_bindir`,
which looked like a process was trying to open it to write out a copy while it
was in use. (Interestingly, I couldn't reproduce this running the test by
itself in a loop for a couple of hours, but it happens constantly when running
all tests.) The problem with using `_tmpbindir` is that it is the randomly
generated path for the test run, and instead of Windows Firewall remembering the
executable signature or image hash when allowing the process to open a server
port, it apparently remembers the image path. That means every run will trigger
a popup to allow it, which is bad for firing off a test run and walking away.
I tried to symlink to the python executable, but that currently requires admin
priviledges[1]. This will prompt the first time if the underlying python binary
has never opened a server port, but appears to avoid it on subsequent runs.
[1] https://bugs.python.org/issue40687
Differential Revision: https://phab.mercurial-scm.org/D9815
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 18 Jan 2021 00:50:01 -0500 |
parents | 5c2a4f37eace |
children | 9c4204b7f3e4 |
line wrap: on
line source
test sparse $ cat >> $HGRCPATH << EOF > [ui] > ssh = "$PYTHON" "$RUNTESTDIR/dummyssh" > username = nobody <no.reply@fb.com> > [extensions] > sparse= > purge= > strip= > rebase= > EOF $ hg init myrepo $ cd myrepo $ echo a > index.html $ echo x > data.py $ echo z > readme.txt $ cat > webpage.sparse <<EOF > [include] > *.html > EOF $ cat > backend.sparse <<EOF > [include] > *.py > EOF $ hg ci -Aqm 'initial' $ cd .. Verify local clone with a sparse profile works $ hg clone --enable-profile webpage.sparse myrepo clone1 updating to branch default warning: sparse profile 'webpage.sparse' not found in rev 000000000000 - ignoring it 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd clone1 $ ls -A .hg index.html $ cd .. Verify local clone with include works $ hg clone --include *.sparse myrepo clone2 updating to branch default 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd clone2 $ ls -A .hg backend.sparse webpage.sparse $ cd .. Verify local clone with exclude works $ hg clone --exclude data.py myrepo clone3 updating to branch default 4 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd clone3 $ ls -A .hg backend.sparse index.html readme.txt webpage.sparse $ cd .. Verify sparse clone profile over ssh works $ hg clone -q --enable-profile webpage.sparse ssh://user@dummy/myrepo clone4 warning: sparse profile 'webpage.sparse' not found in rev 000000000000 - ignoring it $ cd clone4 $ ls -A .hg index.html $ cd ..