Skip to content

Commit e66e58f

Browse files
committed
Merge pull request #47 from The-Compiler/segfault-fix
Segfault fix
2 parents 609239c + 191c596 commit e66e58f

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

pytestqt/_tests/test_wait_signal.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def context_manager_wait(qtbot, signal, timeout):
4646
(context_manager_wait, 500, None, True),
4747
(explicit_wait, 2000, 500, False),
4848
(context_manager_wait, 2000, 500, False),
49-
]
49+
] * 2 # Running all tests twice to catch a QTimer segfault, see #42/#43.
5050
)
5151
def test_signal_triggered(qtbot, wait_function, emit_delay, timeout,
5252
expected_signal_triggered):
@@ -55,7 +55,10 @@ def test_signal_triggered(qtbot, wait_function, emit_delay, timeout,
5555
the expected results.
5656
"""
5757
signaller = Signaller()
58-
QtCore.QTimer.singleShot(emit_delay, signaller.signal.emit)
58+
timer = QtCore.QTimer()
59+
timer.setSingleShot(True)
60+
timer.timeout.connect(signaller.signal.emit)
61+
timer.start(emit_delay)
5962

6063
# block signal until either signal is emitted or timeout is reached
6164
start_time = time.time()
@@ -83,4 +86,4 @@ def test_explicit_emit(qtbot):
8386
with qtbot.waitSignal(signaller.signal, timeout=5000) as waiting:
8487
signaller.signal.emit()
8588

86-
assert waiting.signal_triggered
89+
assert waiting.signal_triggered

0 commit comments

Comments
 (0)