Skip to content

Commit 050652d

Browse files
yoneymeta-codesync[bot]
authored andcommitted
Remove tests depends on immortal objects
Summary: Remove the ref leaks part of the test since they do not work after PEP 683 and 3.10 is not in the test matrix. Reviewed By: ahilger Differential Revision: D88215581 fbshipit-source-id: 4de5bfa6ac2bd1cd52992546f4e6dfad9261ef5e
1 parent 53b990e commit 050652d

File tree

1 file changed

+1
-124
lines changed

1 file changed

+1
-124
lines changed

third-party/thrift/src/thrift/lib/python/capi/test/test_marshal.py

Lines changed: 1 addition & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import math
1919
import unittest
20-
from sys import float_info, getrefcount
20+
from sys import float_info
2121
from typing import Callable
2222

2323
import thrift.python.types # noqa: F401
@@ -195,104 +195,59 @@ def test_iobuf_heap(self) -> None:
195195
class TestMarshalList(MarshalFixture):
196196
# Use the internal representation, which is tuple for lists
197197
def test_int32_list(self) -> None:
198-
# store refcounts of singletons for leak checks
199-
int_refcount = getrefcount(-1)
200-
empty_tuple_refcount = getrefcount(())
201-
202198
def make_list():
203199
return (0, -1, INT32_MIN, INT32_MAX)
204200

205201
self.assertEqual(make_list(), fixture.roundtrip_int32_list(make_list()))
206202
self.assertEqual((), fixture.roundtrip_int32_list(()))
207-
# no leaks!
208-
self.assertEqual(int_refcount, getrefcount(-1))
209-
self.assertEqual(empty_tuple_refcount, getrefcount(()))
210203

211204
def test_bool_list(self) -> None:
212-
# store refcounts of singletons for leak checks
213-
false_refcount = getrefcount(False)
214-
empty_tuple_refcount = getrefcount(())
215-
216205
def make_list():
217206
return (True, False, False, False, True, False)
218207

219208
self.assertEqual(make_list(), fixture.roundtrip_bool_list(make_list()))
220209
self.assertEqual((), fixture.roundtrip_bool_list(()))
221-
# no leaks!
222-
self.assertEqual(false_refcount, getrefcount(False))
223-
self.assertEqual(empty_tuple_refcount, getrefcount(()))
224210

225211
def test_double_list(self) -> None:
226-
# no float singletons afaik
227-
empty_tuple_refcount = getrefcount(())
228-
229212
def make_list():
230213
return (-1.0, 0.0, -float_info.max, float_info.max)
231214

232215
self.assertEqual(make_list(), fixture.roundtrip_double_list(make_list()))
233216
self.assertEqual((), fixture.roundtrip_double_list(()))
234-
# no leaks!
235-
self.assertEqual(empty_tuple_refcount, getrefcount(()))
236217

237218
def test_bytes_list(self) -> None:
238-
# empty bytes is a singleton like empty tuple
239-
empty_refcount = getrefcount(b"")
240-
empty_tuple_refcount = getrefcount(())
241-
242219
def make_list():
243220
return (b"", b"-1", b"wef2", b"\xe2\x82\xac")
244221

245222
self.assertEqual(make_list(), fixture.roundtrip_bytes_list(make_list()))
246223
self.assertEqual((), fixture.roundtrip_bytes_list(()))
247-
# no leaks!
248-
self.assertEqual(empty_refcount, getrefcount(b""))
249-
self.assertEqual(empty_tuple_refcount, getrefcount(()))
250224

251225
def test_unicode_list(self) -> None:
252-
# empty str is a singleton like empty tuple
253-
empty_refcount = getrefcount("")
254-
empty_tuple_refcount = getrefcount(())
255-
256226
def make_list():
257227
return ("", "-1", "€", "", b"\xe2\x82\xac".decode())
258228

259229
self.assertEqual(make_list(), fixture.roundtrip_unicode_list(make_list()))
260230
self.assertEqual((), fixture.roundtrip_unicode_list(()))
261-
# no leaks!
262-
self.assertEqual(empty_refcount, getrefcount(""))
263-
self.assertEqual(empty_tuple_refcount, getrefcount(()))
264231

