on xenial help sign in
more test fixing
db7effdLukáš Tinkl
tests/qmltests/Stages/tst_DesktopStage.qml+10
@@ -60,10 +60,14 @@ Item {
60
60
61 focus: true
61 focus: true
62
62
63+ property bool itemDestroyed: false
63 sourceComponent: Component {
64 sourceComponent: Component {
64 DesktopStage {
65 DesktopStage {
65 color: "darkblue"
66 color: "darkblue"
66 anchors.fill: parent
67 anchors.fill: parent
68+ Component.onDestruction: {
69+ desktopStageLoader.itemDestroyed = true;
70+ }
67 orientations: Orientations {}
71 orientations: Orientations {}
68 }
72 }
69 }
73 }
@@ -99,10 +103,16 @@ Item {
99 property Item desktopStage: desktopStageLoader.status === Loader.Ready ? desktopStageLoader.item : null
103 property Item desktopStage: desktopStageLoader.status === Loader.Ready ? desktopStageLoader.item : null
100
104
101 function cleanup() {
105 function cleanup() {
106+ desktopStageLoader.itemDestroyed = false;
102 desktopStageLoader.active = false;
107 desktopStageLoader.active = false;
103
108
104 tryCompare(desktopStageLoader, "status", Loader.Null);
109 tryCompare(desktopStageLoader, "status", Loader.Null);
105 tryCompare(desktopStageLoader, "item", null);
110 tryCompare(desktopStageLoader, "item", null);
111+ // Loader.status might be Loader.Null and Loader.item might be null but the Loader
112+ // actually took place. Likely because Loader waits until the next event loop
113+ // iteration to do its work. So to ensure the reload, we will wait until the
114+ // Shell instance gets destroyed.
115+ tryCompare(desktopStageLoader, "itemDestroyed", true);
106
116
107 killAllRunningApps();
117 killAllRunningApps();
108
118