diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-10-05 14:51:36 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-10-06 12:18:46 +0200 |
commit | 93e90f07f207b75332f8b64a37c80f1fa5f87db0 (patch) | |
tree | c097705db105cf4a918accf1645ad125caafce0d /tests | |
parent | 3c7434025c5e14c2b3027a13ce90aab49712156c (diff) |
Fix tst_qmediacapturesession on macOS
Fix the remaining test failures on macOS:
Increase timeouts in tests, as those often caused failures.
Fix a couple of behaviors in the platform specific code, to
ensure we handle errors correctly.
Pick-to: 6.2
Change-Id: Ib1a0949f5e65a0fb3d0b89a5508631d1faa7cf1e
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/integration/qmediacapturesession/tst_qmediacapturesession.cpp | 50 |
1 files changed, 41 insertions, 9 deletions
diff --git a/tests/auto/integration/qmediacapturesession/tst_qmediacapturesession.cpp b/tests/auto/integration/qmediacapturesession/tst_qmediacapturesession.cpp index 76a69b205..fec6a3729 100644 --- a/tests/auto/integration/qmediacapturesession/tst_qmediacapturesession.cpp +++ b/tests/auto/integration/qmediacapturesession/tst_qmediacapturesession.cpp @@ -65,6 +65,8 @@ class tst_QMediaCaptureSession: public QObject private slots: void stress_test_setup_and_teardown(); + void record_video_without_preview(); + void can_add_and_remove_AudioInput_with_and_without_AudioOutput_attached(); void can_change_AudioDevices_on_attached_AudioInput(); void can_change_AudioInput_during_recording(); @@ -110,7 +112,7 @@ void tst_QMediaCaptureSession::recordOk(QMediaCaptureSession &session) recorder.record(); QTRY_VERIFY_WITH_TIMEOUT(recorder.recorderState() == QMediaRecorder::RecordingState, 2000); - QVERIFY(durationChanged.wait(1000)); + QVERIFY(durationChanged.wait(2000)); recorder.stop(); QTRY_VERIFY_WITH_TIMEOUT(recorder.recorderState() == QMediaRecorder::StoppedState, 2000); @@ -130,8 +132,8 @@ void tst_QMediaCaptureSession::recordFail(QMediaCaptureSession &session) session.setRecorder(&recorder); recorder.record(); - QTRY_VERIFY_WITH_TIMEOUT(recorderErrorSignal.count() == 1, 1000); - QTRY_VERIFY_WITH_TIMEOUT(recorder.recorderState() == QMediaRecorder::StoppedState, 1000); + QTRY_VERIFY_WITH_TIMEOUT(recorderErrorSignal.count() == 1, 2000); + QTRY_VERIFY_WITH_TIMEOUT(recorder.recorderState() == QMediaRecorder::StoppedState, 2000); } void tst_QMediaCaptureSession::stress_test_setup_and_teardown() @@ -155,6 +157,35 @@ void tst_QMediaCaptureSession::stress_test_setup_and_teardown() } } +void tst_QMediaCaptureSession::record_video_without_preview() +{ + QCamera camera; + + if (!camera.isAvailable()) + QSKIP("No video input is available"); + + QMediaRecorder recorder; + QMediaCaptureSession session; + + session.setRecorder(&recorder); + + QSignalSpy cameraChanged(&session, SIGNAL(cameraChanged())); + + session.setCamera(&camera); + camera.setActive(true); + QTRY_COMPARE(cameraChanged.count(), 1); + + recordOk(session); + QVERIFY(!QTest::currentTestFailed()); + + session.setCamera(nullptr); + QTRY_COMPARE(cameraChanged.count(), 2); + + // can't record without audio and video + recordFail(session); + QVERIFY(!QTest::currentTestFailed()); +} + void tst_QMediaCaptureSession::can_add_and_remove_AudioInput_with_and_without_AudioOutput_attached() { QAudioInput input; @@ -238,7 +269,7 @@ void tst_QMediaCaptureSession::can_change_AudioInput_during_recording() recorder.record(); QTRY_VERIFY(recorder.recorderState() == QMediaRecorder::RecordingState); - QVERIFY(durationChanged.wait(1000)); + QVERIFY(durationChanged.wait(2000)); session.setAudioInput(nullptr); QTRY_COMPARE(audioInputChanged.count(), 2); session.setAudioInput(&input); @@ -377,8 +408,8 @@ void tst_QMediaCaptureSession::can_add_and_remove_Camera() QSignalSpy cameraChanged(&session, SIGNAL(cameraChanged())); - camera.setActive(true); session.setCamera(&camera); + camera.setActive(true); QTRY_COMPARE(cameraChanged.count(), 1); session.setCamera(nullptr); @@ -443,9 +474,10 @@ void tst_QMediaCaptureSession::can_disconnect_Camera_when_recording() session.setCamera(&camera); QTRY_COMPARE(cameraChanged.count(), 1); + durationChanged.clear(); recorder.record(); QTRY_VERIFY(recorder.recorderState() == QMediaRecorder::RecordingState); - QVERIFY(durationChanged.wait(1000)); + QTRY_VERIFY(durationChanged.count() > 0); session.setCamera(nullptr); QTRY_COMPARE(cameraChanged.count(), 2); @@ -587,7 +619,7 @@ void tst_QMediaCaptureSession::can_change_VideoOutput_when_recording() recorder.record(); QTRY_VERIFY(recorder.recorderState() == QMediaRecorder::RecordingState); - QVERIFY(durationChanged.wait(1000)); + QVERIFY(durationChanged.wait(2000)); session.setVideoOutput(&videoOutput); QTRY_COMPARE(videoOutputChanged.count(), 1); @@ -734,7 +766,7 @@ void tst_QMediaCaptureSession::recording_stops_when_recorder_removed() recorder.record(); QTRY_VERIFY(recorder.recorderState() == QMediaRecorder::RecordingState); - QVERIFY(durationChanged.wait(1000)); + QVERIFY(durationChanged.wait(2000)); session.setRecorder(nullptr); QTRY_COMPARE(recorderChanged.count(), 2); @@ -888,7 +920,7 @@ void tst_QMediaCaptureSession::can_add_ImageCapture_and_capture_during_recording recorder.record(); QTRY_VERIFY(recorder.recorderState() == QMediaRecorder::RecordingState); - QVERIFY(durationChanged.wait(1000)); + QVERIFY(durationChanged.wait(2000)); session.setImageCapture(&capture); QTRY_COMPARE(imageCaptureChanged.count(), 1); |