265232
with self.assertRaises(UnicodeDecodeError):
266233
fixture.make_unicode_list((b"", b"", b"", b"", b"\xe2\x82"))
267-
# The empty str created before error are not leaked
268-
self.assertEqual(empty_refcount, getrefcount(""))
269234

270235

271236
class TestMarshalSet(MarshalFixture):
272237
# Use the internal representation, which is frozenset
273238
def test_int32_set(self) -> None:
274-
# store refcounts of singletons for leak checks
275-
int_refcount = getrefcount(-1)
276-
277239
def make_set():
278240
return frozenset({0, -1, INT32_MIN, INT32_MAX})
279241

280242
self.assertEqual(make_set(), fixture.roundtrip_int32_set(make_set()))
281243
self.assertEqual(frozenset(), fixture.roundtrip_int32_set(frozenset()))
282-
# no leaks!
283-
self.assertEqual(int_refcount, getrefcount(-1))
284244

285245
def test_bool_set(self) -> None:
286-
# store refcounts of singletons for leak checks
287-
false_refcount = getrefcount(False)
288-
289246
def make_set():
290247
return frozenset({True, False})
291248

292249
self.assertEqual(make_set(), fixture.roundtrip_bool_set(make_set()))
293250
self.assertEqual(frozenset(), fixture.roundtrip_bool_set(frozenset()))
294-
# no leaks!
295-
self.assertEqual(false_refcount, getrefcount(False))
296251

297252
def test_double_set(self) -> None:
298253
def make_set():
@@ -302,129 +257,61 @@ def make_set():
302257
self.assertEqual(frozenset(), fixture.roundtrip_double_set(frozenset()))
303258

304259
def test_bytes_set(self) -> None:
305-
# empty bytes is a singleton like empty tuple
306-
empty_refcount = getrefcount(b"")
307-
308260
def make_set():
309261
return frozenset({b"", b"-1", b"wef2", b"\xe2\x82\xac"})
310262

311263
self.assertEqual(make_set(), fixture.roundtrip_bytes_set(make_set()))
312264
self.assertEqual(frozenset(), fixture.roundtrip_bytes_set(frozenset()))
313-
# no leaks!
314-
self.assertEqual(empty_refcount, getrefcount(b""))
315265

316266
def test_unicode_set(self) -> None:
317-
# empty str is a singleton like empty tuple
318-
empty_refcount = getrefcount("")
319-
320267
def make_set():
321268
return frozenset({"", "-1", "€", b"\xe2\x82\xac".decode()})
322269

323270
self.assertEqual(make_set(), fixture.roundtrip_unicode_set(make_set()))
324271
self.assertEqual(frozenset(), fixture.roundtrip_unicode_set(frozenset()))
325-
# no leaks!
326-
self.assertEqual(empty_refcount, getrefcount(""))
327272

328273
with self.assertRaises(UnicodeDecodeError):
329274
fixture.make_unicode_set(frozenset((b"", b"a", b"c", b"e", b"\xe2\x82")))
330-
# The empty str created before error are not leaked
331-
self.assertEqual(empty_refcount, getrefcount(""))
332275

333276

334277
class TestMarshalMap(MarshalFixture):
335278
# Use the internal representation, which is tuple of (k, v) tuples.
336279
def test_int32_bool_map(self) -> None:
337-
# store refcounts of singletons for leak checks
338-
nil_refcount = getrefcount(0)
339-
int_refcount = getrefcount(-1)
340-
true_refcount = getrefcount(True)
341-
false_refcount = getrefcount(False)
342-
343280
def make_dict():
344281
return {x: x % 2 == 0 for x in [INT32_MIN, -1, 0, INT32_MAX]}
345282

346283
self.assertEqual(make_dict(), fixture.roundtrip_int32_bool_map(make_dict()))
347284
self.assertEqual({}, fixture.roundtrip_int32_bool_map({}))
348-
# no leaks!
349-
self.assertEqual(nil_refcount, getrefcount(0))
350-
self.assertEqual(int_refcount, getrefcount(-1))
351-
self.assertEqual(true_refcount, getrefcount(True))
352-
self.assertEqual(false_refcount, getrefcount(False))
353285

354286
def test_byte_float_map(self) -> None:
355-
# store refcounts of singletons for leak checks
356-
nil_refcount = getrefcount(0)
357-
int_refcount = getrefcount(-1)
358-
ace_refcount = getrefcount(1)
359-
360287
def make_dict():
361288
return {x: x / 13.0 for x in [INT8_MIN, -1, 0, 1, INT8_MAX]}
362289

