summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2023-02-06 16:38:37 +0100
committerStephan Bergmann <sbergman@redhat.com>2023-02-06 18:57:28 +0000
commit9a23ded27470a4c57015e9e5d686259a60d464f2 (patch)
treed903191ece23f77fcaea8514f6df1709bff8abf0
parent08cfcea7fef6cde9eddcfa461fe1edff99dadafe (diff)
Fix thinko when to sleep
<https://ci.libreoffice.org/job/lo_ubsan/2672/> still failed with the same symptoms that 09c3a0aa13e7c4719a73728c2f9ba1f66cea7572 "A better fix for the stale TreeListEntryUIObject issue" had been supposed to fix. And of course, it is the > xInsert.executeAction("CLICK", tuple()) calls that actually trigger m_aUpdateTimer.Start() in SwChildWinWrapper::ReInitDlg, while the upfront m_aUpdateTimer.SetTimeout(200) in the SwChildWinWrapper ctor by itself is not relevant for the point in time where the timer actually starts (and where the Python code thus has to start waiting, too). Change-Id: I2b4fe7dadd470c62e7d63594a76d258faeac5906 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146588 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
-rwxr-xr-xsw/qa/uitest/writer_tests7/tdf135938.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/sw/qa/uitest/writer_tests7/tdf135938.py b/sw/qa/uitest/writer_tests7/tdf135938.py
index 164c968f55fd..8faab5c47938 100755
--- a/sw/qa/uitest/writer_tests7/tdf135938.py
+++ b/sw/qa/uitest/writer_tests7/tdf135938.py
@@ -17,14 +17,6 @@ class tdf135938(UITestCase):
def test_tdf135938_cross_reference_update(self):
with self.ui_test.create_doc_in_start_center("writer"):
with self.ui_test.execute_modeless_dialog_through_command(".uno:InsertReferenceField", close_button="cancel") as xDialog:
- # HACK, see the `m_aUpdateTimer.SetTimeout(200)` (to "avoid flickering of buttons")
- # in the SwChildWinWrapper ctor in sw/source/uibase/fldui/fldwrap.cxx, which can
- # invalidate the TreeListEntryUIObjects used by the below get_state_as_dict calls
- # (see 2798430c8a711861fdcdfbf9ac00a0527abd3bfc "Mark the uses of
- # TreeListEntryUIObject as dubious"); lets double that 200 ms timeout value here to
- # hopefully be on the safe side:
- time.sleep(0.4);
-
# Select set reference type
xTreelistType = xDialog.getChild("type-ref")
xTreeEntry = xTreelistType.getChild('0')
@@ -37,6 +29,15 @@ class tdf135938(UITestCase):
xInsert = xDialog.getChild("ok")
xInsert.executeAction("CLICK", tuple())
+ # HACK, see the `m_aUpdateTimer.SetTimeout(200)` (to "avoid flickering of buttons")
+ # in the SwChildWinWrapper ctor in sw/source/uibase/fldui/fldwrap.cxx, where that
+ # m_aUpdateTimer is started by SwChildWinWrapper::ReInitDlg triggered from the
+ # xInsert click above, and which can invalidate the TreeListEntryUIObjects used by
+ # the below get_state_as_dict calls (see 2798430c8a711861fdcdfbf9ac00a0527abd3bfc
+ # "Mark the uses of TreeListEntryUIObject as dubious"); lets double that 200 ms
+ # timeout value here to hopefully be on the safe side:
+ time.sleep(.4);
+
xSelect = xDialog.getChild("select-ref")
self.assertEqual("1", get_state_as_dict(xSelect)["Children"])
self.assertEqual("ABC", get_state_as_dict(xSelect.getChild(0))["Text"])
@@ -45,6 +46,15 @@ class tdf135938(UITestCase):
xName.executeAction("TYPE", mkPropertyValues({"TEXT": "DEF"}))
xInsert.executeAction("CLICK", tuple())
+ # HACK, see the `m_aUpdateTimer.SetTimeout(200)` (to "avoid flickering of buttons")
+ # in the SwChildWinWrapper ctor in sw/source/uibase/fldui/fldwrap.cxx, where that
+ # m_aUpdateTimer is started by SwChildWinWrapper::ReInitDlg triggered from the
+ # xInsert click above, and which can invalidate the TreeListEntryUIObjects used by
+ # the below get_state_as_dict calls (see 2798430c8a711861fdcdfbf9ac00a0527abd3bfc
+ # "Mark the uses of TreeListEntryUIObject as dubious"); lets double that 200 ms
+ # timeout value here to hopefully be on the safe side:
+ time.sleep(.4);
+
self.assertEqual("2", get_state_as_dict(xSelect)["Children"])
self.assertEqual("ABC", get_state_as_dict(xSelect.getChild(0))["Text"])
self.assertEqual("DEF", get_state_as_dict(xSelect.getChild(1))["Text"])