Skip to content

Commit 7174e2f

Browse files
committed
ci: Fix flaky float printing
Signed-off-by: Johannes Zottele <[email protected]>
1 parent b800523 commit 7174e2f

File tree

4 files changed

+18
-23
lines changed

4 files changed

+18
-23
lines changed

.github/workflows/protobuf-conformance.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ jobs:
2222
- name: Check if protobuf-conformance test is up-to-date
2323
run: |
2424
if [[ -n "$(git status --porcelain | grep tests/protobuf-conformance/)" ]]; then
25-
git diff -- tests/protobuf-conformance/ || true
2625
echo "Protobuf conformance test is not up to date. Please run './gradlew tests:protobuf-conformance:bufGenerateMain' and commit changes"
2726
exit 1
2827
fi

protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -933,22 +933,18 @@ class ModelToProtobufKotlinCommonGenerator(
933933
java.lang.Long.toUnsignedString(value) + "uL"
934934
}
935935

936-
value is Float -> {
937-
when (value.toString()) {
938-
"Infinity" -> "Float.POSITIVE_INFINITY"
939-
"-Infinity" -> "Float.NEGATIVE_INFINITY"
940-
"NaN" -> "Float.NaN"
941-
else -> value.toString() + "f"
942-
}
936+
value is Float -> when {
937+
value.isNaN() -> "Float.NaN"
938+
value == Float.POSITIVE_INFINITY -> "Float.POSITIVE_INFINITY"
939+
value == Float.NEGATIVE_INFINITY -> "Float.NEGATIVE_INFINITY"
940+
else -> "Float.fromBits(0x%08X)".format(java.lang.Float.floatToRawIntBits(value))
943941
}
944942

945-
value is Double -> {
946-
when (value.toString()) {
947-
"Infinity" -> "Double.POSITIVE_INFINITY"
948-
"-Infinity" -> "Double.NEGATIVE_INFINITY"
949-
"NaN" -> "Double.NaN"
950-
else -> value.toString()
951-
}
943+
value is Double -> when {
944+
value.isNaN() -> "Double.NaN"
945+
value == Double.POSITIVE_INFINITY -> "Double.POSITIVE_INFINITY"
946+
value == Double.NEGATIVE_INFINITY -> "Double.NEGATIVE_INFINITY"
947+
else -> "Double.fromBits(0x%016XL)".format(java.lang.Double.doubleToRawLongBits(value))
952948
}
953949

954950
else -> {

tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro
178178
override var defaultFixed64: ULong by MsgFieldDelegate(PresenceIndices.defaultFixed64) { 10123456789123456789uL }
179179
override var defaultSfixed32: Int by MsgFieldDelegate(PresenceIndices.defaultSfixed32) { -123456789 }
180180
override var defaultSfixed64: Long by MsgFieldDelegate(PresenceIndices.defaultSfixed64) { -9123456789123456789L }
181-
override var defaultFloat: Float by MsgFieldDelegate(PresenceIndices.defaultFloat) { 9.0E9f }
182-
override var defaultDouble: Double by MsgFieldDelegate(PresenceIndices.defaultDouble) { 7.0E22 }
181+
override var defaultFloat: Float by MsgFieldDelegate(PresenceIndices.defaultFloat) { Float.fromBits(0x50061C46) }
182+
override var defaultDouble: Double by MsgFieldDelegate(PresenceIndices.defaultDouble) { Double.fromBits(0x44ADA56A4B0835C0L) }
183183
override var defaultBool: Boolean by MsgFieldDelegate(PresenceIndices.defaultBool) { true }
184184
override var defaultString: String by MsgFieldDelegate(PresenceIndices.defaultString) { "Rosebud" }
185185
override var defaultBytes: ByteArray by MsgFieldDelegate(PresenceIndices.defaultBytes) { BytesDefaults.defaultBytes }
@@ -1148,8 +1148,8 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit
11481148
override var defaultFixed64: ULong by MsgFieldDelegate(PresenceIndices.defaultFixed64) { 10123456789123456789uL }
11491149
override var defaultSfixed32: Int by MsgFieldDelegate(PresenceIndices.defaultSfixed32) { -123456789 }
11501150
override var defaultSfixed64: Long by MsgFieldDelegate(PresenceIndices.defaultSfixed64) { -9123456789123456789L }
1151-
override var defaultFloat: Float by MsgFieldDelegate(PresenceIndices.defaultFloat) { 9.0E9f }
1152-
override var defaultDouble: Double by MsgFieldDelegate(PresenceIndices.defaultDouble) { 7.0E22 }
1151+
override var defaultFloat: Float by MsgFieldDelegate(PresenceIndices.defaultFloat) { Float.fromBits(0x50061C46) }
1152+
override var defaultDouble: Double by MsgFieldDelegate(PresenceIndices.defaultDouble) { Double.fromBits(0x44ADA56A4B0835C0L) }
11531153
override var defaultBool: Boolean by MsgFieldDelegate(PresenceIndices.defaultBool) { true }
11541154
override var defaultString: String by MsgFieldDelegate(PresenceIndices.defaultString) { "Rosebud" }
11551155
override var defaultBytes: ByteArray by MsgFieldDelegate(PresenceIndices.defaultBytes) { BytesDefaults.defaultBytes }

tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA
178178
override var defaultFixed64: ULong by MsgFieldDelegate(PresenceIndices.defaultFixed64) { 10123456789123456789uL }
179179
override var defaultSfixed32: Int by MsgFieldDelegate(PresenceIndices.defaultSfixed32) { -123456789 }
180180
override var defaultSfixed64: Long by MsgFieldDelegate(PresenceIndices.defaultSfixed64) { -9123456789123456789L }
181-
override var defaultFloat: Float by MsgFieldDelegate(PresenceIndices.defaultFloat) { 9.0E9f }
182-
override var defaultDouble: Double by MsgFieldDelegate(PresenceIndices.defaultDouble) { 7.0E22 }
181+
override var defaultFloat: Float by MsgFieldDelegate(PresenceIndices.defaultFloat) { Float.fromBits(0x50061C46) }
182+
override var defaultDouble: Double by MsgFieldDelegate(PresenceIndices.defaultDouble) { Double.fromBits(0x44ADA56A4B0835C0L) }
183183
override var defaultBool: Boolean by MsgFieldDelegate(PresenceIndices.defaultBool) { true }
184184
override var defaultString: String by MsgFieldDelegate(PresenceIndices.defaultString) { "Rosebud" }
185185
override var defaultBytes: ByteArray by MsgFieldDelegate(PresenceIndices.defaultBytes) { BytesDefaults.defaultBytes }
@@ -1148,8 +1148,8 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot
11481148
override var defaultFixed64: ULong by MsgFieldDelegate(PresenceIndices.defaultFixed64) { 10123456789123456789uL }
11491149
override var defaultSfixed32: Int by MsgFieldDelegate(PresenceIndices.defaultSfixed32) { -123456789 }
11501150
override var defaultSfixed64: Long by MsgFieldDelegate(PresenceIndices.defaultSfixed64) { -9123456789123456789L }
1151-
override var defaultFloat: Float by MsgFieldDelegate(PresenceIndices.defaultFloat) { 9.0E9f }
1152-
override var defaultDouble: Double by MsgFieldDelegate(PresenceIndices.defaultDouble) { 7.0E22 }
1151+
override var defaultFloat: Float by MsgFieldDelegate(PresenceIndices.defaultFloat) { Float.fromBits(0x50061C46) }
1152+
override var defaultDouble: Double by MsgFieldDelegate(PresenceIndices.defaultDouble) { Double.fromBits(0x44ADA56A4B0835C0L) }
11531153
override var defaultBool: Boolean by MsgFieldDelegate(PresenceIndices.defaultBool) { true }
11541154
override var defaultString: String by MsgFieldDelegate(PresenceIndices.defaultString) { "Rosebud" }
11551155
override var defaultBytes: ByteArray by MsgFieldDelegate(PresenceIndices.defaultBytes) { BytesDefaults.defaultBytes }

0 commit comments

Comments
 (0)