Mercurial > hg
view tests/test-sparse-clone.t @ 35432:86b8cc1f244e
worker: make windows workers daemons
The windows workers weren't daemons and were not correctly killed when ctrl-c'd from the terminal. Withi this change when the main thread is killed, all daemons get killed as well.
I also reduced the time we give to workers to cleanup nicely to not have people ctrl-c'ing when they get inpatient.
The output when threads clened up nicely:
PS C:\<dir>> hg.exe sparse --disable-profile SparseProfiles/<profile>.sparse
interrupted!
The output when threads don't clenup in 1 sec:
PS C:\<dir> hg.exe sparse --enable-profile SparseProfiles/<profile>.sparse
failed to kill worker threads while handling an exception
interrupted!
Exception in thread Thread-4 (most likely raised during interpreter shutdown):
PS C:\<dir>>
Test Plan:
Run hg command on windows (pull/update/sparse). Ctrl-C'd sparse --enable-profile command that was using threads and observed in proces explorer that all threads got killed.
ran tests on CentOS
Differential Revision: https://phab.mercurial-scm.org/D1564
author | Wojciech Lis <wlis@fb.com> |
---|---|
date | Thu, 30 Nov 2017 16:01:53 -0800 |
parents | abd7dedbaa36 |
children | c18ae7a07019 |
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 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 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 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 index.html $ cd ..