-
Notifications
You must be signed in to change notification settings - Fork 840
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
Fix repeated string serialization for JSON. #6888
Fix repeated string serialization for JSON. #6888
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #6888 +/- ##
============================================
- Coverage 90.26% 90.23% -0.03%
- Complexity 6586 6594 +8
============================================
Files 729 729
Lines 19767 19800 +33
Branches 1944 1947 +3
============================================
+ Hits 17842 17867 +25
- Misses 1334 1341 +7
- Partials 591 592 +1 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
cc @jhalliday |
b6d8daf
to
b9176bf
Compare
@@ -304,6 +304,8 @@ private static Profile.Builder sampleProfileBuilder() { | |||
.AGGREGATION_TEMPORALITY_CUMULATIVE) | |||
.build()) | |||
.addAllComment(listOf(8L, 9L)) | |||
.addStringTable("foo") | |||
.addStringTable("bar") |
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.
This adds test coverage for the binary encoding. Making this change on main
causes tests to fail, but the tests pass on this branch, indicating your fix is successful.
Fixes an issue where repeated strings would serialize as the same JSON field multiple times (the same encoding used in binary proto).
This is because in JSON string is a primitive, but not in binary Protocol buffers.
E.g. instead of
stringTable: ["one", "two"],
, we'd getstringTable: "one", stringTable: "two"
.serializeRepeatedString
abstract method which can appropriately handled string arrays in JSON.sizeRepatedString
for solidarity with other methods.For maintainers - This code relies on existing protobuf tests. If you'd like to see the serialization primitives start to have test cases, I'd have to build up a test suite for them but happy to do so.