Mercurial > public > mercurial-scm > hg
annotate tests/test-rust-discovery.py @ 52838:e52dc683bf6b
rust-pyo3: switch over to the pyo3 `InnerRevlog`
This does many things that would involve a lot of churn if done separately:
- Move the ancestors, revision and dagops modules to use the
new `SharedByPyObject` instead of the old `UnsafePyLeaked`
- Move the ancestors and discovery Python tests to using PyO3
- Change all calls to `importrust` to use `pyo3=True`, where applicable
# Benchmarks
I've run a bunch of benchmarks that involve revlog use. The TL;DR is that
the pyo3 code is basically always very slightly faster if/when it's not within
the noise levels.
Here is the report:
```
### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 8.425445 ~~~~~
after: 8.170007 (-3.03%, -0.26)
### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 8.328969 ~~~~~
after: 8.193693 (-1.62%, -0.14)
### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.318721 ~~~~~
after: 0.317050
### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.315603 ~~~~~
after: 0.311842 (-1.19%, -0.00)
### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 15.422452 ~~~~~
after: 15.417195
### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 15.424805 ~~~~~
after: 15.417188
### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 8.447181 ~~~~~
after: 8.279321 (-1.99%, -0.17)
### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 8.399840 ~~~~~
after: 8.310752 (-1.06%, -0.09)
### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.352319 ~~~~~
after: 0.353375
### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.322006 ~~~~~
after: 0.323852
### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 16.183304 ~~~~~
after: 16.177351
### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 16.169041 ~~~~~
after: 16.173200
### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 0.559746 ~~~~~
after: 0.548727 (-1.97%, -0.01)
### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 0.551662 ~~~~~
after: 0.548478
### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.294767 ~~~~~
after: 0.291008 (-1.28%, -0.00)
### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.290598 ~~~~~
after: 0.288139
### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.128753 ~~~~~
after: 0.127942
### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.128310 ~~~~~
after: 0.128236
### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 4.968975 ~~~~~
after: 4.804225 (-3.32%, -0.16)
### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 5.038150 ~~~~~
after: 4.821872 (-4.29%, -0.22)
### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 0.560542 ~~~~~
after: 0.557323
### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 0.554099 ~~~~~
after: 0.553200
### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.292676 ~~~~~
after: 0.292513
### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.288629 ~~~~~
after: 0.287737
### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.223442 ~~~~~
after: 0.223168
### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.223376 ~~~~~
after: 0.222181
### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 4.691464 ~~~~~
after: 4.567641 (-2.64%, -0.12)
### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 4.700062 ~~~~~
after: 4.616739 (-1.77%, -0.08)
### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 0.708915 ~~~~~
after: 0.697581 (-1.60%, -0.01)
### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 0.698667 ~~~~~
after: 0.693792
### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.302459 ~~~~~
after: 0.296517 (-1.96%, -0.01)
### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.297432 ~~~~~
after: 0.293347 (-1.37%, -0.00)
### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.200229 ~~~~~
after: 0.199035
### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.199995 ~~~~~
after: 0.199130
### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 0.712384 ~~~~~
after: 0.703804 (-1.20%, -0.01)
### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 0.704736 ~~~~~
after: 0.699944
### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.300989 ~~~~~
after: 0.300870
### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.296388 ~~~~~
after: 0.295122
### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.323753 ~~~~~
after: 0.328260 (+1.39%, +0.00)
### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.326091 ~~~~~
after: 0.325825
### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 36.797693 ~~~~~
after: 35.395390 (-3.81%, -1.40)
### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 36.400602 ~~~~~
after: 35.793828 (-1.67%, -0.61)
### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.303372 ~~~~~
after: 0.302275
### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.300228 ~~~~~
after: 0.299014
### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 133.610273 ~~~~~
after: 134.082667
### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 133.560602 ~~~~~
after: 133.560186
### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 32.279654 ~~~~~
after: 31.937365 (-1.06%, -0.34)
### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 32.393790 ~~~~~
after: 32.059161 (-1.03%, -0.33)
### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 36.750314 ~~~~~
after: 35.659837 (-2.97%, -1.09)
### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 36.132511 ~~~~~
after: 35.533999 (-1.66%, -0.60)
### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.426249 ~~~~~
after: 0.427237
### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.297567 ~~~~~
after: 0.297548
### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 135.684726 ~~~~~
after: 135.554733
### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 135.521429 ~~~~~
after: 135.471735
### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 32.138181 ~~~~~
after: 31.376612 (-2.37%, -0.76)
### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 32.436170 ~~~~~
after: 31.800662 (-1.96%, -0.64)
### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 56.412651 ~~~~~
after: 55.968979
### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 57.291139 ~~~~~
after: 55.623600 (-2.91%, -1.67)
### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.305015 ~~~~~
after: 0.302645
### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.299651 ~~~~~
after: 0.296140 (-1.17%, -0.00)
### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 372.603646 ~~~~~
after: 379.958592 (+1.97%, +7.35)
### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 372.571283 ~~~~~
after: 376.975082 (+1.18%, +4.40)
### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 57.900620 ~~~~~
after: 56.628974 (-2.20%, -1.27)
### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 56.772457 ~~~~~
after: 56.219994
### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.497401 ~~~~~
after: 0.498934
### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.298446 ~~~~~
after: 0.297411
### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 376.794500 ~~~~~
after: 377.126872
### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 377.108643 ~~~~~
after: 378.355222
### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 58.211350 ~~~~~
after: 56.179941 (-3.49%, -2.03)
### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 1.221867 ~~~~~
after: 1.171836 (-4.09%, -0.05)
### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = yes
# benchmark.variants.rev = none
before: 169.190180 ~~~~~
after: 167.816681
### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm
# benchmark.name = hg.command.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.resource-usage = default
# benchmark.variants.reuse-external-delta-parent = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = unbundle
# benchmark.variants.validate = default
# benchmark.variants.verbosity = quiet
before: 70.573063 ~~~~~
after: 70.149730
### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 2469.554928 ~~~~~
after: 2459.756854
### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 63.259498 ~~~~~
after: 62.934324
### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 52.009024 ~~~~~
after: 51.021327 (-1.90%, -0.99)
### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 52.021120 ~~~~~
after: 51.187100 (-1.60%, -0.83)
### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.316214 ~~~~~
after: 0.313213
### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.314039 ~~~~~
after: 0.309434 (-1.47%, -0.00)
### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 419.229602 ~~~~~
after: 418.731461
### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 419.121169 ~~~~~
after: 418.893086
### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 52.298052 ~~~~~
after: 51.680823 (-1.18%, -0.62)
### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 51.979719 ~~~~~
after: 50.517619 (-2.81%, -1.46)
### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.542347 ~~~~~
after: 0.541494
### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.361585 ~~~~~
after: 0.359601
### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 424.435573 ~~~~~
after: 425.054393
### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 425.369579 ~~~~~
after: 424.182501
### data-env-vars.name = netbeans-2018-08-01-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 17.169597 ~~~~~
after: 16.809620 (-2.10%, -0.36)
### data-env-vars.name = netbeans-2018-08-01-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 17.052174 ~~~~~
after: 16.873865 (-1.05%, -0.18)
### data-env-vars.name = netbeans-2018-08-01-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.300405 ~~~~~
after: 0.296493 (-1.30%, -0.00)
### data-env-vars.name = netbeans-2018-08-01-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.296907 ~~~~~
after: 0.291884 (-1.69%, -0.01)
### data-env-vars.name = netbeans-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 76.353166 ~~~~~
after: 76.315550
### data-env-vars.name = netbeans-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 76.304418 ~~~~~
after: 76.314896
### data-env-vars.name = netbeans-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 41.448226 ~~~~~
after: 39.696075 (-4.23%, -1.75)
### data-env-vars.name = netbeans-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 41.489911 ~~~~~
after: 40.213760 (-3.08%, -1.28)
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 17.276211 ~~~~~
after: 16.934238 (-1.98%, -0.34)
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 17.275566 ~~~~~
after: 17.151560
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.363647 ~~~~~
after: 0.364217
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.292249 ~~~~~
after: 0.293737
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 77.242740 ~~~~~
after: 77.165247
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 77.189009 ~~~~~
after: 77.153971
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 40.341299 ~~~~~
after: 40.604985
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 40.585503 ~~~~~
after: 40.820806
### data-env-vars.name = netbeans-2019-11-07-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 17.515332 ~~~~~
after: 17.190762 (-1.85%, -0.32)
### data-env-vars.name = netbeans-2019-11-07-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 17.343596 ~~~~~
after: 17.050369 (-1.69%, -0.29)
### data-env-vars.name = netbeans-2019-11-07-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.316108 ~~~~~
after: 0.315292
### data-env-vars.name = netbeans-2019-11-07-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.311521 ~~~~~
after: 0.307919 (-1.16%, -0.00)
### data-env-vars.name = netbeans-2019-11-07-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 80.169792 ~~~~~
after: 80.090093
### data-env-vars.name = netbeans-2019-11-07-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 80.168257 ~~~~~
after: 80.203922
### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 17.471723 ~~~~~
after: 17.104498 (-2.10%, -0.37)
### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 17.351268 ~~~~~
after: 17.039244 (-1.80%, -0.31)
### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.379920 ~~~~~
after: 0.380529
### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.306940 ~~~~~
after: 0.308172
### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 81.143787 ~~~~~
after: 81.205227
### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 81.208757 ~~~~~
after: 81.201285
### data-env-vars.name = pypy-2018-08-01-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.409354 ~~~~~
after: 1.384783 (-1.74%, -0.02)
### data-env-vars.name = pypy-2018-08-01-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.395327 ~~~~~
after: 1.379295 (-1.15%, -0.02)
### data-env-vars.name = pypy-2018-08-01-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.305516 ~~~~~
after: 0.301302 (-1.38%, -0.00)
### data-env-vars.name = pypy-2018-08-01-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.300681 ~~~~~
after: 0.296424 (-1.42%, -0.00)
### data-env-vars.name = pypy-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 1.228350 ~~~~~
after: 1.225184
### data-env-vars.name = pypy-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 1.227250 ~~~~~
after: 1.226652
### data-env-vars.name = pypy-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 10.441251 ~~~~~
after: 10.233845 (-1.99%, -0.21)
### data-env-vars.name = pypy-2018-08-01-ds2-pnm
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 10.477187 ~~~~~
after: 10.518723
### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.406229 ~~~~~
after: 1.383834 (-1.59%, -0.02)
### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.404700 ~~~~~
after: 1.386296 (-1.31%, -0.02)
### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.303247 ~~~~~
after: 0.304695
### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.295575 ~~~~~
after: 0.294873
### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 1.614998 ~~~~~
after: 1.619019
### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 1.608089 ~~~~~
after: 1.613761
### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 10.494740 ~~~~~
after: 10.183642 (-2.96%, -0.31)
### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.perf.unbundle
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.issue6528 = default
# benchmark.variants.revs = any-10000-extra-rev
# benchmark.variants.source = default
before: 10.153362 ~~~~~
after: 10.208118
### data-env-vars.name = pypy-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.613760 ~~~~~
after: 1.595667 (-1.12%, -0.02)
### data-env-vars.name = pypy-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.601770 ~~~~~
after: 1.589591
### data-env-vars.name = pypy-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.300656 ~~~~~
after: 0.299511
### data-env-vars.name = pypy-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.298116 ~~~~~
after: 0.34f44a
### data-env-vars.name = pypy-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 1.451637 ~~~~~
after: 1.449828
### data-env-vars.name = pypy-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 1.447463 ~~~~~
after: 1.447144
### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.618347 ~~~~~
after: 1.593819 (-1.52%, -0.02)
### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.610104 ~~~~~
after: 1.591181 (-1.18%, -0.02)
### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.299082 ~~~~~
after: 0.302411 (+1.11%, +0.00)
### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.294385 ~~~~~
after: 0.294103
### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 1.896348 ~~~~~
after: 1.892661
### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 1.897075 ~~~~~
after: 1.896864
### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.823667 ~~~~~
after: 1.791246 (-1.78%, -0.03)
### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.820555 ~~~~~
after: 1.765854 (-3.00%, -0.05)
### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.340665 ~~~~~
after: 0.336729 (-1.16%, -0.00)
### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.335204 ~~~~~
after: 0.333865
### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.262541 ~~~~~
after: 0.261794
### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.261495 ~~~~~
after: 0.260879
### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.856138 ~~~~~
after: 1.784902 (-3.84%, -0.07)
### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.cat
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.files = all-root
# benchmark.variants.output = plain
# benchmark.variants.rev = tip
before: 1.811432 ~~~~~
after: 1.782845 (-1.58%, -0.03)
### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.343215 ~~~~~
after: 0.341859
### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = none
before: 0.332617 ~~~~~
after: 0.331202
### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rhg
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.590326 ~~~~~
after: 0.590407
### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog
# benchmark.name = hg.perf.read-revisions
# bin-env-vars.hg.flavor = rust
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.order = default
# benchmark.variants.revlog = manifestlog
before: 0.589567 ~~~~~
after: 0.588821
```
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Tue, 07 Jan 2025 17:34:25 +0100 |
parents | 0b81440e2a73 |
children |
rev | line source |
---|---|
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
1 import unittest |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
2 |
42670
a7f1a0b3f461
module-policy: update rust extension import to use the new module policy
Rapha?l Gom?s <rgomes@octobus.net>
parents:
42180
diff
changeset
|
3 from mercurial import policy |
51242
0b81440e2a73
rust-index: using `hg::index::Index` in discovery
Georges Racinet <georges.racinet@octobus.net>
parents:
48946
diff
changeset
|
4 from mercurial.testing import revlog as revlogtesting |
42670
a7f1a0b3f461
module-policy: update rust extension import to use the new module policy
Rapha?l Gom?s <rgomes@octobus.net>
parents:
42180
diff
changeset
|
5 |
52838
e52dc683bf6b
rust-pyo3: switch over to the pyo3 `InnerRevlog`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
51242
diff
changeset
|
6 PartialDiscovery = policy.importrust( |
e52dc683bf6b
rust-pyo3: switch over to the pyo3 `InnerRevlog`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
51242
diff
changeset
|
7 'discovery', member='PartialDiscovery', pyo3=True |
e52dc683bf6b
rust-pyo3: switch over to the pyo3 `InnerRevlog`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
51242
diff
changeset
|
8 ) |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
9 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
10 try: |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
11 from mercurial.cext import parsers as cparsers |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
12 except ImportError: |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
13 cparsers = None |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
14 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
15 # picked from test-parse-index2, copied rather than imported |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
16 # so that it stays stable even if test-parse-index2 changes or disappears. |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
17 data_non_inlined = ( |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
18 b'\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01D\x19' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
19 b'\x00\x07e\x12\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
20 b'\xff\xff\xff\xff\xd1\xf4\xbb\xb0\xbe\xfc\x13\xbd\x8c\xd3\x9d' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
21 b'\x0f\xcd\xd9;\x8c\x07\x8cJ/\x00\x00\x00\x00\x00\x00\x00\x00\x00' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
22 b'\x00\x00\x00\x00\x00\x00\x01D\x19\x00\x00\x00\x00\x00\xdf\x00' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
23 b'\x00\x01q\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
24 b'\xff\xff\xff\xc1\x12\xb9\x04\x96\xa4Z1t\x91\xdfsJ\x90\xf0\x9bh' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
25 b'\x07l&\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
26 b'\x00\x01D\xf8\x00\x00\x00\x00\x01\x1b\x00\x00\x01\xb8\x00\x00' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
27 b'\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\x02\n' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
28 b'\x0e\xc6&\xa1\x92\xae6\x0b\x02i\xfe-\xe5\xbao\x05\xd1\xe7\x00' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
29 b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01F' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
30 b'\x13\x00\x00\x00\x00\x01\xec\x00\x00\x03\x06\x00\x00\x00\x01' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
31 b'\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x12\xcb\xeby1' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
32 b'\xb6\r\x98B\xcb\x07\xbd`\x8f\x92\xd9\xc4\x84\xbdK\x00\x00\x00' |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
33 b'\x00\x00\x00\x00\x00\x00\x00\x00\x00' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
34 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
35 |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
36 |
48946
642e31cb55f0
py3: use class X: instead of class X(object):
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48875
diff
changeset
|
37 class fakechangelog: |
42759
791791a1fd4e
tests: split joint repo/changelog fake into one for each type
Augie Fackler <augie@google.com>
parents:
42741
diff
changeset
|
38 def __init__(self, idx): |
791791a1fd4e
tests: split joint repo/changelog fake into one for each type
Augie Fackler <augie@google.com>
parents:
42741
diff
changeset
|
39 self.index = idx |
791791a1fd4e
tests: split joint repo/changelog fake into one for each type
Augie Fackler <augie@google.com>
parents:
42741
diff
changeset
|
40 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
41 |
48946
642e31cb55f0
py3: use class X: instead of class X(object):
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48875
diff
changeset
|
42 class fakerepo: |
42736
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
43 def __init__(self, idx): |
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
44 """Just make so that self.changelog.index is the given idx.""" |
42759
791791a1fd4e
tests: split joint repo/changelog fake into one for each type
Augie Fackler <augie@google.com>
parents:
42741
diff
changeset
|
45 self.changelog = fakechangelog(idx) |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
46 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
47 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
48 @unittest.skipIf( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
49 PartialDiscovery is None or cparsers is None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
50 "rustext or the C Extension parsers module " |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
51 "discovery relies on is not available", |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
52 ) |
52838
e52dc683bf6b
rust-pyo3: switch over to the pyo3 `InnerRevlog`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
51242
diff
changeset
|
53 class rustdiscoverytest(revlogtesting.PyO3RevlogBasedTestBase): |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
54 """Test the correctness of binding to Rust code. |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
55 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
56 This test is merely for the binding to Rust itself: extraction of |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
57 Python variable, giving back the results etc. |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
58 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
59 It is not meant to test the algorithmic correctness of the provided |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
60 methods. Hence the very simple embedded index data is good enough. |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
61 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
62 Algorithmic correctness is asserted by the Rust unit tests. |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
63 """ |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
64 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
65 def parseindex(self): |
51242
0b81440e2a73
rust-index: using `hg::index::Index` in discovery
Georges Racinet <georges.racinet@octobus.net>
parents:
48946
diff
changeset
|
66 return self.parserustindex(data=data_non_inlined) |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
67 |
42736
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
68 def repo(self): |
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
69 return fakerepo(self.parseindex()) |
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
70 |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
71 def testindex(self): |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
72 idx = self.parseindex() |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
73 # checking our assumptions about the index binary data: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
74 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
75 {i: (r[5], r[6]) for i, r in enumerate(idx)}, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
76 {0: (-1, -1), 1: (0, -1), 2: (1, -1), 3: (2, -1)}, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
77 ) |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
78 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
79 def testaddcommonsmissings(self): |
42736
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
80 disco = PartialDiscovery(self.repo(), [3], True) |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
81 self.assertFalse(disco.hasinfo()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
82 self.assertFalse(disco.iscomplete()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
83 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
84 disco.addcommons([1]) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
85 self.assertTrue(disco.hasinfo()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
86 self.assertFalse(disco.iscomplete()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
87 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
88 disco.addmissings([2]) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
89 self.assertTrue(disco.hasinfo()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
90 self.assertTrue(disco.iscomplete()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
91 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
92 self.assertEqual(disco.commonheads(), {1}) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
93 |
42180
1b0be75cb61f
rust-discovery: implementing and exposing stats()
Georges Racinet <georges.racinet@octobus.net>
parents:
42179
diff
changeset
|
94 def testaddmissingsstats(self): |
42736
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
95 disco = PartialDiscovery(self.repo(), [3], True) |
42180
1b0be75cb61f
rust-discovery: implementing and exposing stats()
Georges Racinet <georges.racinet@octobus.net>
parents:
42179
diff
changeset
|
96 self.assertIsNone(disco.stats()['undecided'], None) |
1b0be75cb61f
rust-discovery: implementing and exposing stats()
Georges Racinet <georges.racinet@octobus.net>
parents:
42179
diff
changeset
|
97 |
1b0be75cb61f
rust-discovery: implementing and exposing stats()
Georges Racinet <georges.racinet@octobus.net>
parents:
42179
diff
changeset
|
98 disco.addmissings([2]) |
1b0be75cb61f
rust-discovery: implementing and exposing stats()
Georges Racinet <georges.racinet@octobus.net>
parents:
42179
diff
changeset
|
99 self.assertEqual(disco.stats()['undecided'], 2) |
1b0be75cb61f
rust-discovery: implementing and exposing stats()
Georges Racinet <georges.racinet@octobus.net>
parents:
42179
diff
changeset
|
100 |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
101 def testaddinfocommonfirst(self): |
42736
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
102 disco = PartialDiscovery(self.repo(), [3], True) |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
103 disco.addinfo([(1, True), (2, False)]) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
104 self.assertTrue(disco.hasinfo()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
105 self.assertTrue(disco.iscomplete()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
106 self.assertEqual(disco.commonheads(), {1}) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
107 |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
108 def testaddinfomissingfirst(self): |
42736
b6f3f704a561
rust-discovery: read the index from a repo passed at init
Georges Racinet <georges.racinet@octobus.net>
parents:
42735
diff
changeset
|
109 disco = PartialDiscovery(self.repo(), [3], True) |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
110 disco.addinfo([(2, False), (1, True)]) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
111 self.assertTrue(disco.hasinfo()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
112 self.assertTrue(disco.iscomplete()) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
113 self.assertEqual(disco.commonheads(), {1}) |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
114 |
42741
4e7bd6180b53
rust-discovery: optionally don't randomize at all, for tests
Georges Racinet <georges.racinet@octobus.net>
parents:
42736
diff
changeset
|
115 def testinitnorandom(self): |
4e7bd6180b53
rust-discovery: optionally don't randomize at all, for tests
Georges Racinet <georges.racinet@octobus.net>
parents:
42736
diff
changeset
|
116 PartialDiscovery(self.repo(), [3], True, randomize=False) |
4e7bd6180b53
rust-discovery: optionally don't randomize at all, for tests
Georges Racinet <georges.racinet@octobus.net>
parents:
42736
diff
changeset
|
117 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
118 |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
119 if __name__ == '__main__': |
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
120 import silenttestrunner |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42759
diff
changeset
|
121 |
42179
13b64247f48f
rust-discovery: cpython bindings for the core logic
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
122 silenttestrunner.main(__name__) |