tests/test-mq-qsave.t
author Jun Wu <quark@fb.com>
Tue, 15 Nov 2016 20:25:51 +0000
changeset 30428 1156ec81f709
parent 12324 b701610f6c56
child 49585 55c6ebd11cb9
permissions -rw-r--r--
util: improve iterfile so it chooses code path wisely We have performance concerns on "iterfile" as it is 4X slower on normal files. While modern systems have the nice property that reading a "fast" (on-disk) file cannot be interrupted and should be made use of. This patch dumps the related knowledge in comments. And "iterfile" chooses code paths wisely: 1. If it's CPython 3, or PyPY, use the fast path. 2. If fp is a normal file, use the fast path. 3. If fp is not a normal file and CPython version >= 2.7.4, use the same workaround (4x slower) as before. 4. If fp is not a normal file and CPython version < 2.7.4, use another workaround (2x slower but may block longer then necessary) which basically re-invents the buffer + readline logic in Python. This will give us good confidence on both correctness and performance dealing with EINTR in iterfile(fp) for all known supported Python versions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12324
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
     1
  $ echo "[extensions]" >> $HGRCPATH
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
     2
  $ echo "mq=" >> $HGRCPATH
2817
ff3edd1c1e27 Add basic qsave/qrestore test.
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
     3
12324
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
     4
  $ hg init
2817
ff3edd1c1e27 Add basic qsave/qrestore test.
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
     5
12324
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
     6
  $ echo 'base' > base
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
     7
  $ hg ci -Ambase
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
     8
  adding base
2817
ff3edd1c1e27 Add basic qsave/qrestore test.
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
     9
12324
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
    10
  $ hg qnew -mmqbase mqbase
2817
ff3edd1c1e27 Add basic qsave/qrestore test.
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
    11
12324
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
    12
  $ hg qsave
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
    13
  $ hg qrestore 2
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
    14
  restoring status: hg patches saved state
b701610f6c56 tests: unify some of test-mq*
Adrian Buehlmann <adrian@cadifra.com>
parents: 2990
diff changeset
    15