Mercurial > hg
annotate tests/test-fix-pickle.t @ 46800:186c0f6fbc16
tests: ask any chg instance to terminate before looking at sqlite dbs
There are spurious errors in CI where the database is still locked, so
force the daemon to quit to get deterministic behavior. Since the kill
command itself is racy, also sleep 2s to give the server time to wake up
and exit.
Differential Revision: https://phab.mercurial-scm.org/D10244
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Sat, 20 Mar 2021 00:37:57 +0100 |
parents | 7d24201b6447 |
children |
rev | line source |
---|---|
45390
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
1 A script that implements uppercasing all letters in a file. |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
2 |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
3 $ UPPERCASEPY="$TESTTMP/uppercase.py" |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
4 $ cat > $UPPERCASEPY <<EOF |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
5 > import sys |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
6 > from mercurial.utils.procutil import setbinary |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
7 > setbinary(sys.stdin) |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
8 > setbinary(sys.stdout) |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
9 > sys.stdout.write(sys.stdin.read().upper()) |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
10 > EOF |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
11 $ TESTLINES="foo\nbar\nbaz\n" |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
12 $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
13 FOO |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
14 BAR |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
15 BAZ |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
16 |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
17 This file attempts to test our workarounds for pickle's lack of |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
18 support for short reads. |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
19 |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
20 $ cat >> $HGRCPATH <<EOF |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
21 > [extensions] |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
22 > fix = |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
23 > [fix] |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
24 > uppercase-whole-file:command="$PYTHON" $UPPERCASEPY |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
25 > uppercase-whole-file:pattern=set:** |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
26 > EOF |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
27 |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
28 $ hg init repo |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
29 $ cd repo |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
30 |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
31 # Create a file that's large enough that it seems to not fit in |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
32 # pickle's buffer, making it use the code path that expects our |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
33 # _blockingreader's read() method to return bytes. |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
34 $ echo "some stuff" > file |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
35 $ for i in $($TESTDIR/seq.py 13); do |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
36 > cat file file > tmp |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
37 > mv -f tmp file |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
38 > done |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
39 $ hg commit -Am "add large file" |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
40 adding file |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
41 |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
42 Check that we don't get a crash |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
43 |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
44 $ hg fix -r . |
7d24201b6447
worker: don't expose readinto() on _blockingreader since pickle is picky
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
45 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-fix.hg (glob) |