Repository navigation
chore: Bump Imposter from 1.0.7 to 1.0.9 - #913
Conversation
--- updated-dependencies: - dependency-name: Imposter dependency-version: 1.0.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
Test Results 31 files ±0 31 suites ±0 53m 9s ⏱️ + 3m 1s Results for commit 2764440. ± Comparison against base commit 7560c9f. This pull request removes 22 and adds 16 tests. Note that renamed tests count towards both. |
🚀 Benchmark ResultsDetails
Details
Details
Details
Details
Details
|
#913) by dependabot[bot]
#913) by dependabot[bot]
Updated Imposter from 1.0.7 to 1.0.9.
Release notes
Sourced from Imposter's releases.
1.0.9
Performance
Removing or inserting a registration no longer rebuilds the imposters after it (#440, closes #408). The driver compares registered targets by position, so removing or inserting one
[assembly: GenerateImposter(...)]regenerated every imposter registered after it, even though none of them changed. The generator now reuses a source when its target and C# version haven't changed. In a project with 20 targets of 30 members each, removing the first registration now takes 4 ms in the generator, down from 477 ms. The generated code is unchanged.Method
Throwssetups allocate one closure instead of two (#441, closes #437). The setup step wrapped the builder's throwing lambda in a second one. It now uses that lambda directly. Per setup:Throws(exception)Throws(_ => exception)Throws<InvalidOperationException>()Throws<TException>()captures nothing, so its setup no longer allocates any closure.1.0.8
Performance
Method setups no longer allocate queues or take a lock (#438, closes #405). Each method setup used to create two
ConcurrentQueues, and eachThen()step another. Until the steps ran out, every call also took a lock to advance them. Steps now live in a lock-freeReturnValueSequence, and callbacks in a list created on the firstCallback. Indexer getter return values use the same sequence, as property getters already did. Per setup:Returns(4)Returns(1).Then().Returns(2).Then().Returns(3)Throws(exception)Returns(4).Callback(...)Getter().Returns(5)A call that runs a callback now allocates 96 B instead of 168 B, the same as a call without one.
Generic methods skip type adaptation when the type arguments already match (#433, closes #401). Verification no longer converts the criteria once per recorded call, so verifying against 1,000 recorded calls costs the same as against one. A matched
Echo<string>call with two setups allocates at most 120 B, down from 216 B.Edits rebuild less of each target's model (#436, closes #403). On every edit, the generator rebuilt or recompared several parts of each registered target's model. An edit with 20 registered targets now allocates about 25% less in the generator, for example 4.0 MB instead of 5.4 MB. The generated code is unchanged.
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)