Skip to content

Commit

Permalink
Remove custom default test for terse write [1/n]
Browse files Browse the repository at this point in the history
Summary: Remove from thrift/test/terse_write and java test

Reviewed By: yoney, rmakheja

Differential Revision: D69074226

fbshipit-source-id: 860e76c9f64b15075dcd6c64725812b952fbb5b8
  • Loading branch information
thedavekwon authored and facebook-github-bot committed Feb 4, 2025
1 parent b91569d commit 189bc7c
Show file tree
Hide file tree
Showing 8 changed files with 2 additions and 382 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -320,11 +320,9 @@ public void testAdaptedTerseStruct() {
assertEquals(IntrinsicDefaults.defaultLong(), received.getLongField());
assertEquals(IntrinsicDefaults.defaultByteArray(), received.getB1());
assertEquals(IntrinsicDefaults.defaultList(), received.getBinaryListField());
assertEquals(5000, received.getLongDefault());
assertEquals(null, received.isOptionalBooleanField());
assertEquals(null, received.getOptionalB1());
assertEquals(IntrinsicDefaults.defaultInt(), received.getIntField2());
assertEquals(3000, received.getIntDefault2());
assertEquals(IntrinsicDefaults.defaultInt(), received.getDoubleTypedefIntField());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,13 @@
import com.facebook.thrift.payload.ThriftSerializable;
import com.facebook.thrift.protocol.ByteBufTProtocol;
import com.facebook.thrift.test.terse.AdaptedTerseStruct;
import com.facebook.thrift.test.terse.EmptyStruct;
import com.facebook.thrift.test.terse.FieldLevelTerseStruct;
import com.facebook.thrift.test.terse.InnerTerseStruct;
import com.facebook.thrift.test.terse.MyEnum;
import com.facebook.thrift.test.terse.MyStruct;
import com.facebook.thrift.test.terse.PackageLevelTerseStruct;
import com.facebook.thrift.test.terse.StructLevelTerseStruct;
import com.facebook.thrift.test.terse.TerseException;
import com.facebook.thrift.test.terse.TerseStructWithCustomDefault;
import com.facebook.thrift.test.terse.TerseStructWithPrimitiveTypeAdapter;
import com.facebook.thrift.test.terse.TerseStructWithStructTypeAdapter;
import com.facebook.thrift.util.IntrinsicDefaults;
Expand Down Expand Up @@ -79,52 +77,6 @@ public void testStructLevelTerseStruct() {
assertNotNull(st.getInnerField());
}

@Test
public void testTerseStructWithCustomDefault() {
TerseStructWithCustomDefault st = new TerseStructWithCustomDefault.Builder().build();
assertEquals(true, st.isBoolField());
assertEquals(1, st.getByteField());
assertEquals(2, st.getShortField());
assertEquals(3, st.getIntField());
assertEquals(4, st.getLongField());
assertEquals(5.0f, st.getFloatField(), 0);
assertEquals(6.0d, st.getDoubleField(), 0);
assertEquals("7", st.getStringField());
assertArrayEquals(new byte[] {56}, st.getBinaryField());
assertEquals(MyEnum.ME1, st.getEnumField());
assertEquals(1, (short) st.getListField().get(0));
assertEquals(1, st.getSetField().iterator().next().intValue());
assertEquals(1, st.getMapField().size());
assertEquals(1, (short) st.getMapField().get((short) 1));
assertEquals("5000", st.getAdaptedIntField());
assertEquals((Long) 6000L, (Long) st.getDoubleAdaptedIntField());
assertNotNull(st.getStructField());
}

@Test
public void testTerseStructWithCustomDefaultDeserialized() {
ByteBufTProtocol protocol = serialize(new EmptyStruct.Builder().build());
// create from an empty struct
TerseStructWithCustomDefault st = TerseStructWithCustomDefault.read0(protocol);

assertEquals(IntrinsicDefaults.defaultBoolean(), st.isBoolField());
assertEquals(IntrinsicDefaults.defaultByte(), st.getByteField());
assertEquals(IntrinsicDefaults.defaultShort(), st.getShortField());
assertEquals(IntrinsicDefaults.defaultInt(), st.getIntField());
assertEquals(IntrinsicDefaults.defaultLong(), st.getLongField());
assertEquals(IntrinsicDefaults.defaultFloat(), st.getFloatField(), 0);
assertEquals(IntrinsicDefaults.defaultDouble(), st.getDoubleField(), 0);
assertEquals(IntrinsicDefaults.defaultString(), st.getStringField());
assertArrayEquals(IntrinsicDefaults.defaultByteArray(), st.getBinaryField());
assertEquals(MyEnum.ME0, st.getEnumField());
assertEquals(IntrinsicDefaults.defaultList(), st.getListField());
assertEquals(IntrinsicDefaults.defaultSet(), st.getSetField());
assertEquals(IntrinsicDefaults.defaultMap(), st.getMapField());
assertEquals("0", st.getAdaptedIntField());
assertEquals((Long) IntrinsicDefaults.defaultLong(), (Long) st.getDoubleAdaptedIntField());
assertNotNull(st.getStructField());
}

@Test
public void testFieldLevelTerseStruct() {
FieldLevelTerseStruct st = new FieldLevelTerseStruct.Builder().build();
Expand Down Expand Up @@ -249,11 +201,9 @@ public void testAdaptedTerseStruct() {
assertEquals("0", st.getAdaptedLongField());
assertEquals(IntrinsicDefaults.defaultByteBuf(), st.getB1());
assertEquals("", st.getAdaptedBinaryListField());
assertEquals("5000", st.getAdaptedLongDefault());
assertEquals(null, st.isOptionalAdaptedBooleanField());
assertEquals(null, st.getOptionalB1());
assertEquals((Long) 0L, (Long) st.getDoubleAdaptedIntField());
assertEquals((Long) 3000L, (Long) st.getDoubleAdaptedIntDefault());
assertEquals("0", st.getDoubleTypedefAdaptedIntField());
}
}
34 changes: 0 additions & 34 deletions third-party/thrift/src/thrift/lib/java/test-if/terse_write.thrift
Original file line number Diff line number Diff line change
Expand Up @@ -184,30 +184,6 @@ struct FieldLevelTerseStruct {
34: MyUnion union_field;
}

@thrift.TerseWrite
struct TerseStructWithCustomDefault {
1: bool bool_field = true;
2: byte byte_field = 1;
3: i16 short_field = 2;
4: i32 int_field = 3;
5: i64 long_field = 4;
6: float float_field = 5.0;
7: double double_field = 6.0;
8: string string_field = "7";
9: binary binary_field = "8";
10: MyEnum enum_field = MyEnum.ME1;
11: list<i16> list_field = [1];
12: set<i16> set_field = [1];
13: map<i16, i16> map_field = {1: 1};
14: MyStructWithCustomDefault struct_field;
15: adaptedInt adaptedInt_field = 5000;
@java.Adapter{
adapterClassName = "com.facebook.thrift.adapter.test.StringToLongTypeAdapter",
typeClassName = "java.lang.Long",
}
16: adaptedInt doubleAdaptedInt_field = 6000;
}

@thrift.TerseWrite
struct TerseStructSingleField {
1: i32 int_field;
Expand Down Expand Up @@ -255,15 +231,12 @@ struct TestV0 {
1: bool boolean_field;
2: byte byte_field;
3: i16 short_field;
4: i32 int_field = 5;
}

struct TestV1 {
1: bool boolean_field;
2: byte byte_field;
3: i16 short_field;
@thrift.TerseWrite
4: i32 int_field = 5;
}

@java.Adapter{
Expand Down Expand Up @@ -313,19 +286,13 @@ struct AdaptedTerseStruct {
5: adaptedLong adaptedLong_field;
10: SlicedByteBuf b1;
21: adaptedBinaryList adaptedBinaryList_field;
55: adaptedLong adaptedLong_default = 5000;
101: optional adaptedBoolean optionalAdaptedBoolean_field;
102: optional SlicedByteBuf optional_b1;
@java.Adapter{
adapterClassName = "com.facebook.thrift.adapter.test.StringToLongTypeAdapter",
typeClassName = "java.lang.Long",
}
204: adaptedInt doubleAdaptedInt_field;
@java.Adapter{
adapterClassName = "com.facebook.thrift.adapter.test.StringToLongTypeAdapter",
typeClassName = "java.lang.Long",
}
205: adaptedInt doubleAdaptedInt_default = 3000;
206: doubleTypedefInt doubleTypedefAdaptedInt_field;
}

Expand All @@ -337,7 +304,6 @@ struct TerseStruct {
5: i64 long_field;
10: binary b1;
21: list<binary> binaryList_field;
55: i64 long_default = 5000;
101: optional bool optionalBoolean_field;
102: optional binary optional_b1;
204: i32 int_field2;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
FieldLevelTerseStruct,
MyEnum,
MyStruct,
MyStructWithCustomDefault,
TerseStructWithCustomDefault,
)
from testing.thrift_types import easy as python_easy, hard as python_hard
from testing.types import (
Expand Down Expand Up @@ -392,31 +390,6 @@ def test_field_level_terse_write(self) -> None:
encoded_empty = serialize(empty, protocol=proto)
self.assertEqual(encoded, encoded_empty)

# Since empty serializd binary is deserialized, all terse fields should equal
# to the intrinsic default.
def test_terse_struct_with_custom_default(self) -> None:
empty = EmptyStruct()
for proto in Protocol:
encoded_empty = serialize(empty, protocol=proto)
decoded, length = deserialize_with_length(
TerseStructWithCustomDefault, encoded_empty, protocol=proto
)
self.assertIsInstance(decoded, TerseStructWithCustomDefault)
self.assertEqual(decoded.bool_field, False)
self.assertEqual(decoded.byte_field, 0)
self.assertEqual(decoded.short_field, 0)
self.assertEqual(decoded.int_field, 0)
self.assertEqual(decoded.long_field, 0)
self.assertEqual(decoded.float_field, 0.0)
self.assertEqual(decoded.double_field, 0.0)
self.assertEqual(decoded.string_field, "")
self.assertEqual(decoded.binary_field, b"")
self.assertEqual(decoded.enum_field, MyEnum.ME0)
self.assertEqual(decoded.list_field, [])
self.assertEqual(decoded.set_field, set())
self.assertEqual(decoded.map_field, {})
self.assertEqual(decoded.struct_field, MyStructWithCustomDefault(field1=0))


class SerializerForwardCompat(SerializerTestBase):
def test_with_header(self) -> None:
Expand Down
35 changes: 0 additions & 35 deletions third-party/thrift/src/thrift/lib/python/test/serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,12 @@
FieldLevelTerseStruct,
MyEnum,
MyStruct,
MyStructWithCustomDefault,
MyUnion,
TerseSafePatch,
TerseStructs,
TerseStructs1,
TerseStructs2,
TerseStructs3,
TerseStructWithCustomDefault,
)
from folly.iobuf import IOBuf

Expand Down Expand Up @@ -527,13 +525,7 @@ def setUp(self) -> None:
# pyre-ignore[16]: has no attribute `test_types`
self.test_types.FieldLevelTerseStruct
)
self.TerseStructWithCustomDefault: Type[TerseStructWithCustomDefault] = (
self.test_types.TerseStructWithCustomDefault
)
self.MyStruct: Type[MyStruct] = self.test_types.MyStruct
self.MyStructWithCustomDefault: Type[MyStructWithCustomDefault] = (
self.test_types.MyStructWithCustomDefault
)
self.MyUnion: Type[MyUnion] = self.test_types.MyUnion
self.EmptyStruct: Type[EmptyStruct] = self.test_types.EmptyStruct
self.MyEnum: Type[MyEnum] = self.test_types.MyEnum
Expand Down Expand Up @@ -602,33 +594,6 @@ def test_field_level_terse_write(self) -> None:
encoded_empty = self.serializer.serialize(empty, protocol=proto)
self.assertEqual(encoded, encoded_empty)

# Since empty serializd binary is deserialized, all terse fields should equal
# to their intrinsic default values.
def test_terse_struct_with_custom_default(self) -> None:
empty = self.EmptyStruct()
for proto in Protocol:
encoded_empty = self.serializer.serialize(empty, protocol=proto)
decoded, length = self.serializer.deserialize_with_length(
self.TerseStructWithCustomDefault, encoded_empty, protocol=proto
)
self.assertIsInstance(decoded, self.TerseStructWithCustomDefault)
self.assertEqual(decoded.bool_field, False)
self.assertEqual(decoded.byte_field, 0)
self.assertEqual(decoded.short_field, 0)
self.assertEqual(decoded.int_field, 0)
self.assertEqual(decoded.long_field, 0)
self.assertEqual(decoded.float_field, 0.0)
self.assertEqual(decoded.double_field, 0.0)
self.assertEqual(decoded.string_field, "")
self.assertEqual(decoded.binary_field, b"")
self.assertEqual(decoded.enum_field, self.MyEnum.ME0)
self.assertEqual(decoded.list_field, [])
self.assertEqual(decoded.set_field, set())
self.assertEqual(decoded.map_field, {})
self.assertEqual(
decoded.struct_field, self.MyStructWithCustomDefault(field1=0)
)

def test_terse_structs_optimization(self) -> None:
# empty
empty = self.EmptyStruct()
Expand Down
Loading

0 comments on commit 189bc7c

Please sign in to comment.