@@ -2744,6 +2744,8 @@ def test_buffer_roundtrip() -> None:
27442744 write_int(b, 255)
27452745 write_int(b, -1)
27462746 write_int(b, -255)
2747+ write_int(b, 1234512344)
2748+ write_int(b, 1234512345)
27472749
27482750 b = Buffer(b.getvalue())
27492751 assert read_str(b) == "foo"
@@ -2761,12 +2763,38 @@ def test_buffer_roundtrip() -> None:
27612763 assert read_int(b) == 255
27622764 assert read_int(b) == -1
27632765 assert read_int(b) == -255
2766+ assert read_int(b) == 1234512344
2767+ assert read_int(b) == 1234512345
2768+
2769+ def test_buffer_int_size() -> None:
2770+ for i in (-10, -9, 0, 116, 117):
2771+ b = Buffer()
2772+ write_int(b, i)
2773+ assert len(b.getvalue()) == 1
2774+ b = Buffer(b.getvalue())
2775+ assert read_int(b) == i
2776+ for i in (-12345, -12344, -11, 118, 12344, 12345):
2777+ b = Buffer()
2778+ write_int(b, i)
2779+ assert len(b.getvalue()) <= 9 # sizeof(size_t) + 1
2780+ b = Buffer(b.getvalue())
2781+ assert read_int(b) == i
2782+
2783+ def test_buffer_str_size() -> None:
2784+ for s in ("", "a", "a" * 127):
2785+ b = Buffer()
2786+ write_str(b, s)
2787+ assert len(b.getvalue()) == len(s) + 1
2788+ b = Buffer(b.getvalue())
2789+ assert read_str(b) == s
27642790
27652791[file driver.py]
27662792from native import *
27672793
27682794test_buffer_basic()
27692795test_buffer_roundtrip()
2796+ test_buffer_int_size()
2797+ test_buffer_str_size()
27702798
27712799def test_buffer_basic_interpreted() -> None:
27722800 b = Buffer(b"foo")
@@ -2789,6 +2817,8 @@ def test_buffer_roundtrip_interpreted() -> None:
27892817 write_int(b, 255)
27902818 write_int(b, -1)
27912819 write_int(b, -255)
2820+ write_int(b, 1234512344)
2821+ write_int(b, 1234512345)
27922822
27932823 b = Buffer(b.getvalue())
27942824 assert read_str(b) == "foo"
@@ -2806,9 +2836,35 @@ def test_buffer_roundtrip_interpreted() -> None:
28062836 assert read_int(b) == 255
28072837 assert read_int(b) == -1
28082838 assert read_int(b) == -255
2839+ assert read_int(b) == 1234512344
2840+ assert read_int(b) == 1234512345
2841+
2842+ def test_buffer_int_size_interpreted() -> None:
2843+ for i in (-10, -9, 0, 116, 117):
2844+ b = Buffer()
2845+ write_int(b, i)
2846+ assert len(b.getvalue()) == 1
2847+ b = Buffer(b.getvalue())
2848+ assert read_int(b) == i
2849+ for i in (-12345, -12344, -11, 118, 12344, 12345):
2850+ b = Buffer()
2851+ write_int(b, i)
2852+ assert len(b.getvalue()) <= 9 # sizeof(size_t) + 1
2853+ b = Buffer(b.getvalue())
2854+ assert read_int(b) == i
2855+
2856+ def test_buffer_str_size_interpreted() -> None:
2857+ for s in ("", "a", "a" * 127):
2858+ b = Buffer()
2859+ write_str(b, s)
2860+ assert len(b.getvalue()) == len(s) + 1
2861+ b = Buffer(b.getvalue())
2862+ assert read_str(b) == s
28092863
28102864test_buffer_basic_interpreted()
28112865test_buffer_roundtrip_interpreted()
2866+ test_buffer_int_size_interpreted()
2867+ test_buffer_str_size_interpreted()
28122868
28132869[case testEnumMethodCalls]
28142870from enum import Enum
0 commit comments