Skip to content

Commit e029931

Browse files
committed
Skip canary byte tests on release build
1 parent e14b81c commit e029931

1 file changed

Lines changed: 44 additions & 39 deletions

File tree

‎Lib/test/test_capi/test_bytes.py‎

Lines changed: 44 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -431,25 +431,6 @@ def test_resize(self):
431431
writer.resize(len(b'number=123')) # noop
432432
self.assertEqual(writer.finish(), b'number=123')
433433

434-
CANARY_BYTE = self.CANARY_BYTE
435-
for size in (self.SMALL_BUFFER, self.LARGE_BUFFER):
436-
with self.subTest(size=size):
437-
# Truncate the last byte
438-
data = b'x' * size
439-
writer = self.create_writer(size)
440-
writer.write(0, data)
441-
self.assertEqual(get_data_canary(writer), data + CANARY_BYTE)
442-
writer.resize(size - 1)
443-
self.assertEqual(get_data_canary(writer), data[:-1] + CANARY_BYTE)
444-
self.assertEqual(writer.finish(), data[:-1])
445-
446-
# Make the buffer empty
447-
writer = self.create_writer(size)
448-
writer.write(0, data)
449-
writer.resize(0)
450-
self.assertEqual(writer.get_data(), b'')
451-
self.assertEqual(writer.finish(), b'')
452-
453434
# Switch from small buffer to large buffer
454435
writer = self.create_writer()
455436
small, large = self.SMALL_BUFFER, self.LARGE_BUFFER
@@ -471,6 +452,27 @@ def test_resize(self):
471452
writer.resize(_testcapi.PY_SSIZE_T_MAX)
472453
self.assertEqual(writer.finish(), b'x' * size)
473454

455+
@unittest.skipUnless(support.Py_DEBUG, 'need debug build')
456+
def test_resize_canary(self):
457+
CANARY_BYTE = self.CANARY_BYTE
458+
for size in (self.SMALL_BUFFER, self.LARGE_BUFFER):
459+
with self.subTest(size=size):
460+
# Truncate the last byte
461+
data = b'x' * size
462+
writer = self.create_writer(size)
463+
writer.write(0, data)
464+
self.assertEqual(get_data_canary(writer), data + CANARY_BYTE)
465+
writer.resize(size - 1)
466+
self.assertEqual(get_data_canary(writer), data[:-1] + CANARY_BYTE)
467+
self.assertEqual(writer.finish(), data[:-1])
468+
469+
# Make the buffer empty
470+
writer = self.create_writer(size)
471+
writer.write(0, data)
472+
writer.resize(0)
473+
self.assertEqual(writer.get_data(), b'')
474+
self.assertEqual(writer.finish(), b'')
475+
474476
def test_grow(self):
475477
# Test PyBytesWriter_Grow()
476478
writer = self.create_writer(0)
@@ -489,25 +491,6 @@ def test_grow(self):
489491
writer.grow(0) # noop
490492
self.assertEqual(writer.finish(), b'number=123')
491493

492-
CANARY_BYTE = self.CANARY_BYTE
493-
for size in (self.SMALL_BUFFER, self.LARGE_BUFFER):
494-
with self.subTest(size=size):
495-
# Truncate the last byte
496-
data = b'x' * size
497-
writer = self.create_writer(size)
498-
writer.write(0, data)
499-
self.assertEqual(get_data_canary(writer), data + CANARY_BYTE)
500-
writer.grow(-1)
501-
self.assertEqual(get_data_canary(writer), data[:-1] + CANARY_BYTE)
502-
self.assertEqual(writer.finish(), data[:-1])
503-
504-
# Make the buffer empty
505-
writer = self.create_writer(size)
506-
writer.write(0, data)
507-
writer.grow(-size)
508-
self.assertEqual(writer.get_data(), b'')
509-
self.assertEqual(writer.finish(), b'')
510-
511494
# Switch from small buffer to large buffer
512495
writer = self.create_writer()
513496
small, large = self.SMALL_BUFFER, self.LARGE_BUFFER
@@ -529,6 +512,28 @@ def test_grow(self):
529512
writer.grow(_testcapi.PY_SSIZE_T_MAX)
530513
self.assertEqual(writer.finish(), b'x' * size)
531514

515+
@unittest.skipUnless(support.Py_DEBUG, 'need debug build')
516+
def test_grow_canary(self):
517+
CANARY_BYTE = self.CANARY_BYTE
518+
for size in (self.SMALL_BUFFER, self.LARGE_BUFFER):
519+
with self.subTest(size=size):
520+
# Truncate the last byte
521+
data = b'x' * size
522+
writer = self.create_writer(size)
523+
writer.write(0, data)
524+
self.assertEqual(get_data_canary(writer), data + CANARY_BYTE)
525+
writer.grow(-1)
526+
self.assertEqual(get_data_canary(writer), data[:-1] + CANARY_BYTE)
527+
self.assertEqual(writer.finish(), data[:-1])
528+
529+
# Make the buffer empty
530+
writer = self.create_writer(size)
531+
writer.write(0, data)
532+
writer.grow(-size)
533+
self.assertEqual(writer.get_data(), b'')
534+
self.assertEqual(writer.finish(), b'')
535+
536+
532537
@support.nomemtest
533538
def test_resize_error(self):
534539
# Test PyBytesWriter_Resize() error
@@ -587,7 +592,7 @@ def test_canary_byte(self):
587592
self.assertIn(f'at position {size}'.encode(),
588593
proc.err)
589594

590-
@unittest.skipUnless(support.Py_DEBUG, 'need Py_DEBUG')
595+
@unittest.skipUnless(support.Py_DEBUG, 'need debug build')
591596
def test_get_data_canary(self):
592597
# Test PyBytesWriter_GetData()
593598
NEW_BYTE = self.NEW_BYTE

0 commit comments

Comments
 (0)