Closed Bug 1506528 Opened 6 years ago Closed 6 years ago

[mozmill] testEventDialog regularly failing

Categories

(Calendar :: General, defect)

Unspecified
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: Taraman, Assigned: Taraman)

Details

Attachments

(2 files)

test Event Dialog regularly fails, mostly on linux debug builds.

There are two different errors involved:
> EXCEPTION: Timeout waiting for modal dialog to open.
>   at: utils.js line 396
>   TimeoutError utils.js:396 13
>   waitFor utils.js:452 11
>   WindowWatcher_waitForModalDialog test-window-helpers.js:386 5
>   wait_for_modal_dialog test-window-helpers.js:619 3
>   handleOccurrencePrompt test-calendar-utils.js:207 5
>   testEventDialog testEventDialog.js:191 5

I beleive this is a performance issue due to the number of recurring events (no end date)

> EXCEPTION: could not validate element Lookup: /id("calendar-event-dialog-inner")/id("event-grid")/id("event-grid-rows")/id("event-grid-tabbox")/id("event-grid-tabpanels")/id("event-grid-tabpanel-attendees")/{"flex":"1"}/{"flex":"1"}/id("item-attendees-box")/{"class":"item-attendees-row"}/{"class":"item-attendees-cell"}/{"class":"item-attendees-cell-label"} with value foo@bar.com
at: controller.js line 951
>   MozMillController.prototype.assertValue controller.js:951 9
>   testEventDialog/< testEventDialog.js:123 9
>   invokeEventDialog test-calendar-utils.js:341 5
>   testEventDialog testEventDialog.js:81 5

For this one I don't have an idea yet, will look into it.
Yes, the Debug builds are always most prone to timing issues.

Some logging on the tests supports my theory:
> 18:29:55     INFO -  start Test eventDialog OLD
> 18:30:06     INFO -  saving event
> 18:30:58     INFO -  Alarm dismissed
> 18:31:03     INFO -  deleting event
> 18:31:23     INFO -  event deleted
> 18:31:52     INFO -  end Test eventDialog OLD
> deleting event: 20 sec.
> test running: 117 sec.
>
> 18:33:46     INFO -  start Test eventDialog NEW
> 18:34:01     INFO -  saving event
> 18:34:09     INFO -  Alarm dismissed
> 18:34:11     INFO -  deleting event
> 18:34:15     INFO -  event deleted
> 18:34:18     INFO -  end Test eventDialog NEW
> deleting event: 4 sec.
> test running: 32 sec.
Restricting the repetition of the event to 3 weeks vs. indefinite cuts the times by factor 4-5.
And it is well possible that the time for the recurrenceDialog to open exceeds the 30 sec. we set there.
Attached patch testEventDialog.diff — — Splinter Review
I changed the test to use a recurring series that only spans 3 Weeks.

We always start "yesterday", since we need an alarm that is in the past, to fire immediately after saving the event.
To make checking for events easier programatically, the 3 weeks always start at the first day in view in monthview. So we can always check for 7 columns in 3 rows.

To cope with the failure on the attendees, I added a check that the tab is available before checking its contents.

Try-Run:
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=f3ae6dcbc8327d87b2dfad9aab4f6b4a832db4ee
Attachment #9025935 - Flags: review?(geoff)
Comment on attachment 9025935 [details] [diff] [review]
testEventDialog.diff

Review of attachment 9025935 [details] [diff] [review]:
-----------------------------------------------------------------

Nice one, thanks.

::: calendar/test/mozmill/eventDialog/testEventDialog.js
@@ +95,5 @@
>      let endTime = dateFormatter.formatTime(nextHour);
>  
> +    // Create new event on first day in view.
> +    controller.click(lookupEventBox("month", CANVAS_BOX, 1, 1, null));
> +    controller.mainMenu.click("#ltnNewEvent");

Isn't this what the second argument of invokeEventDialog does?

@@ +186,2 @@
>  
> +    // Delete and verify deleted 4th col in row 1.

6th column?
Attachment #9025935 - Flags: review?(geoff) → review+
(In reply to Geoff Lankow (:darktrojan) from comment #4)

> ::: calendar/test/mozmill/eventDialog/testEventDialog.js
> @@ +95,5 @@
> >      let endTime = dateFormatter.formatTime(nextHour);
> >  
> > +    // Create new event on first day in view.
> > +    controller.click(lookupEventBox("month", CANVAS_BOX, 1, 1, null));
> > +    controller.mainMenu.click("#ltnNewEvent");
> 
> Isn't this what the second argument of invokeEventDialog does?

Yes, nearly. invokeEventDialog does this by doubleclicking on the respective day.
For some reason this does not work on the build-server. It works locally on my machine, but on the tryruns the event-dialog never opened.
I could not find out why, so I had to do it this way.

The comment is corrected.
Pushed by Mozilla@Adrario.de:
https://hg.mozilla.org/comm-central/rev/f019858bc238
[mozmill] testEventDialog regularly failing. r=darktrojan
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Umm, that's not obvious to me, so what part is fixed? I still see the same test failing :-(
(In reply to Jorg K (GMT+1) from comment #8)
> Umm, that's not obvious to me, so what part is fixed? 

EXCEPTION: Timeout waiting for modal dialog to open.

That part is fixed (at least in all my testruns and the current build).

What still fails in the current is:
> EXCEPTION: could not validate element Lookup: /id("calendar-event-dialog-inner")/id("event-grid")/id("event-grid-rows")/id("event-grid-tabbox")/id("event-grid-tabpanels")/id("event-grid-tabpanel-attendees")/{"flex":"1"}/{"flex":"1"}/id("item-attendees-box")/{"class":"item-attendees-row"}/{"class":"item-attendees-cell"}/{"class":"item-attendees-cell-label"} with value foo@bar.com
That is the 2nd case I mentioned in comment #0
So I have to find out what causes this.
Target Milestone: --- → 6.7
It is well possible that due to a timing issue the attendee is not set and thus the failure shows the correct fact that it is not there.

I changed the static wait at the respective point to a check if the textbox is focused.
Testing is in progress...
Attached patch testEventDialogPart2.diff — — Splinter Review
And this is the patch for the last comment.

The last 5 try-builds did not show the failure.

One last ist here:
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=c000108bd9916b3ada84f9b697d1a65a840c9237
Attachment #9026996 - Flags: review?(geoff)
Comment on attachment 9026996 [details] [diff] [review]
testEventDialogPart2.diff

Review of attachment 9026996 [details] [diff] [review]:
-----------------------------------------------------------------

Good. I'm in favour of removing arbitrary pauses.
Attachment #9026996 - Flags: review?(geoff) → review+
Pushed by Mozilla@Adrario.de:
https://hg.mozilla.org/comm-central/rev/9ec06d5d2638
[mozmill] testEventDialog regularly failing. r=darktrojan
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: