timeseries [6/6] RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures - #3436
Conversation
timeseries RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## tvaleev/feature/RUM-13949/timeseries-rum-session-wiring #3436 +/- ##
==========================================================================================
Coverage ? 72.34%
==========================================================================================
Files ? 977
Lines ? 35895
Branches ? 5983
==========================================================================================
Hits ? 25968
Misses ? 8296
Partials ? 1631 🚀 New features to boost your workflow:
|
f630b6d to
3b05b0c
Compare
47a028b to
c082086
Compare
3b05b0c to
9d01d39
Compare
c082086 to
ac44f0c
Compare
8ea9614 to
9a49aaa
Compare
ac44f0c to
92af517
Compare
This comment has been minimized.
This comment has been minimized.
9a49aaa to
0db4915
Compare
92af517 to
de1c9de
Compare
0db4915 to
91bf158
Compare
15f936e to
5a583ff
Compare
7298723 to
cd319d9
Compare
5a583ff to
de29adf
Compare
timeseries RUM-13949 Add end-to-end timeseries verification tests with CSV fixturestimeseries [6/6] RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures
cd319d9 to
ac48ae9
Compare
1ab171a to
788b857
Compare
eb04d67 to
3bc2f67
Compare
788b857 to
8502ee1
Compare
76962de to
67ac58e
Compare
d4fea36 to
e46fbe0
Compare
67ac58e to
b5c4c9f
Compare
e46fbe0 to
8e019ac
Compare
b5c4c9f to
58caba2
Compare
8e019ac to
89cae98
Compare
7a16adb to
fecf437
Compare
98ef2c6 to
65d113c
Compare
5e2f819 to
68074fe
Compare
Adds a self-contained end-to-end test suite for the timeseries pipeline using CSV-driven input fixtures and golden JSON files, without any real Android API dependencies. Includes `CSVReader`, `CsvTimeseries` (a synchronous, executor-free test double mirroring `RumSessionScopeTimeseriesFactory`), `TimeseriesEndToEndTest`, and the accompanying CSV input and expected JSON fixture files. Provides regression coverage that the full memory and CPU batch outputs match the expected wire format exactly, catching any serialization regressions independently of mock-heavy unit tests. Fixtures use a fixed 10-sample / 2-batch scenario. Numeric comparisons use a small relative tolerance for floating-point memory_percent values.
Add missing "count" field to all four expected JSON fixtures so they match the serializer output that now includes a sample count per batch. Ref: RUM-13949
cde192e to
af31b3d
Compare
68074fe to
6e1f3b8
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6e1f3b8a34
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| when { | ||
| expected.isString || actual.isString -> | ||
| assertThat(actual.asString).describedAs("String at %s", path).isEqualTo(expected.asString) |
There was a problem hiding this comment.
Enforce primitive types in golden JSON comparison
When a serializer accidentally changes a numeric field in the wire payload to a JSON string with the same characters, this comparison still passes because the expected.isString || actual.isString branch compares only asString values. That defeats the purpose of these golden fixtures as exact wire-format checks; for example, an actual "1700000001000000000" would be accepted for an expected numeric 1700000001000000000. Please require both primitives to have the same JSON type before comparing their values.
Useful? React with 👍 / 👎.

What does this PR do?
Adds a self-contained end-to-end test suite for the timeseries pipeline using CSV-driven input fixtures and golden JSON files, without any real Android API dependencies. Includes
CSVReader,CsvTimeseries(a synchronous, executor-free test double mirroringRumSessionScopeTimeseriesFactory),TimeseriesEndToEndTest, and the accompanying CSV input and expected JSON fixture files.Motivation
Provides regression coverage that the full memory and CPU batch outputs match the expected wire format exactly, catching any serialization regressions independently of mock-heavy unit tests.
Review checklist (to be filled by reviewers)