363290
self.assertEqual(make_dict(), fixture.roundtrip_byte_float_map(make_dict()))
364291
self.assertEqual({}, fixture.roundtrip_byte_float_map({}))
365-
# no leaks!
366-
self.assertEqual(nil_refcount, getrefcount(0))
367-
self.assertEqual(int_refcount, getrefcount(-1))
368-
self.assertEqual(ace_refcount, getrefcount(1))
369292

370293
def test_bytes_key_map(self) -> None:
371-
# store refcounts of singletons for leak checks
372-
nil_refcount = getrefcount(0)
373-
int_refcount = getrefcount(-1)
374-
ace_refcount = getrefcount(1)
375-
376294
def make_dict():
377295
return {b"": -1, b"asdfwe": 0, b"wdfwe": 1}
378296

379297
self.assertEqual(make_dict(), fixture.roundtrip_bytes_key_map(make_dict()))
380298
self.assertEqual({}, fixture.roundtrip_bytes_key_map({}))
381299

382-
# no leaks!
383-
self.assertEqual(nil_refcount, getrefcount(0))
384-
self.assertEqual(int_refcount, getrefcount(-1))
385-
self.assertEqual(ace_refcount, getrefcount(1))
386-
387300
def test_bytes_val_map(self) -> None:
388-
# store refcounts of singletons for leak checks
389-
nil_refcount = getrefcount(0)
390-
int_refcount = getrefcount(-1)
391-
ace_refcount = getrefcount(1)
392-
393301
def make_dict():
394302
return {-1: b"", 0: b"asdfwe", 1: b"wdfwe"}
395303

396304
self.assertEqual(make_dict(), fixture.roundtrip_bytes_val_map(make_dict()))
397305
self.assertEqual({}, fixture.roundtrip_bytes_val_map({}))
398306

399-
# no leaks!
400-
self.assertEqual(nil_refcount, getrefcount(0))
401-
self.assertEqual(int_refcount, getrefcount(-1))
402-
self.assertEqual(ace_refcount, getrefcount(1))
403-
404307
def test_unicode_key_map(self) -> None:
405-
# store refcounts of singletons for leak checks
406-
nil_refcount = getrefcount(0)
407-
int_refcount = getrefcount(-1)
408-
ace_refcount = getrefcount(1)
409-
410308
def make_dict():
411309
return {"": -1, "asdfwe": 0, "wdfwe": 1}
412310

413311
self.assertEqual(make_dict(), fixture.roundtrip_unicode_key_map(make_dict()))
414312
self.assertEqual({}, fixture.roundtrip_unicode_key_map({}))
415313

416-
# no leaks!
417-
self.assertEqual(nil_refcount, getrefcount(0))
418-
self.assertEqual(int_refcount, getrefcount(-1))
419-
self.assertEqual(ace_refcount, getrefcount(1))
420-
421314
def test_unicode_val_map(self) -> None:
422-
# store refcounts of singletons for leak checks
423-
nil_refcount = getrefcount(0)
424-
int_refcount = getrefcount(-1)
425-
ace_refcount = getrefcount(1)
426-
empty_refcount = getrefcount("")
427-
428315
def make_dict():
429316
return {-1: "", 0: "asdfwe", 1: "wdfwe"}
430317

@@ -434,15 +321,5 @@ def make_dict():
434321
)
435322
self.assertEqual({}, fixture.roundtrip_unicode_val_map({}))
436323

437-
# no leaks!
438-
self.assertEqual(nil_refcount, getrefcount(0))
439-
self.assertEqual(int_refcount, getrefcount(-1))
440-
self.assertEqual(ace_refcount, getrefcount(1))
441-
442324
with self.assertRaises(UnicodeDecodeError):
443325
fixture.make_unicode_val_map({-1: b"", 0: b"a", 1: b"\xe2\x82"})
444-
445-
self.assertEqual(nil_refcount, getrefcount(0))
446-
self.assertEqual(int_refcount, getrefcount(-1))
447-
self.assertEqual(ace_refcount, getrefcount(1))
448-
self.assertEqual(empty_refcount, getrefcount(""))

0 commit comments

Comments
 (0)