test(ffe): use canonical FFE fixtures - #8616
Conversation
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8616) and master. ✅ No regressions detected - check the details below Full Metrics ComparisonFakeDbCommand
HttpMessageHandler
Comparison explanationExecution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:
Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard. Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph). Duration chartsFakeDbCommand (.NET Framework 4.8)gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8616) - mean (71ms) : 69, 74
master - mean (73ms) : 69, 77
section Bailout
This PR (8616) - mean (75ms) : 74, 77
master - mean (79ms) : 75, 82
section CallTarget+Inlining+NGEN
This PR (8616) - mean (1,095ms) : 1039, 1151
master - mean (1,107ms) : 1045, 1168
FakeDbCommand (.NET Core 3.1)gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8616) - mean (110ms) : 107, 113
master - mean (115ms) : 109, 122
section Bailout
This PR (8616) - mean (111ms) : 109, 113
master - mean (113ms) : 109, 117
section CallTarget+Inlining+NGEN
This PR (8616) - mean (788ms) : 767, 810
master - mean (790ms) : 770, 810
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8616) - mean (98ms) : 95, 101
master - mean (100ms) : 95, 105
section Bailout
This PR (8616) - mean (102ms) : 98, 107
master - mean (100ms) : 97, 102
section CallTarget+Inlining+NGEN
This PR (8616) - mean (944ms) : 910, 979
master - mean (956ms) : 916, 996
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8616) - mean (97ms) : 93, 101
master - mean (100ms) : 94, 106
section Bailout
This PR (8616) - mean (97ms) : 96, 99
master - mean (101ms) : 97, 105
section CallTarget+Inlining+NGEN
This PR (8616) - mean (827ms) : 784, 870
master - mean (823ms) : 785, 862
HttpMessageHandler (.NET Framework 4.8)gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8616) - mean (191ms) : 188, 195
master - mean (214ms) : 209, 220
section Bailout
This PR (8616) - mean (195ms) : 194, 197
master - mean (218ms) : 215, 221
section CallTarget+Inlining+NGEN
This PR (8616) - mean (1,169ms) : 1130, 1208
master - mean (1,288ms) : 1235, 1341
HttpMessageHandler (.NET Core 3.1)gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8616) - mean (274ms) : 269, 278
master - mean (308ms) : 302, 314
section Bailout
This PR (8616) - mean (274ms) : 272, 277
master - mean (307ms) : 300, 313
section CallTarget+Inlining+NGEN
This PR (8616) - mean (941ms) : 925, 957
master - mean (1,023ms) : 1000, 1046
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8616) - mean (268ms) : 264, 272
master - mean (303ms) : 295, 312
section Bailout
This PR (8616) - mean (268ms) : 266, 270
master - mean (304ms) : 294, 313
section CallTarget+Inlining+NGEN
This PR (8616) - mean (1,144ms) : 1108, 1181
master - mean (1,214ms) : 1178, 1251
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8616) - mean (266ms) : 262, 270
master - mean (303ms) : 295, 311
section Bailout
This PR (8616) - mean (266ms) : 263, 269
master - mean (304ms) : 297, 312
section CallTarget+Inlining+NGEN
This PR (8616) - mean (1,024ms) : 984, 1064
master - mean (1,110ms) : 1018, 1201
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BenchmarksBenchmark execution time: 2026-07-30 04:31:16 Comparing candidate commit 5166885 in PR branch Found 1 performance improvements and 1 performance regressions! Performance is the same for 69 metrics, 1 unstable metrics, 61 known flaky benchmarks, 65 flaky benchmarks without significant changes.
|
andrewlock
left a comment
There was a problem hiding this comment.
Please don't use git submodules. We'd rather have a job that periodically pulls in the data from other projects if that's the desired approach.
Alternatively, we can use the system-tests approach which clones the other repo and runs tests against it in CI, if that's a possibility
This reverts commit 2077a24.
834879c to
280cbd9
Compare
## Motivation Use the shared FFE fixture corpus. This prevents copied Go fixtures from drifting from other SDKs. The same migration is merged in [Java](DataDog/dd-trace-java#11355) and [libdatadog](DataDog/libdatadog#1979). Related migrations are open for [Python](DataDog/dd-trace-py#19390), [JavaScript](DataDog/dd-trace-js#8441), [Ruby](DataDog/dd-trace-rb#5742), and [.NET](DataDog/dd-trace-dotnet#8616). ## Changes and Decisions - Add `DataDog/ffe-system-test-data` as an OpenFeature test submodule. - Read all canonical configuration and evaluation cases from the submodule. - Parse and validate flags independently so one invalid flag does not reject valid neighbors. - Assert canonical values and reasons, including temporal defaults and missing-flag errors. - Initialize submodules in Go test workflows and configure weekly Dependabot updates. Co-authored-by: leo.romanovsky <leo.romanovsky@datadoghq.com>
Motivation
Use the shared FFE fixture corpus. This prevents copied .NET fixtures from drifting from other SDKs.
The same migration is merged in Java and libdatadog. The Go migration is approved. Related migrations are open for Python, JavaScript, and Ruby.
Changes and Decisions
DataDog/ffe-system-test-dataas a submodule under the feature-flag tests.FLAG_NOT_FOUNDfor missing flags and classify temporal, static, and split allocations.