-
Notifications
You must be signed in to change notification settings - Fork 149
chore: improve Header and HeadersExt test coverage
#3250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
chore: improve Header and HeadersExt test coverage
#3250
Conversation
Add tests to eliminate missed mutants in `neqo-common/src/header.rs`: - `header_comparison_with_bytes`: add inequality tests for `PartialEq` - `is_allowed_for_response`: test allowed and disallowed header names - `headers_ext`: test `contains_header` and `find_header` with found/not-found cases
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3250 +/- ##
==========================================
- Coverage 93.50% 93.44% -0.06%
==========================================
Files 125 125
Lines 36637 36653 +16
Branches 36637 36653 +16
==========================================
- Hits 34256 34249 -7
- Misses 1529 1554 +25
+ Partials 852 850 -2
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR enhances test coverage for header-related functionality in neqo-common/src/header.rs by adding tests to catch missed mutants identified during mutation testing.
Key Changes:
- Adds inequality tests for
Header::PartialEqimplementation to ensure both name and value comparisons work correctly - Adds tests for
is_allowed_for_response()covering both allowed and disallowed header names - Adds tests for
HeadersExttrait methods (contains_headerandfind_header) with positive and negative cases
Failed Interop TestsQUIC Interop Runner, client vs. server, differences relative to
All resultsSucceeded Interop TestsQUIC Interop Runner, client vs. server neqo-pr as client
neqo-pr as server
Unsupported Interop TestsQUIC Interop Runner, client vs. server neqo-pr as client
neqo-pr as server
|
Benchmark resultsSignificant performance differences relative to ab7ae57. 1-streams/each-1000-bytes/wallclock-time: 💚 Performance has improved by -2.1527%. time: [579.97 µs 581.64 µs 583.57 µs]
change: [-3.4245% -2.1527% -1.1783] (p = 0.00 < 0.05)
Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
5 (5.00%) high severeAll results1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: Change within noise threshold. time: [206.81 ms 207.05 ms 207.29 ms]
thrpt: [482.42 MiB/s 482.98 MiB/s 483.53 MiB/s]
change:
time: [-0.6458% -0.4053% -0.1893] (p = 0.00 < 0.05)
thrpt: [+0.1896% +0.4069% +0.6500]
Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected. time: [282.38 ms 284.39 ms 286.46 ms]
thrpt: [34.909 Kelem/s 35.163 Kelem/s 35.413 Kelem/s]
change:
time: [-0.2341% +0.7447% +1.7566] (p = 0.15 > 0.05)
thrpt: [-1.7263% -0.7392% +0.2346]
No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) low mild
4 (4.00%) high mild1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected. time: [38.422 ms 38.571 ms 38.737 ms]
thrpt: [25.815 B/s 25.926 B/s 26.027 B/s]
change:
time: [-1.2166% -0.5256% +0.1341] (p = 0.13 > 0.05)
thrpt: [-0.1339% +0.5284% +1.2315]
No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
2 (2.00%) low mild
2 (2.00%) high mild
5 (5.00%) high severe1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: No change in performance detected. time: [212.35 ms 212.75 ms 213.27 ms]
thrpt: [468.89 MiB/s 470.03 MiB/s 470.93 MiB/s]
change:
time: [-0.0766% +0.1597% +0.4382] (p = 0.24 > 0.05)
thrpt: [-0.4363% -0.1594% +0.0767]
No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severedecode 4096 bytes, mask ff: No change in performance detected. time: [4.5094 µs 4.5222 µs 4.5406 µs]
change: [-0.2629% +0.2393% +0.9001] (p = 0.46 > 0.05)
No change in performance detected.
Found 6 outliers among 100 measurements (6.00%)
4 (4.00%) high mild
2 (2.00%) high severedecode 1048576 bytes, mask ff: No change in performance detected. time: [1.1600 ms 1.1614 ms 1.1627 ms]
change: [-0.9776% -0.0825% +0.8286] (p = 0.87 > 0.05)
No change in performance detected.
Found 10 outliers among 100 measurements (10.00%)
10 (10.00%) high severedecode 4096 bytes, mask 7f: No change in performance detected. time: [5.7935 µs 5.8123 µs 5.8436 µs]
change: [-0.0684% +0.4139% +0.9933] (p = 0.17 > 0.05)
No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severedecode 1048576 bytes, mask 7f: Change within noise threshold. time: [1.4761 ms 1.4785 ms 1.4809 ms]
change: [-0.6901% -0.4679% -0.2132] (p = 0.00 < 0.05)
Change within noise threshold.decode 4096 bytes, mask 3f: No change in performance detected. time: [5.5403 µs 5.5660 µs 5.6064 µs]
change: [-0.2100% +0.1013% +0.4641] (p = 0.57 > 0.05)
No change in performance detected.
Found 7 outliers among 100 measurements (7.00%)
4 (4.00%) high mild
3 (3.00%) high severedecode 1048576 bytes, mask 3f: No change in performance detected. time: [1.4152 ms 1.4174 ms 1.4196 ms]
change: [-0.1834% +0.0296% +0.2498] (p = 0.79 > 0.05)
No change in performance detected.1-streams/each-1000-bytes/wallclock-time: 💚 Performance has improved by -2.1527%. time: [579.97 µs 581.64 µs 583.57 µs]
change: [-3.4245% -2.1527% -1.1783] (p = 0.00 < 0.05)
Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
5 (5.00%) high severe1-streams/each-1000-bytes/simulated-time: No change in performance detected. time: [118.95 ms 119.15 ms 119.36 ms]
thrpt: [8.1816 KiB/s 8.1958 KiB/s 8.2100 KiB/s]
change:
time: [-0.0684% +0.1677% +0.4103] (p = 0.18 > 0.05)
thrpt: [-0.4087% -0.1675% +0.0684]
No change in performance detected.1000-streams/each-1-bytes/wallclock-time: Change within noise threshold. time: [12.286 ms 12.326 ms 12.367 ms]
change: [-1.2321% -0.6856% -0.1783] (p = 0.01 < 0.05)
Change within noise threshold.1000-streams/each-1-bytes/simulated-time: No change in performance detected. time: [2.3293 s 2.3334 s 2.3374 s]
thrpt: [427.82 B/s 428.56 B/s 429.31 B/s]
change:
time: [-0.2184% +0.0429% +0.3013] (p = 0.74 > 0.05)
thrpt: [-0.3004% -0.0428% +0.2189]
No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild1000-streams/each-1000-bytes/wallclock-time: Change within noise threshold. time: [50.236 ms 50.347 ms 50.460 ms]
change: [-0.7393% -0.4180% -0.0995] (p = 0.01 < 0.05)
Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild1000-streams/each-1000-bytes/simulated-time: No change in performance detected. time: [16.317 s 16.552 s 16.788 s]
thrpt: [58.170 KiB/s 59.001 KiB/s 59.851 KiB/s]
change:
time: [-1.4975% +0.5354% +2.5362] (p = 0.62 > 0.05)
thrpt: [-2.4735% -0.5326% +1.5203]
No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
2 (2.00%) low mild
2 (2.00%) high mildcoalesce_acked_from_zero 1+1 entries: No change in performance detected. time: [89.386 ns 89.712 ns 90.037 ns]
change: [-2.5499% -0.8147% +0.2888] (p = 0.38 > 0.05)
No change in performance detected.
Found 13 outliers among 100 measurements (13.00%)
12 (12.00%) high mild
1 (1.00%) high severecoalesce_acked_from_zero 3+1 entries: No change in performance detected. time: [105.87 ns 106.26 ns 106.67 ns]
change: [-0.4602% +0.0295% +0.6016] (p = 0.91 > 0.05)
No change in performance detected.
Found 18 outliers among 100 measurements (18.00%)
2 (2.00%) low mild
3 (3.00%) high mild
13 (13.00%) high severecoalesce_acked_from_zero 10+1 entries: No change in performance detected. time: [105.41 ns 105.87 ns 106.42 ns]
change: [-0.7279% -0.0885% +0.5187] (p = 0.78 > 0.05)
No change in performance detected.
Found 14 outliers among 100 measurements (14.00%)
3 (3.00%) low severe
3 (3.00%) low mild
8 (8.00%) high severecoalesce_acked_from_zero 1000+1 entries: No change in performance detected. time: [90.213 ns 90.344 ns 90.497 ns]
change: [-0.7681% +1.0715% +3.8391] (p = 0.56 > 0.05)
No change in performance detected.
Found 11 outliers among 100 measurements (11.00%)
6 (6.00%) high mild
5 (5.00%) high severeRxStreamOrderer::inbound_frame(): Change within noise threshold. time: [108.39 ms 108.47 ms 108.55 ms]
change: [+0.0385% +0.1422% +0.2393] (p = 0.01 < 0.05)
Change within noise threshold.
Found 12 outliers among 100 measurements (12.00%)
4 (4.00%) low mild
6 (6.00%) high mild
2 (2.00%) high severesent::Packets::take_ranges: No change in performance detected. time: [4.4575 µs 4.5540 µs 4.6423 µs]
change: [-5.4522% -2.5844% +0.4448] (p = 0.09 > 0.05)
No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mildtransfer/pacing-false/varying-seeds/wallclock-time/run: Change within noise threshold. time: [23.468 ms 23.490 ms 23.518 ms]
change: [+0.0101% +0.1659% +0.3286] (p = 0.03 < 0.05)
Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severetransfer/pacing-false/varying-seeds/simulated-time/run: No change in performance detected. time: [23.941 s 23.941 s 23.941 s]
thrpt: [171.09 KiB/s 171.09 KiB/s 171.09 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000]
No change in performance detected.transfer/pacing-true/varying-seeds/wallclock-time/run: Change within noise threshold. time: [24.085 ms 24.107 ms 24.131 ms]
change: [+0.0942% +0.3237% +0.4991] (p = 0.00 < 0.05)
Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severetransfer/pacing-true/varying-seeds/simulated-time/run: No change in performance detected. time: [23.676 s 23.676 s 23.676 s]
thrpt: [173.01 KiB/s 173.01 KiB/s 173.01 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000]
No change in performance detected.transfer/pacing-false/same-seed/wallclock-time/run: Change within noise threshold. time: [23.439 ms 23.468 ms 23.509 ms]
change: [-1.8309% -1.6043% -1.3787] (p = 0.00 < 0.05)
Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) low mild
1 (1.00%) high mild
2 (2.00%) high severetransfer/pacing-false/same-seed/simulated-time/run: No change in performance detected. time: [23.941 s 23.941 s 23.941 s]
thrpt: [171.09 KiB/s 171.09 KiB/s 171.09 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000]
No change in performance detected.transfer/pacing-true/same-seed/wallclock-time/run: Change within noise threshold. time: [24.177 ms 24.205 ms 24.245 ms]
change: [+0.1572% +0.3246% +0.5106] (p = 0.00 < 0.05)
Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) low mild
2 (2.00%) high mild
1 (1.00%) high severetransfer/pacing-true/same-seed/simulated-time/run: No change in performance detected. time: [23.676 s 23.676 s 23.676 s]
thrpt: [173.01 KiB/s 173.01 KiB/s 173.01 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000]
No change in performance detected.Download data for |
Client/server transfer resultsPerformance differences relative to ab7ae57. Transfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.
Table above only shows statistically significant changes. See all results below. All resultsTransfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.
Download data for |
Add tests to eliminate missed mutants in
neqo-common/src/header.rs:header_comparison_with_bytes: add inequality tests forPartialEqis_allowed_for_response: test allowed and disallowed header namesheaders_ext: testcontains_headerandfind_headerwith found/not-found cases