Skip to content

timeseries [6/6] RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures - #3436

Merged
satween merged 2 commits into
feature/timeseriesfrom
tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures
Jun 12, 2026
Merged

timeseries [6/6] RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures#3436
satween merged 2 commits into
feature/timeseriesfrom
tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures

Conversation

@satween

@satween satween commented May 12, 2026

Copy link
Copy Markdown
Contributor

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 mirroring RumSessionScopeTimeseriesFactory), 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)

  • Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
  • Make sure you discussed the feature or bugfix with the maintaining team in an Issue
  • Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

@satween satween changed the title RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures timeseries RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures May 12, 2026
@codecov-commenter

codecov-commenter commented May 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (tvaleev/feature/RUM-13949/timeseries-rum-session-wiring@af31b3d). Learn more about missing BASE report.

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:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from f630b6d to 3b05b0c Compare May 13, 2026 13:43
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch 2 times, most recently from 47a028b to c082086 Compare May 13, 2026 14:44
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from 3b05b0c to 9d01d39 Compare May 13, 2026 14:44
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from c082086 to ac44f0c Compare May 14, 2026 19:40
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch 2 times, most recently from 8ea9614 to 9a49aaa Compare May 20, 2026 15:27
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from ac44f0c to 92af517 Compare May 20, 2026 15:27
@datadog-prod-us1-6

This comment has been minimized.

@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from 9a49aaa to 0db4915 Compare May 21, 2026 19:40
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from 92af517 to de1c9de Compare May 21, 2026 19:46
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from 0db4915 to 91bf158 Compare May 21, 2026 20:16
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch 2 times, most recently from 15f936e to 5a583ff Compare May 22, 2026 13:01
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch 2 times, most recently from 7298723 to cd319d9 Compare May 22, 2026 14:52
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from 5a583ff to de29adf Compare May 22, 2026 14:52
@satween satween changed the title timeseries RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures timeseries [6/6] RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures May 25, 2026
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from cd319d9 to ac48ae9 Compare May 27, 2026 09:59
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from 1ab171a to 788b857 Compare May 27, 2026 21:14
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from eb04d67 to 3bc2f67 Compare May 27, 2026 21:14
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from 788b857 to 8502ee1 Compare May 28, 2026 08:53
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch 2 times, most recently from 76962de to 67ac58e Compare May 28, 2026 15:56
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from d4fea36 to e46fbe0 Compare May 29, 2026 16:39
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from 67ac58e to b5c4c9f Compare May 29, 2026 16:39
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from e46fbe0 to 8e019ac Compare June 5, 2026 15:59
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from b5c4c9f to 58caba2 Compare June 5, 2026 15:59
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from 8e019ac to 89cae98 Compare June 8, 2026 16:01
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch 2 times, most recently from 7a16adb to fecf437 Compare June 9, 2026 13:33
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch 2 times, most recently from 98ef2c6 to 65d113c Compare June 9, 2026 15:09
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch 2 times, most recently from 5e2f819 to 68074fe Compare June 9, 2026 16:11
satween added 2 commits June 11, 2026 17:41
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
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-rum-session-wiring branch from cde192e to af31b3d Compare June 11, 2026 16:41
@satween
satween force-pushed the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch from 68074fe to 6e1f3b8 Compare June 11, 2026 16:41
@satween
satween marked this pull request as ready for review June 11, 2026 16:52
@satween
satween requested review from a team as code owners June 11, 2026 16:52

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +173 to +175
when {
expected.isString || actual.isString ->
assertThat(actual.asString).describedAs("String at %s", path).isEqualTo(expected.asString)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

0xnm
0xnm previously approved these changes Jun 12, 2026
Base automatically changed from tvaleev/feature/RUM-13949/timeseries-rum-session-wiring to feature/timeseries June 12, 2026 12:14
@satween
satween dismissed 0xnm’s stale review June 12, 2026 12:14

The base branch was changed.

@satween
satween requested a review from 0xnm June 12, 2026 12:28
@satween
satween merged commit 45037a1 into feature/timeseries Jun 12, 2026
26 checks passed
@satween
satween deleted the tvaleev/feature/RUM-13949/timeseries-e2e-csv-fixtures branch June 12, 2026 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants