Skip to content

Commit 86b77dd

Browse files
committed
e2e test segfault handling
1 parent b7a81a9 commit 86b77dd

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

e2e_projects/my_lib/src/my_lib/__init__.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from collections.abc import Callable
22
from functools import cache
33
from typing import Union
4+
import ctypes
45

56

67
def hello() -> str:
@@ -88,4 +89,9 @@ def coords(self):
8889

8990
def escape_sequences():
9091
return "foo" \
91-
"FOO\\\'\"\a\b\f\n\r\t\v\111\x10\N{ghost}\u1234\U0001F51F"
92+
"FOO\\\'\"\a\b\f\n\r\t\v\111\x10\N{ghost}\u1234\U0001F51F"
93+
94+
def create_a_segfault_when_mutated():
95+
# when we mutate False->True, then this will segfault
96+
if False:
97+
ctypes.string_at(0)

e2e_projects/my_lib/tests/test_my_lib.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from my_lib import hello, Point, badly_tested, make_greeter, fibonacci, cached_fibonacci, escape_sequences, simple_consumer, async_consumer
1+
from my_lib import hello, Point, badly_tested, make_greeter, fibonacci, cached_fibonacci, escape_sequences, simple_consumer, async_consumer, create_a_segfault_when_mutated
22
import pytest
33

44
"""These tests are flawed on purpose, some mutants survive and some are killed."""
@@ -45,3 +45,5 @@ async def test_async_consumer():
4545
result = await async_consumer()
4646
assert result == list(range(10))
4747

48+
def test_handles_segfaults():
49+
create_a_segfault_when_mutated()

tests/e2e/snapshots/my_lib.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@
6161
"my_lib.x_escape_sequences__mutmut_2": 0,
6262
"my_lib.x_escape_sequences__mutmut_3": 1,
6363
"my_lib.x_escape_sequences__mutmut_4": 0,
64-
"my_lib.x_escape_sequences__mutmut_5": 0
64+
"my_lib.x_escape_sequences__mutmut_5": 0,
65+
"my_lib.x_create_a_segfault_when_mutated__mutmut_1": -11,
66+
"my_lib.x_create_a_segfault_when_mutated__mutmut_2": 0,
67+
"my_lib.x_create_a_segfault_when_mutated__mutmut_3": 0
6568
}
6669
}

0 commit comments

Comments
 (0)