Bug #15321

"The Report an Error launcher will…" test suite step is fragile

Added by intrigeri 2018-02-17 14:29:05 . Updated 2019-08-30 11:54:13 .

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Test suite
Target version:
Start date:
2018-02-17
Due date:
% Done:

0%

Feature Branch:
test/15321-doc-pages+force-all-tests
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Deliverable for:

Description

It caused failures in 4 of the last 10 runs of https://jenkins.tails.boum.org/view/RM/job/test_Tails_ISO_stable/ so I’m going to mark it as fragile. I don’t know if that’s a regression since the new tails-documentation was introduced or if it’s a test suite bug.


Subtasks


Related issues

Related to Tails - Bug #15514: The "The Tails documentation launcher on the desktop works…" scenarios are fragile Resolved 2018-04-09
Related to Tails - Feature #11717: Drop launchers from the Desktop Rejected 2016-08-25
Related to Tails - Bug #16283: No more icons on desktop in buster Resolved 2019-01-05
Blocks Tails - Feature #16209: Core work: Foundations Team Confirmed

History

#1 Updated by intrigeri 2018-02-17 14:33:17

  • Description updated

#2 Updated by intrigeri 2018-02-17 14:33:38

  • Status changed from Confirmed to In Progress

Applied in changeset commit:02428b2f74651a8c4258e1890f782746adb8e18f.

#3 Updated by intrigeri 2018-04-10 12:14:59

  • related to Bug #15514: The "The Tails documentation launcher on the desktop works…" scenarios are fragile added

#4 Updated by intrigeri 2018-04-10 12:19:43

  • Description updated
  • Status changed from In Progress to Confirmed

#5 Updated by intrigeri 2018-06-04 07:40:45

intrigeri wrote:
> I don’t know if that’s a regression since the new tails-documentation was introduced or if it’s a test suite bug.

Given the online flavour often fails too, I think this is “just” yet another problem with desktop icons.

#6 Updated by intrigeri 2018-06-04 07:42:46

#7 Updated by intrigeri 2018-08-07 15:47:13

intrigeri wrote:
> intrigeri wrote:
> > I don’t know if that’s a regression since the new tails-documentation was introduced or if it’s a test suite bug.
>
> Given the online flavour often fails too, I think this is “just” yet another problem with desktop icons.

Actually, commit:74536c6a04c850db69686588723a9fec5060be7b removed some robustnes improvements. I’ll reintroduced them via Feature #15720 and we’ll see.

#8 Updated by intrigeri 2018-08-07 16:53:50

  • Status changed from Confirmed to In Progress

Applied in changeset commit:77aa42f001bfca85dcaf9f02a1971f347ff04c64.

#9 Updated by intrigeri 2018-08-17 07:28:38

I’ve found another failure mode for “the support documentation page opens in Tor Browser”. The browser does start and open the right page, but then the heading lookup fails:

02:26:58.195719964: executing Python as amnesia: node432 = node428.child('Tails - Hilfe & Support - Tor-Browser', roleName='frame')
02:26:58.247062647: execution complete
02:26:58.247209492: executing Python as amnesia: 
    nodes433 = node432.findChildren(dogtail.predicate.GenericPredicate(roleName='heading'))
    print(len(nodes433))
02:26:59.100786690: execution complete
    Then the support documentation page opens in Tor Browser                                                  # features/step_definitions/checks.rb:97
      <false> is not true. (Test::Unit::AssertionFailedError)
      features/localization.feature:13:in `Then the support documentation page opens in Tor Browser'

Looking at the code:

   step "\"#{expected_title}\" has loaded in the Tor Browser"
   if @language == 'German'
     browser_name = 'Tor-Browser'
   else
     browser_name = 'Tor Browser'
   end
   headings = @torbrowser
              .child(expected_title + " - #{browser_name}", roleName: 'frame')
              .children(roleName: 'heading')
   assert(
     headings.any? { |heading| heading.text == expected_heading }
   )

… this seems racy to me: after the “has loaded” step has passed, we’re immediately collecting a list of headings; but if Tor Browser is a bit slow, it may not have exposed the entire page content on the a11y bus yet. I think we should drop the assert and let dogtail look for the expected heading itself, so we benefit from its internal wait/retry magics. This might require extending our dogtail custom bindings to support the .text selector. If that’s not feasible then we should wrap the assert with some retry loop.

#10 Updated by intrigeri 2019-01-05 10:31:51

  • related to Bug #16283: No more icons on desktop in buster added

#11 Updated by intrigeri 2019-03-08 15:21:14

  • Status changed from In Progress to Confirmed

#12 Updated by intrigeri 2019-05-18 16:36:04

I’ve seen a case when the test suite actually clicked the “Tails-Dokumentation” icon instead of the “Einen Fehler melden” one: Found fuzzy candidate picture for DesktopReportAnError.png with similarity 0.6. So then obviously, in the next step Dogtail does not find the expected page title.

#13 Updated by intrigeri 2019-08-16 05:46:03

intrigeri wrote:
> I’ve seen a case when the test suite actually clicked the “Tails-Dokumentation” icon instead of the “Einen Fehler melden” one: Found fuzzy candidate picture for DesktopReportAnError.png with similarity 0.6. So then obviously, in the next step Dogtail does not find the expected page title.

Seen this failure mode again. That’s because the “Einen Fehler melden” icon is half-hidden behind the GNOME Shell top bar. This won’t happen anymore on Tails 4.x because the desktop icons there are managed by a GNOME Shell extension instead of Nautilus.

#14 Updated by intrigeri 2019-08-29 16:24:24

  • Status changed from Confirmed to In Progress

Applied in changeset commit:tails|b58c6dcc988cfc009a2f496b208702cc9a7ead90.

#15 Updated by intrigeri 2019-08-29 16:39:18

  • Assignee set to intrigeri
  • Target version set to Tails_4.0
  • Feature Branch set to test/15321-doc-pages+force-all-tests

I’ve seen the problem reported in Bug #15321#note-9 again. A similar problem was fixed with commit:0d8a2b71774ee1e06788efcf8498a6d3acdd04cf. I’ll do the same here.

#16 Updated by intrigeri 2019-08-29 16:41:40

#17 Updated by intrigeri 2019-08-30 07:28:49

  • Status changed from In Progress to Needs Validation
  • Assignee deleted (intrigeri)

#18 Updated by intrigeri 2019-08-30 10:37:18

  • Status changed from Needs Validation to In Progress

Applied in changeset commit:tails|dd63e1c0008aff534bf014dc01b39670e89d7794.

#19 Updated by intrigeri 2019-08-30 11:15:55

  • Status changed from In Progress to Needs Validation

#20 Updated by hefee 2019-08-30 11:25:28

  • Assignee set to hefee

#21 Updated by hefee 2019-08-30 11:54:13

  • Status changed from Needs Validation to Resolved
  • Assignee deleted (hefee)

Applied in changeset tails|1fa89c94a05aaeb5841c57f13ccd8f04326650eb.