on xenial help sign in
Simulate PAM delay when manually testing lockscreen
commite12dc3d433a237e1576ca024a4cb0db093607656 authorMichael Terry <michael.terry@canonical.com> dateThu 31 Jul 2014, 15:06 (12 years ago) parented919eb
5 files changed+33−9
cmake/modules/QmlTest.cmake+2−2 cmake/modules/autopilot.cmake+2−2 tests/mocks/LightDM/full/GreeterPrivate.cpp+10 tests/mocks/LightDM/single-passphrase/GreeterPrivate.cpp+8−5 tests/mocks/LightDM/single-pin/GreeterPrivate.cpp+11
cmake/modules/QmlTest.cmake+2−2
@@ -103,7 +103,7 @@ macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
103103 endif()
104104
105105 set(qmltest_command
106− env ${qmltest_ENVIRONMENT}
106+ env ${qmltest_ENVIRONMENT} UNITY_TESTING=1
107107 ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
108108 ${qmltestrunner_imports}
109109 ${ITERATIONS_STRING}
@@ -117,7 +117,7 @@ macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
117117 set(LD_PRELOAD_PATH "LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1")
118118 endif()
119119 set(qmltest_xvfb_command
120− env ${qmltest_ENVIRONMENT} ${LD_PRELOAD_PATH}
120+ env ${qmltest_ENVIRONMENT} ${LD_PRELOAD_PATH} UNITY_TESTING=1
121121 xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
122122 ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
123123 ${qmltestrunner_imports}
cmake/modules/autopilot.cmake+2−2
@@ -2,7 +2,7 @@ add_custom_target(autopilot)
22
33function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
44 add_custom_target(autopilot-${TEST_NAME}
5− COMMAND LANG=C QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python3 -m autopilot.run run ${TEST_SUITE}
5+ COMMAND UNITY_TESTING=1 LANG=C QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python3 -m autopilot.run run ${TEST_SUITE}
66 WORKING_DIRECTORY ${WORKING_DIR}
77 DEPENDS fake_install
88 )
@@ -14,7 +14,7 @@ function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
1414 add_dependencies(autopilot autopilot-${TEST_NAME})
1515
1616 add_custom_target(autopilot2-${TEST_NAME}
17− COMMAND LANG=C QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python2 -m autopilot.run run ${TEST_SUITE}
17+ COMMAND UNITY_TESTING=1 LANG=C QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python2 -m autopilot.run run ${TEST_SUITE}
1818 WORKING_DIRECTORY ${WORKING_DIR}
1919 DEPENDS fake_install
2020 )
tests/mocks/LightDM/full/GreeterPrivate.cpp+10
@@ -19,6 +19,9 @@
1919#include "../Greeter.h"
2020#include "../GreeterPrivate.h"
2121
22+#include <QEventLoop>
23+#include <QTimer>
24+
2225namespace QLightDM
2326{
2427
@@ -69,6 +72,13 @@ void GreeterPrivate::handleRespond(const QString &response)
6972{
7073 Q_Q(Greeter);
7174
75+ if (qgetenv("UNITY_TESTING").isEmpty()) {
76+ // simulate PAM's delay
77+ QEventLoop loop;
78+ QTimer::singleShot(1000, &loop, SLOT(quit()));
79+ loop.exec();
80+ }
81+
7282 if (authenticationUser == "no-response")
7383 return;
7484 else if (authenticationUser == "two-factor") {
tests/mocks/LightDM/single-passphrase/GreeterPrivate.cpp+8−5
@@ -19,7 +19,8 @@
1919#include "../Greeter.h"
2020#include "../GreeterPrivate.h"
2121
22−#include <QDebug>
22+#include <QEventLoop>
23+#include <QTimer>
2324
2425namespace QLightDM
2526{
@@ -34,9 +35,6 @@ GreeterPrivate::GreeterPrivate(Greeter* parent)
3435void GreeterPrivate::handleAuthenticate()
3536{
3637 Q_Q(Greeter);
37−
38− qDebug() << "handleAuthentication called!" << authenticationUser;
39−
4038 Q_EMIT q->showPrompt("Password:", Greeter::PromptTypeSecret);
4139}
4240
@@ -44,9 +42,14 @@ void GreeterPrivate::handleRespond(const QString &response)
4442{
4543 Q_Q(Greeter);
4644
45+ if (qgetenv("UNITY_TESTING").isEmpty()) {
46+ // simulate PAM's delay
47+ QEventLoop loop;
48+ QTimer::singleShot(1000, &loop, SLOT(quit()));
49+ loop.exec();
50+ }
4751
4852 authenticated = (response == "password");
49− qDebug() << "responding" << response << authenticated;
5053 Q_EMIT q->authenticationComplete();
5154}
5255
tests/mocks/LightDM/single-pin/GreeterPrivate.cpp+11
@@ -19,6 +19,9 @@
1919#include "../Greeter.h"
2020#include "../GreeterPrivate.h"
2121
22+#include <QEventLoop>
23+#include <QTimer>
24+
2225namespace QLightDM
2326{
2427
@@ -38,6 +41,14 @@ void GreeterPrivate::handleAuthenticate()
3841void GreeterPrivate::handleRespond(const QString &response)
3942{
4043 Q_Q(Greeter);
44+
45+ if (qgetenv("UNITY_TESTING").isEmpty()) {
46+ // simulate PAM's delay
47+ QEventLoop loop;
48+ QTimer::singleShot(1000, &loop, SLOT(quit()));
49+ loop.exec();
50+ }
51+
4152 authenticated = (response == "1234");
4253 Q_EMIT q->authenticationComplete();
4354}