tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 5d5d1047f83747d0d73e09099486f6b616cb608e
parent 2f5c54b4543ddf1fac145ef6f704cd62af2109fa
Author: Tom Marble <tmarble@info9.net>
Date:   Tue,  4 Nov 2025 21:50:02 +0000

Bug 1991977 - Implement skip-fails --replace-tbd r=ahal

Updates skipfails.py to support --replace-tbd
- Improves on --known-intermittents and --new-failures modes by
  recognizing previously handled failures
- Caches error log context (to support self tests)
- Consistently reports when querying treeherder ("Retrieving...")
  in verbose mode
- Updates write_tasks to support writing Mock'ed tasks
- Updates write_json to ensure a final newline (to match the JSON linter)

Adds test_modes.py to test all the greening up modes

Signed-off-by: Tom Marble <tmarble@info9.net>

Differential Revision: https://phabricator.services.mozilla.com/D271085

Diffstat:
Mtesting/mozbase/manifestparser/manifestparser/toml.py | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Atesting/mozbase/manifestparser/tests/replace-tbd-after.toml | 28++++++++++++++++++++++++++++
Atesting/mozbase/manifestparser/tests/replace-tbd-before.toml | 24++++++++++++++++++++++++
Mtesting/mozbase/manifestparser/tests/test_toml.py | 64+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Mtesting/skipfails.py | 235++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
Atesting/test/data/actions-carryover.json | 17+++++++++++++++++
Atesting/test/data/actions-known.json | 32++++++++++++++++++++++++++++++++
Atesting/test/data/actions-new.json | 47+++++++++++++++++++++++++++++++++++++++++++++++
Atesting/test/data/browser-before.toml | 7+++++++
Atesting/test/data/browser-carryover.toml | 13+++++++++++++
Atesting/test/data/browser-known.toml | 14++++++++++++++
Atesting/test/data/browser-new.toml | 15+++++++++++++++
Atesting/test/data/browser.toml | 12++++++++++++
Atesting/test/data/context-BarnNoFwSCGQtnNGH-o08w-4028.txt | 21+++++++++++++++++++++
Atesting/test/data/context-O304PG2lSOuef7JzFoSaow-12581.txt | 21+++++++++++++++++++++
Atesting/test/data/failures.json | 108+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atesting/test/data/job_ids.json | 5+++++
Atesting/test/data/suggest-531522970.json | 39+++++++++++++++++++++++++++++++++++++++
Atesting/test/data/suggest-531522979.json | 214+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atesting/test/data/suggest-531523119.json | 1170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atesting/test/data/tasks.json | 567+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtesting/test/python.toml | 3+++
Atesting/test/test_modes.py | 235+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtesting/test/test_skipfails.py | 29++++++++++++++++++++++++++++-
24 files changed, 2933 insertions(+), 77 deletions(-)

diff --git a/testing/mozbase/manifestparser/manifestparser/toml.py b/testing/mozbase/manifestparser/manifestparser/toml.py @@ -289,9 +289,12 @@ class Mode: NORMAL: int = 0 CARRYOVER: int = 1 - KNOWN_INTERMITTENTS: int = 2 - NEW_FAILURES: int = 3 + KNOWN_INTERMITTENT: int = 2 + NEW_FAILURE: int = 3 REPLACE_TBD: int = 4 + CARRYOVER_FILED: int = 5 + KNOWN_INTERMITTENT_FILED: int = 6 + NEW_FAILURE_FILED: int = 7 class Carry: @@ -634,3 +637,86 @@ def remove_skip_if( del key_values["skip-if"] return has_removed_items + + +def replace_tbd_skip_if( + manifest: TOMLDocument, filename: str, condition: str, bugid: str +) -> bool: + """ + Edits the test ["filename"] in manifest with the given condition + that has a bug reference `# Bug TBD` + with the actual bugid + returns True if properly updated + """ + from tomlkit import array + from tomlkit.items import Comment, String, Whitespace + + updated: bool = False # was the TBD found and updated with bugid? + BUG_TBD: str = "Bug TBD" # string we are looking for + if filename not in manifest: + raise Exception(f"TOML manifest does not contain section: {filename}") + keyvals: dict = manifest[filename] + if not "skip-if" in keyvals: + raise Exception( + f"TOML manifest for section: {filename} does not contain a skip-if condition" + ) + skip_if: Array = keyvals["skip-if"] + mp_array: Array = array() + conditions_array: OptConditions = [] + first: OptStr = None # first skip-if condition + first_comment: str = "" # first skip-if comment + e_condition: OptStr = None # existing skip-if condition + e_comment: str = "" # existing skip-if comment + + # handle the first condition uniquely to properly perserve whitespace + if len(skip_if) == 1: + for e in skip_if._iter_items(): + if first is None: + if not isinstance(e, Whitespace): + first = e.as_string().strip('"') + else: + c = e.as_string() + if c != ",": + first_comment += c + if skip_if.trivia is not None: + first_comment += skip_if.trivia.comment + if first is not None: + if first_comment: + first_comment = _simplify_comment(first_comment) + if first == condition and first_comment.endswith(BUG_TBD): + i: int = max(first_comment.find(BUG_TBD), 0) + first_comment = f"{' ' * i}Bug {bugid}" + updated = True + e_condition = first + e_comment = first_comment + + # loop over all skip-if conditions to find BUG_TBD + for e in skip_if._iter_items(): + if isinstance(e, String): + if e_condition is not None: + conditions_array.append([e_condition, e_comment]) + e_condition = None + e_comment = "" + if len(e) > 0: + e_condition = e.as_string().strip('"') + if e_condition == first: + e_condition = None # don't repeat first + elif isinstance(e, Comment): + e_comment = _simplify_comment(e.as_string()) + if e_condition == condition and e_comment.endswith(BUG_TBD): + i: int = max(e_comment.find(BUG_TBD), 0) + e_comment = f"{' ' * i}Bug {bugid}" + updated = True + if e_condition is not None: + conditions_array.append([e_condition, e_comment]) + + # Update TOML document for the test with the updated skip-if comment + conditions_array.sort() + for c in conditions_array: + mp_array.add_line(c[0], indent=" ", comment=c[1]) + mp_array.add_line("", indent="") # fixed in write_toml_str + skip_if = {"skip-if": mp_array} + del keyvals["skip-if"] + keyvals.update(skip_if) + + return updated diff --git a/testing/mozbase/manifestparser/tests/replace-tbd-after.toml b/testing/mozbase/manifestparser/tests/replace-tbd-after.toml @@ -0,0 +1,28 @@ +# Replace TBD test +[DEFAULT] + +["bug_3.js"] +# This is a comment about Bug 3 +# DO NOT ADD MORE TESTS HERE +skip-if = [ + "os == 'linux'", # Bug 33333 +] + +["bug_20.js"] + +["bug_100.js"] +skip-if = [ + "os == 'android' && asan", # Bug 100 +] + +["test_bar.html"] +skip-if = [ + "os == 'linux'", # Bug 222 + "os == 'mac'", # Bug 111 + "os == 'win'", # Bug 333 +] + +["test_extend_linux.js"] +skip-if = [ + "os == 'mac'", # Bug 111 +] diff --git a/testing/mozbase/manifestparser/tests/replace-tbd-before.toml b/testing/mozbase/manifestparser/tests/replace-tbd-before.toml @@ -0,0 +1,24 @@ +# Replace TBD test +[DEFAULT] + +["bug_100.js"] +skip-if = ["os == 'android' && asan"] # Bug TBD + +["bug_3.js"] +# This is a comment about Bug 3 +skip-if = ["os == 'linux'"] # Bug TBD +# DO NOT ADD MORE TESTS HERE + +["test_bar.html"] +skip-if = [ + "os == 'mac'", # Bug 111 + "os == 'linux'", # Bug TBD + "os == 'win'", # Bug 333 +] + +["test_extend_linux.js"] +skip-if = [ + "os == 'mac'", # Bug TBD +] + +['bug_20.js'] diff --git a/testing/mozbase/manifestparser/tests/test_toml.py b/testing/mozbase/manifestparser/tests/test_toml.py @@ -4,9 +4,71 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. +import os + import mozunit import pytest -from manifestparser.toml import Carry +from manifestparser import ManifestParser +from manifestparser.toml import Carry, alphabetize_toml_str, replace_tbd_skip_if +from tomlkit.toml_document import TOMLDocument + +here = os.path.dirname(os.path.abspath(__file__)) + + +def test_replace_tbd_skip_if(): + parser = ManifestParser(use_toml=True, document=True) + before = "replace-tbd-before.toml" + before_path = os.path.join(here, before) + parser.read(before_path) + assert before_path in parser.source_documents + manifest = parser.source_documents[before_path] + assert manifest is not None + assert isinstance(manifest, TOMLDocument) + + filename = "non-existant.js" + condition = "os == 'android' && asan" + bugid = "100" + updated: bool = False + with pytest.raises(Exception) as e: + updated = replace_tbd_skip_if(manifest, filename, condition, bugid) + assert updated # Fail here if no exception thrown + assert str(e.value) == "TOML manifest does not contain section: non-existant.js" + filename = "DEFAULT" + with pytest.raises(Exception) as e: + updated = replace_tbd_skip_if(manifest, filename, condition, bugid) + assert updated # Fail here if no exception thrown + assert ( + str(e.value) + == "TOML manifest for section: DEFAULT does not contain a skip-if condition" + ) + + filename = "bug_100.js" + updated = replace_tbd_skip_if(manifest, filename, condition, bugid) + assert updated + + filename = "bug_3.js" + condition = "os == 'linux'" + bugid = "33333" + updated = replace_tbd_skip_if(manifest, filename, condition, bugid) + assert updated + + filename = "test_bar.html" + condition = "os == 'linux'" + bugid = "222" + updated = replace_tbd_skip_if(manifest, filename, condition, bugid) + assert updated + + filename = "test_extend_linux.js" + condition = "os == 'mac'" + bugid = "111" + updated = replace_tbd_skip_if(manifest, filename, condition, bugid) + assert updated + + manifest_str = alphabetize_toml_str(manifest) + after = "replace-tbd-after.toml" + after_path = os.path.join(here, after) + after_str = open(after_path, encoding="utf-8").read() + assert manifest_str == after_str @pytest.fixture(scope="session") diff --git a/testing/skipfails.py b/testing/skipfails.py @@ -32,6 +32,7 @@ from manifestparser.toml import ( Mode, add_skip_if, alphabetize_toml_str, + replace_tbd_skip_if, sort_paths, ) from mozci.push import Push @@ -202,7 +203,10 @@ def write_json(filename: str, data): if not os.path.isdir(parent): os.mkdir(parent) with open(filename, "w", encoding="utf-8") as fp: - json.dump(data, fp, indent=2, sort_keys=True, default=default_serializer) + s: str = json.dumps(data, indent=2, sort_keys=True, default=default_serializer) + if s[-1] != "\n": + s += "\n" # end with newline to match JSON linter + fp.write(s) class Mock: @@ -273,9 +277,9 @@ class SkipfailsMode(Mode): if carryover_mode: return cls.CARRYOVER elif known_intermittents_mode: - return cls.KNOWN_INTERMITTENTS + return cls.KNOWN_INTERMITTENT elif new_failures_mode: - return cls.NEW_FAILURES + return cls.NEW_FAILURE elif replace_tbd_mode: return cls.REPLACE_TBD return cls.NORMAL @@ -290,9 +294,9 @@ class SkipfailsMode(Mode): def description(cls, mode: int) -> str: if mode == cls.CARRYOVER: return "Carryover mode: only platform match conditions considered, no bugs created or updated" - elif mode == cls.KNOWN_INTERMITTENTS: + elif mode == cls.KNOWN_INTERMITTENT: return "Known Intermittents mode: only failures with known intermittents considered, no bugs created or updated" - elif mode == cls.NEW_FAILURES: + elif mode == cls.NEW_FAILURE: return "New failures mode: Will only edit manifest skip-if conditions for new failures (i.e. not carryover nor known intermittents)" elif mode == cls.REPLACE_TBD: return "Replace TBD mode: Will only edit manifest skip-if conditions for new failures by filing new bugs and replacing TBD with actual bug number." @@ -300,16 +304,38 @@ class SkipfailsMode(Mode): @classmethod def name(cls, mode: int) -> str: + if mode == cls.NORMAL: + return "NORMAL" if mode == cls.CARRYOVER: return "CARRYOVER" - elif mode == cls.KNOWN_INTERMITTENTS: + elif mode == cls.KNOWN_INTERMITTENT: return "KNOWN_INTERMITTENT" - elif mode == cls.NEW_FAILURES: + elif mode == cls.NEW_FAILURE: return "NEW_FAILURE" elif mode == cls.REPLACE_TBD: return "REPLACE_TBD" + if mode == cls.CARRYOVER_FILED: + return "CARRYOVER_FILED" + elif mode == cls.KNOWN_INTERMITTENT_FILED: + return "KNOWN_INTERMITTENT_FILED" + elif mode == cls.NEW_FAILURE_FILED: + return "NEW_FAILURE_FILED" return "" + @classmethod + def bug_filed(cls, mode: int) -> int: + if mode == cls.CARRYOVER: + return cls.CARRYOVER_FILED + elif mode == cls.KNOWN_INTERMITTENT: + return cls.KNOWN_INTERMITTENT_FILED + elif mode == cls.NEW_FAILURE: + return cls.NEW_FAILURE_FILED + else: + raise Exception( + f"Skipfails mode {cls.name(mode)} cannot be promoted to a _FILED mode" + ) + return mode + class Action: """ @@ -542,10 +568,12 @@ class Skipfails: def file_age(self, path: str) -> float: """Returns age of filename in seconds""" - stat: os.stat_result = os.stat(path) - mtime: float = stat.st_mtime - now: float = time.time() - age: float = now - mtime + age: float = 0.0 + if os.path.exists(path): + stat: os.stat_result = os.stat(path) + mtime: float = stat.st_mtime + now: float = time.time() + age = now - mtime return age def delete_dir(self, path: str) -> None: @@ -578,6 +606,7 @@ class Skipfails: ): "Run skip-fails on try_url, return True on success" + self.mode = mode if self.mode != Mode.NORMAL and meta_bug_id is None: raise Exception( "must specifiy --meta-bug-id when using one of: --carryover --known-intermittents --new-failures --replace-tbd" @@ -656,12 +685,13 @@ class Skipfails: status = FAIL lineno = failures[manifest][LL][label][PP][path].get(LINENO, 0) runs: Runs = failures[manifest][LL][label][PP][path][RUNS] + k = Action.make_key(manifest, path, label) if ( - self.mode == Mode.NEW_FAILURES - and Action.make_key(manifest, path, label) in self.actions + self.mode in [Mode.KNOWN_INTERMITTENT, Mode.NEW_FAILURE] + and k in self.actions ): self.info( - f"\n\n===== Previously handled failure in manifest: {manifest} =====" + f"\n\n===== Previously handled {SkipfailsMode.name(self.actions[k].disposition)} in manifest: {manifest} =====" ) self.info(f" path: {path}") self.info(f" label: {label}") @@ -728,7 +758,7 @@ class Skipfails: return True self.cache_job_ids(revision) if self.mode != Mode.NORMAL: - self.save_actions(meta_bug_id) + self.write_actions(meta_bug_id) return True def get_revision(self, url): @@ -751,6 +781,7 @@ class Skipfails: return revision, repo def get_tasks(self, revision, repo): + self.vinfo(f"Retrieving tasks for revision: {revision} ...") push = Push(revision, repo) tasks = None try: @@ -1173,6 +1204,7 @@ class Skipfails: bug = b break if bug is None and self._initialize_bzapi(): + self.vinfo(f"Retrieving bug id: {id} ...") bug = self._bzapi.getbug(id) return bug @@ -1193,6 +1225,7 @@ class Skipfails: bugs.append(bug) return bugs if len(bugs) == 0 and self.bugzilla is not None and self._initialize_bzapi(): + self.vinfo(f"Retrieving bugs by summary: {summary} ...") query = self._bzapi.build_query(short_desc=summary) query["include_fields"] = [ "id", @@ -1504,7 +1537,7 @@ class Skipfails: bugid: OptInt if bug_id is None: - if self.mode == Mode.KNOWN_INTERMITTENTS and kind == Kind.TOML: + if self.mode == Mode.KNOWN_INTERMITTENT and kind == Kind.TOML: (bugid, comment, line_number) = self.find_known_intermittent( repo, revision, task_id, manifest, filename, skip_if ) @@ -1553,7 +1586,7 @@ class Skipfails: bug_reference: str = f"Bug {bugid}" if classification == Classification.SECONDARY and kind != Kind.WPT: bug_reference += " (secondary)" - if self.mode == Mode.NEW_FAILURES: + if self.mode == Mode.NEW_FAILURE: action = Action( manifest=manifest, path=path, @@ -1665,7 +1698,7 @@ class Skipfails: self.warning(additional_comment) if manifest_str: if line_number is not None: - comment += "\n" + self.error_log_context(task_id, line_number) + comment += "\n" + self.error_log_context(revision, task_id, line_number) if additional_comment: comment += "\n" + additional_comment if action is not None: @@ -1684,7 +1717,7 @@ class Skipfails: ) if bug_id is None: return - if self.mode in [Mode.NORMAL, Mode.REPLACE_TBD]: + if self.mode == Mode.NORMAL: if self.bugzilla is None: self.vinfo( f"Bugzilla has been disabled: comment not added to Bug {bugid}:\n{comment}" @@ -1710,7 +1743,7 @@ class Skipfails: self.error(f'Error editing ["{filename}"] in manifest: "{manifest}"') def replace_tbd(self, meta_bug_id: int): - # First pass: file new bugs for TBD + # First pass: file new bugs for TBD, collect comments by bugid comments_by_bugid: DictStrList = {} for k in self.actions: action: Action = self.actions[k] @@ -1720,7 +1753,13 @@ class Skipfails: self.info(f" skip_if: {action.skip_if}") self.info(f" disposition: {SkipfailsMode.name(action.disposition)}") self.info(f" bug_id: {action.bugid}") - if action.disposition == Mode.NEW_FAILURES: + + kind: Kind = Kind.TOML + if not action.manifest.endswith(".toml"): + raise Exception( + f'Only TOML manifests supported for --replace-tbd: "{action.manifest}"' + ) + if action.disposition == Mode.NEW_FAILURE: if self.bugzilla is None: self.vinfo( f"Bugzilla has been disabled: new bug not created for Bug {action.bugid}" @@ -1748,34 +1787,60 @@ class Skipfails: raise Exception( f'More than one bug found for summary: "{action.summary}"' ) - self.warning( - f"NOT IMPLEMENTED YET replacing TBD in manifest {action.manifest}" + manifest_path: str = self.full_path(action.manifest) + filename: str = self.resolve_failure_filename( + action.path, kind, action.manifest + ) + + mp = ManifestParser(use_toml=True, document=True) + mp.read(manifest_path) + document = mp.source_documents[manifest_path] + updated = replace_tbd_skip_if( + document, filename, action.skip_if, action.bugid ) + if updated: + manifest_str = alphabetize_toml_str(document) + with open( + manifest_path, "w", encoding="utf-8", newline="\n" + ) as fp: + fp.write(manifest_str) + self.info( + f'Edited ["{filename}"] in manifest: "{action.manifest}"' + ) + else: + self.error( + f'Error editing ["{filename}"] in manifest: "{action.manifest}"' + ) self.actions[k] = action - # Second pass: collect comments by bugid - for k in self.actions: - action: Action = self.actions[k] comments: ListStr = comments_by_bugid.get(action.bugid, []) comments.append(action.comment) comments_by_bugid[action.bugid] = comments - # Add combined comment for each bugid - for bugid in comments_by_bugid: - self.info(f"\n\n===== Filing Combined Comment for Bug {bugid} =====") - comment: str = "" - comments = comments_by_bugid[bugid] - for c in comments: - comment += c + "\n" - if self.bugzilla is None: - self.vinfo( - f"Bugzilla has been disabled: comment not added to Bug {bugid}:\n{comment}" - ) - elif self.dry_run: - self.vinfo( - f"Flag --dry-run: comment not added to Bug {bugid}:\n{comment}" + # Second pass: Add combined comment for each bugid + for k in self.actions: + action: Action = self.actions[k] + comments: ListStr = comments_by_bugid.get(action.bugid, []) + if self.bugzilla is not None and not self.dry_run: + action.disposition = SkipfailsMode.bug_filed(action.disposition) + self.actions[k] = action + if len(comments) > 0: # comments not yet added + self.info( + f"\n\n===== Filing Combined Comment for Bug {action.bugid} =====" ) - else: - self.add_bug_comment(int(bugid), comment) - self.info(f"Added comment to Bug {bugid}:\n{comment}") + comment: str = "" + for c in comments: + comment += c + "\n" + if self.bugzilla is None: + self.vinfo( + f"Bugzilla has been disabled: comment not added to Bug {action.bugid}:\n{comment}" + ) + elif self.dry_run: + self.vinfo( + f"Flag --dry-run: comment not added to Bug {action.bugid}:\n{comment}" + ) + else: + self.add_bug_comment(int(action.bugid), comment) + self.info(f"Added comment to Bug {action.bugid}:\n{comment}") + comments_by_bugid[action.bugid] = [] def get_variants(self): """Get mozinfo for each test variants""" @@ -1863,6 +1928,7 @@ class Skipfails: break if url is not None: + self.vinfo("Retrieving platform permutations ...") response = requests.get(url, headers={"User-agent": "mach-test-info/1.0"}) self.platform_permutations = response.json() else: @@ -2052,6 +2118,7 @@ class Skipfails: """Return the push_id for revision and repo (or None)""" if revision in self.push_ids: # if cached + self.vinfo(f"Getting push_id for {repo} revision: {revision} ...") push_id = self.push_ids[revision] else: push_id = None @@ -2096,6 +2163,7 @@ class Skipfails: k = f"{push_id}:{task_id}" if k in self.job_ids: # if cached + self.vinfo(f"Getting job_id for push_id: {push_id}, task_id: {task_id} ...") job_id = self.job_ids[k] else: job_id = None @@ -2127,10 +2195,16 @@ class Skipfails: """ if job_id in self.suggestions: + self.vinfo( + f"Getting bug_suggestions for {repo} revision: {revision} job_id: {job_id}" + ) suggestions = self.suggestions[job_id] else: suggestions_path = self.cached_path(revision, f"suggest-{job_id}.json") if os.path.exists(suggestions_path): + self.vinfo( + f"Reading cached bug_suggestions for {repo} revision: {revision} job_id: {job_id}" + ) suggestions = read_json(suggestions_path) else: suggestions_url = f"https://treeherder.mozilla.org/api/project/{repo}/jobs/{job_id}/bug_suggestions/" @@ -2215,9 +2289,6 @@ class Skipfails: """saves tasks as JSON to save_tasks""" jtasks = [] for task in tasks: - if not isinstance(task, TestTask): - continue - extras = self.get_extra(task.id) if not extras: continue @@ -2253,7 +2324,10 @@ class Skipfails: except TaskclusterRestFailure: continue for k in failure_types: - jft[k] = [[f[0], f[1].value] for f in task.failure_types[k]] + if isinstance(task, TestTask): + jft[k] = [[f[0], f[1].value] for f in task.failure_types[k]] + else: + jft[k] = [[f[0], f[1]] for f in task.failure_types[k]] jtask["failure_types"] = jft jtasks.append(jtask) write_json(save_tasks, jtasks) @@ -2262,6 +2336,7 @@ class Skipfails: """Adds compressed log for this task to bugid""" log_url = f"https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/{task_id}/artifacts/public/logs/live_backing.log" + self.vinfo(f"Retrieving full log for task: {task_id}") r = requests.get(log_url, headers=self.headers) if r.status_code != 200: self.error(f"Unable to get log for task: {task_id}") @@ -2561,7 +2636,7 @@ class Skipfails: if len(allpaths) > 0: return allpaths # cached (including self tests) error_url = f"https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/{task_id}/artifacts/public/test_info/reftest_errorsummary.log" - self.vinfo(f"Requesting reftest_errorsummary.log for task: {task_id}") + self.vinfo(f"Retrieving reftest_errorsummary.log for task: {task_id}") r = requests.get(error_url, headers=self.headers) if r.status_code != 200: self.error(f"Unable to get reftest_errorsummary.log for task: {task_id}") @@ -2687,33 +2762,47 @@ class Skipfails: comment += f"\nError log line {line_number}: {log_url}" return (bugid, comment, line_number) - def error_log_context(self, task_id: str, line_number: int) -> str: - delta: int = 10 + def error_log_context(self, revision: str, task_id: str, line_number: int) -> str: context: str = "" - log_url = f"https://firefoxci.taskcluster-artifacts.net/{task_id}/0/public/logs/live_backing.log" - r = requests.get(log_url, headers=self.headers) - if r.status_code != 200: - self.warning(f"Unable to get log for task: {task_id}") - return context - log: str = r.text - n: int = len(log) - i: int = 0 - j: int = log.find("\n", i) - if j < 0: - j = n - line: int = 1 - prefix: str - while i < n: - if line >= line_number - delta and line <= line_number + delta: - prefix = f"{line:6d}" - if line == line_number: - prefix = prefix.replace(" ", ">") - context += f"{prefix}: {log[i:j]}\n" - i = j + 1 - j = log.find("\n", i) + context_path: str = self.cached_path( + revision, f"context-{task_id}-{line_number}.txt" + ) + path = Path(context_path) + if path.exists(): + self.vinfo( + f"Reading cached error log context for revision: {revision} task-id: {task_id} line: {line_number}" + ) + context = path.read_text(encoding="utf-8") + else: + delta: int = 10 + log_url = f"https://firefoxci.taskcluster-artifacts.net/{task_id}/0/public/logs/live_backing.log" + self.vinfo( + f"Retrieving error log context for revision: {revision} task-id: {task_id} line: {line_number}" + ) + r = requests.get(log_url, headers=self.headers) + if r.status_code != 200: + self.warning(f"Unable to get log for task: {task_id}") + return context + log: str = r.text + n: int = len(log) + i: int = 0 + j: int = log.find("\n", i) if j < 0: j = n - line += 1 + line: int = 1 + prefix: str + while i < n: + if line >= line_number - delta and line <= line_number + delta: + prefix = f"{line:6d}" + if line == line_number: + prefix = prefix.replace(" ", ">") + context += f"{prefix}: {log[i:j]}\n" + i = j + 1 + j = log.find("\n", i) + if j < 0: + j = n + line += 1 + path.write_text(context, encoding="utf-8") return context def read_actions(self, meta_bug_id: int): @@ -2730,7 +2819,7 @@ class Skipfails: if k not in self.actions: # do not supercede newly created actions self.actions[k] = Action(**actions[k]) - def save_actions(self, meta_bug_id: int): + def write_actions(self, meta_bug_id: int): cache_dir = self.full_path(CACHE_DIR) meta_dir = os.path.join(cache_dir, str(meta_bug_id)) actions_path = os.path.join(meta_dir, "actions.json") diff --git a/testing/test/data/actions-carryover.json b/testing/test/data/actions-carryover.json @@ -0,0 +1,17 @@ +{ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml|.skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js|test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7": { + "bugid": "1111111", + "comment": "Disabled test due to failures in test file: \"browser_aboutNewTab_bookmarksToolbar.js\"", + "component": "", + "description": "", + "disposition": 1, + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "manifest": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "path": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "product": "", + "revision": "7cf7a9720f4ead03213f1799f3dcc00a413c7a02", + "skip_if": "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt && socketprocess_networking", + "summary": "", + "task_id": "BLpDT23eSfO-Xf_NLrMkCA" + } +} diff --git a/testing/test/data/actions-known.json b/testing/test/data/actions-known.json @@ -0,0 +1,32 @@ +{ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml|.skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js|test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7": { + "bugid": "1111111", + "comment": "Disabled test due to failures in test file: \"browser_aboutNewTab_bookmarksToolbar.js\"", + "component": "", + "description": "", + "disposition": 1, + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "manifest": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "path": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "product": "", + "revision": "7cf7a9720f4ead03213f1799f3dcc00a413c7a02", + "skip_if": "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt && socketprocess_networking", + "summary": "", + "task_id": "BLpDT23eSfO-Xf_NLrMkCA" + }, + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml|.skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_focus_document.js|test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y": { + "bugid": "1962169", + "comment": "Intermittent failure in manifest: \".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml\"\n in test: \"[browser_focus_document.js]\"\n added skip-if: \"os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt\"\nError log line 4028: https://treeherder.mozilla.org/logviewer?repo=try&job_id=531522970&lineNumber=4028\n 4018: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - _beginRemoveTab@chrome://browser/content/tabbrowser/tabbrowser.js:5202:14\n 4019: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - removeTab@chrome://browser/content/tabbrowser/tabbrowser.js:5031:15\n 4020: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - Tester_waitForWindowsState@chrome://mochikit/content/browser-test.js:484:18\n 4021: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - nextTest@chrome://mochikit/content/browser-test.js:1118:10\n 4022: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - async*testScope/test_finish/<@chrome://mochikit/content/browser-test.js:1947:25\n 4023: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - run@chrome://mochikit/content/browser-test.js:1867:9\n 4024: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - \n 4025: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - TEST-PASS | accessible/tests/browser/events/browser_focus_document.js | <browser> should be focused - \n 4026: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - TEST-PASS | accessible/tests/browser/events/browser_focus_document.js | window should be properly focused - \n 4027: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - Buffered messages finished\n>>4028: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - TEST-UNEXPECTED-FAIL | accessible/tests/browser/events/browser_focus_document.js | IME should be enabled - 0 == 1 - got 0, expected 1 (operator ==)\n 4029: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - Stack trace:\n 4030: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - is@resource://testing-common/SpecialPowersSandbox.sys.mjs:88:21\n 4031: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - @chrome://mochitests/content/browser/accessible/tests/browser/events/browser_focus_document.js:80:9\n 4032: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - execute@resource://testing-common/SpecialPowersSandbox.sys.mjs:139:12\n 4033: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - _spawnTask@resource://testing-common/SpecialPowersChild.sys.mjs:1618:15\n 4034: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - receiveMessage@resource://testing-common/SpecialPowersChild.sys.mjs:256:21\n 4035: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - JSActor query*receiveMessage@resource://testing-common/SpecialPowersParent.sys.mjs:1413:14\n 4036: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - JSActor query*spawn@resource://testing-common/SpecialPowersChild.sys.mjs:1545:17\n 4037: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - testLocalThenRemoteWithAutofocus@chrome://mochitests/content/browser/accessible/tests/browser/events/browser_focus_document.js:78:25\n 4038: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - async*accessibleTask/wrapped/<@chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js:636:15\n", + "component": "", + "description": "", + "disposition": 2, + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y", + "manifest": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "path": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_focus_document.js", + "product": "", + "revision": "7cf7a9720f4ead03213f1799f3dcc00a413c7a02", + "skip_if": "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt", + "summary": "", + "task_id": "BarnNoFwSCGQtnNGH-o08w" + } +} diff --git a/testing/test/data/actions-new.json b/testing/test/data/actions-new.json @@ -0,0 +1,47 @@ +{ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml|.skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js|test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7": { + "bugid": "1111111", + "comment": "Disabled test due to failures in test file: \"browser_aboutNewTab_bookmarksToolbar.js\"", + "component": "", + "description": "", + "disposition": 1, + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "manifest": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "path": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "product": "", + "revision": "7cf7a9720f4ead03213f1799f3dcc00a413c7a02", + "skip_if": "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt && socketprocess_networking", + "summary": "", + "task_id": "BLpDT23eSfO-Xf_NLrMkCA" + }, + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml|.skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_cross_process_csp_inheritance.js|test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3": { + "bugid": "TBD", + "comment": "Disabled test due to failures in test file: \"browser_cross_process_csp_inheritance.js\"\nError log line 12581: https://treeherder.mozilla.org/logviewer?repo=try&job_id=531523119&lineNumber=12581\n 12571: [task 2025-10-16T02:26:19.832+00:00] 02:26:19 INFO - *** End BrowserChrome Test Results ***\n 12572: [task 2025-10-16T02:26:19.855+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error.\n 12573: [task 2025-10-16T02:26:19.855+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error.\n 12574: [task 2025-10-16T02:26:19.855+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error.\n 12575: [task 2025-10-16T02:26:19.855+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error.\n 12576: [task 2025-10-16T02:26:19.856+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error.\n 12577: [task 2025-10-16T02:26:19.856+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error.\n 12578: [task 2025-10-16T02:26:19.856+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error.\n 12579: [task 2025-10-16T02:26:19.856+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error.\n 12580: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - TEST-INFO | Main app process: exit 0\n>12581: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - TEST-UNEXPECTED-FAIL | docshell/test/browser/browser_cross_process_csp_inheritance.js | Application shut down (without crashing) in the middle of a test!\n 12582: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - TEST-INFO took 46102ms\n 12583: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - runtests.py | Application ran for: 0:01:40.912547\n 12584: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - zombiecheck | Reading PID log: /tmp/tmpvmj_3tappidlog\n 12585: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3031\n 12586: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3032\n 12587: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3033\n 12588: [task 2025-10-16T02:26:19.858+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3035\n 12589: [task 2025-10-16T02:26:19.858+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3036\n 12590: [task 2025-10-16T02:26:19.858+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3037\n 12591: [task 2025-10-16T02:26:19.858+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3038\n", + "component": "General", + "description": "This bug covers excluded failing tests in the MANIFEST .skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml\n(generated by `mach manifest skip-fails`)", + "disposition": 3, + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3", + "manifest": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "path": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_cross_process_csp_inheritance.js", + "product": "Testing", + "revision": "7cf7a9720f4ead03213f1799f3dcc00a413c7a02", + "skip_if": "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt", + "summary": "MANIFEST .skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "task_id": "O304PG2lSOuef7JzFoSaow" + }, + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml|.skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_focus_document.js|test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y": { + "bugid": "1962169", + "comment": "Intermittent failure in manifest: \".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml\"\n in test: \"[browser_focus_document.js]\"\n added skip-if: \"os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt\"\nError log line 4028: https://treeherder.mozilla.org/logviewer?repo=try&job_id=531522970&lineNumber=4028\n 4018: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - _beginRemoveTab@chrome://browser/content/tabbrowser/tabbrowser.js:5202:14\n 4019: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - removeTab@chrome://browser/content/tabbrowser/tabbrowser.js:5031:15\n 4020: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - Tester_waitForWindowsState@chrome://mochikit/content/browser-test.js:484:18\n 4021: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - nextTest@chrome://mochikit/content/browser-test.js:1118:10\n 4022: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - async*testScope/test_finish/<@chrome://mochikit/content/browser-test.js:1947:25\n 4023: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - run@chrome://mochikit/content/browser-test.js:1867:9\n 4024: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - \n 4025: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - TEST-PASS | accessible/tests/browser/events/browser_focus_document.js | <browser> should be focused - \n 4026: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - TEST-PASS | accessible/tests/browser/events/browser_focus_document.js | window should be properly focused - \n 4027: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - Buffered messages finished\n>>4028: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - TEST-UNEXPECTED-FAIL | accessible/tests/browser/events/browser_focus_document.js | IME should be enabled - 0 == 1 - got 0, expected 1 (operator ==)\n 4029: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - Stack trace:\n 4030: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - is@resource://testing-common/SpecialPowersSandbox.sys.mjs:88:21\n 4031: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - @chrome://mochitests/content/browser/accessible/tests/browser/events/browser_focus_document.js:80:9\n 4032: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - execute@resource://testing-common/SpecialPowersSandbox.sys.mjs:139:12\n 4033: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - _spawnTask@resource://testing-common/SpecialPowersChild.sys.mjs:1618:15\n 4034: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - receiveMessage@resource://testing-common/SpecialPowersChild.sys.mjs:256:21\n 4035: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - JSActor query*receiveMessage@resource://testing-common/SpecialPowersParent.sys.mjs:1413:14\n 4036: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - JSActor query*spawn@resource://testing-common/SpecialPowersChild.sys.mjs:1545:17\n 4037: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - testLocalThenRemoteWithAutofocus@chrome://mochitests/content/browser/accessible/tests/browser/events/browser_focus_document.js:78:25\n 4038: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - async*accessibleTask/wrapped/<@chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js:636:15\n", + "component": "", + "description": "", + "disposition": 2, + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y", + "manifest": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "path": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_focus_document.js", + "product": "", + "revision": "7cf7a9720f4ead03213f1799f3dcc00a413c7a02", + "skip_if": "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt", + "summary": "", + "task_id": "BarnNoFwSCGQtnNGH-o08w" + } +} diff --git a/testing/test/data/browser-before.toml b/testing/test/data/browser-before.toml @@ -0,0 +1,7 @@ +[DEFAULT] + +["browser_aboutNewTab_bookmarksToolbar.js"] +skip-if = [ + "debug && verify-standalone", + "os == 'mac' && os_version == '11.20' && arch == 'aarch64'", # bug 1111111 +] diff --git a/testing/test/data/browser-carryover.toml b/testing/test/data/browser-carryover.toml @@ -0,0 +1,13 @@ +[DEFAULT] + +["browser_aboutNewTab_bookmarksToolbar.js"] +skip-if = [ + "debug && verify-standalone", + "os == 'mac' && os_version == '11.20' && arch == 'aarch64'", # bug 1111111 + "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt && socketprocess_networking", # bug 1111111 +] + +["browser_cross_process_csp_inheritance.js"] +https_first_disabled = true + +["browser_focus_document.js"] diff --git a/testing/test/data/browser-known.toml b/testing/test/data/browser-known.toml @@ -0,0 +1,14 @@ +[DEFAULT] + +["browser_aboutNewTab_bookmarksToolbar.js"] +skip-if = [ + "debug && verify-standalone", + "os == 'mac' && os_version == '11.20' && arch == 'aarch64'", # bug 1111111 + "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt && socketprocess_networking", # bug 1111111 +] + +["browser_cross_process_csp_inheritance.js"] +https_first_disabled = true + +["browser_focus_document.js"] +skip-if = ["os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt"] # Bug 1962169 diff --git a/testing/test/data/browser-new.toml b/testing/test/data/browser-new.toml @@ -0,0 +1,15 @@ +[DEFAULT] + +["browser_aboutNewTab_bookmarksToolbar.js"] +skip-if = [ + "debug && verify-standalone", + "os == 'mac' && os_version == '11.20' && arch == 'aarch64'", # bug 1111111 + "os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt && socketprocess_networking", # bug 1111111 +] + +["browser_cross_process_csp_inheritance.js"] +https_first_disabled = true +skip-if = ["os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt"] # Bug TBD + +["browser_focus_document.js"] +skip-if = ["os == 'mac' && os_version == '15.30' && arch == 'aarch64' && opt"] # Bug 1962169 diff --git a/testing/test/data/browser.toml b/testing/test/data/browser.toml @@ -0,0 +1,12 @@ +[DEFAULT] + +["browser_aboutNewTab_bookmarksToolbar.js"] +skip-if = [ + "debug && verify-standalone", + "os == 'mac' && os_version == '11.20' && arch == 'aarch64'", # bug 1111111 +] + +["browser_cross_process_csp_inheritance.js"] +https_first_disabled = true + +["browser_focus_document.js"] diff --git a/testing/test/data/context-BarnNoFwSCGQtnNGH-o08w-4028.txt b/testing/test/data/context-BarnNoFwSCGQtnNGH-o08w-4028.txt @@ -0,0 +1,21 @@ + 4018: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - _beginRemoveTab@chrome://browser/content/tabbrowser/tabbrowser.js:5202:14 + 4019: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - removeTab@chrome://browser/content/tabbrowser/tabbrowser.js:5031:15 + 4020: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - Tester_waitForWindowsState@chrome://mochikit/content/browser-test.js:484:18 + 4021: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - nextTest@chrome://mochikit/content/browser-test.js:1118:10 + 4022: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - async*testScope/test_finish/<@chrome://mochikit/content/browser-test.js:1947:25 + 4023: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - run@chrome://mochikit/content/browser-test.js:1867:9 + 4024: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - + 4025: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - TEST-PASS | accessible/tests/browser/events/browser_focus_document.js | <browser> should be focused - + 4026: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - TEST-PASS | accessible/tests/browser/events/browser_focus_document.js | window should be properly focused - + 4027: [task 2025-10-15T20:39:21.046+00:00] 20:39:21 INFO - Buffered messages finished +>>4028: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - TEST-UNEXPECTED-FAIL | accessible/tests/browser/events/browser_focus_document.js | IME should be enabled - 0 == 1 - got 0, expected 1 (operator ==) + 4029: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - Stack trace: + 4030: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - is@resource://testing-common/SpecialPowersSandbox.sys.mjs:88:21 + 4031: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - @chrome://mochitests/content/browser/accessible/tests/browser/events/browser_focus_document.js:80:9 + 4032: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - execute@resource://testing-common/SpecialPowersSandbox.sys.mjs:139:12 + 4033: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - _spawnTask@resource://testing-common/SpecialPowersChild.sys.mjs:1618:15 + 4034: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - receiveMessage@resource://testing-common/SpecialPowersChild.sys.mjs:256:21 + 4035: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - JSActor query*receiveMessage@resource://testing-common/SpecialPowersParent.sys.mjs:1413:14 + 4036: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - JSActor query*spawn@resource://testing-common/SpecialPowersChild.sys.mjs:1545:17 + 4037: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - testLocalThenRemoteWithAutofocus@chrome://mochitests/content/browser/accessible/tests/browser/events/browser_focus_document.js:78:25 + 4038: [task 2025-10-15T20:39:21.047+00:00] 20:39:21 INFO - async*accessibleTask/wrapped/<@chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js:636:15 diff --git a/testing/test/data/context-O304PG2lSOuef7JzFoSaow-12581.txt b/testing/test/data/context-O304PG2lSOuef7JzFoSaow-12581.txt @@ -0,0 +1,21 @@ + 12571: [task 2025-10-16T02:26:19.832+00:00] 02:26:19 INFO - *** End BrowserChrome Test Results *** + 12572: [task 2025-10-16T02:26:19.855+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error. + 12573: [task 2025-10-16T02:26:19.855+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error. + 12574: [task 2025-10-16T02:26:19.855+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error. + 12575: [task 2025-10-16T02:26:19.855+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error. + 12576: [task 2025-10-16T02:26:19.856+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error. + 12577: [task 2025-10-16T02:26:19.856+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error. + 12578: [task 2025-10-16T02:26:19.856+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error. + 12579: [task 2025-10-16T02:26:19.856+00:00] 02:26:19 INFO - GECKO(3028) | Exiting due to channel error. + 12580: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - TEST-INFO | Main app process: exit 0 +>12581: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - TEST-UNEXPECTED-FAIL | docshell/test/browser/browser_cross_process_csp_inheritance.js | Application shut down (without crashing) in the middle of a test! + 12582: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - TEST-INFO took 46102ms + 12583: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - runtests.py | Application ran for: 0:01:40.912547 + 12584: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - zombiecheck | Reading PID log: /tmp/tmpvmj_3tappidlog + 12585: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3031 + 12586: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3032 + 12587: [task 2025-10-16T02:26:19.857+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3033 + 12588: [task 2025-10-16T02:26:19.858+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3035 + 12589: [task 2025-10-16T02:26:19.858+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3036 + 12590: [task 2025-10-16T02:26:19.858+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3037 + 12591: [task 2025-10-16T02:26:19.858+00:00] 02:26:19 INFO - ==> process 3028 launched child process 3038 diff --git a/testing/test/data/failures.json b/testing/test/data/failures.json @@ -0,0 +1,108 @@ +{ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": { + "kind": "toml", + "label": { + "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y": { + "duration_median": 14957, + "duration_total": 45611, + "durations": { + "BarnNoFwSCGQtnNGH-o08w": 14289, + "C_XuuTJQR0GSDLSfBpNRAA": 14957, + "IUDOeGXiT6WaMLsq5pVuxw": 16365 + }, + "opt": false, + "path": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_focus_document.js": { + "classification": "disable_recommended", + "runs": { + "BarnNoFwSCGQtnNGH-o08w": { + "result": false + }, + "C_XuuTJQR0GSDLSfBpNRAA": { + "result": true + }, + "IUDOeGXiT6WaMLsq5pVuxw": { + "result": false + } + }, + "runs_failed": 2, + "runs_total": 3 + } + }, + "sum_by_label": { + "disable_recommended": 1 + } + }, + "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3": { + "duration_median": 98675, + "duration_total": 300822, + "durations": { + "GVQ_K2n_RBejehx1xRFoLQ": 103742, + "O304PG2lSOuef7JzFoSaow": 98405, + "bJvpe8XST6u8nvaHgclfdg": 98675 + }, + "opt": false, + "path": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_cross_process_csp_inheritance.js": { + "classification": "disable_recommended", + "runs": { + "GVQ_K2n_RBejehx1xRFoLQ": { + "result": true + }, + "O304PG2lSOuef7JzFoSaow": { + "result": false + }, + "bJvpe8XST6u8nvaHgclfdg": { + "result": false + } + }, + "runs_failed": 2, + "runs_total": 3 + } + }, + "sum_by_label": { + "disable_recommended": 1 + } + }, + "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7": { + "duration_median": 96251, + "duration_total": 478529, + "durations": { + "BLpDT23eSfO-Xf_NLrMkCA": 97294, + "KcghbItLQjK-d_-pUH8hXg": 96267, + "LoJI3MxsQOa4ksZcnjQNsg": 96251, + "QCOa0hGUQCirGQe7TdXjxQ": 93095, + "f5oEIL1sTR2FAxyJHmEreQ": 95622 + }, + "opt": false, + "path": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js": { + "classification": "disable_recommended", + "runs": { + "BLpDT23eSfO-Xf_NLrMkCA": { + "result": false + }, + "KcghbItLQjK-d_-pUH8hXg": { + "result": false + }, + "LoJI3MxsQOa4ksZcnjQNsg": { + "result": false + }, + "QCOa0hGUQCirGQe7TdXjxQ": { + "result": false + }, + "f5oEIL1sTR2FAxyJHmEreQ": { + "result": false + } + }, + "runs_failed": 5, + "runs_total": 5 + } + }, + "sum_by_label": { + "disable_recommended": 1 + } + } + } + } +} diff --git a/testing/test/data/job_ids.json b/testing/test/data/job_ids.json @@ -0,0 +1,5 @@ +{ + "1747180:BLpDT23eSfO-Xf_NLrMkCA": 531522979, + "1747180:BarnNoFwSCGQtnNGH-o08w": 531522970, + "1747180:O304PG2lSOuef7JzFoSaow": 531523119 +} diff --git a/testing/test/data/suggest-531522970.json b/testing/test/data/suggest-531522970.json @@ -0,0 +1,39 @@ +[ + { + "bugs": { + "all_others": [], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1962169, + "internal_id": 1956467, + "keywords": "intermittent-failure,regression,test-verify-fail", + "occurrences": null, + "resolution": "", + "status": "NEW", + "summary": "Intermittent accessible/tests/browser/events/browser_focus_document.js | single tracking bug", + "whiteboard": "" + } + ] + }, + "counter": 17, + "failure_new_in_rev": false, + "line_number": 4027, + "path_end": "accessible/tests/browser/events/browser_focus_document.js", + "search": "TEST-UNEXPECTED-FAIL | accessible/tests/browser/events/browser_focus_document.js | IME should be enabled - 0 == 1 - got 0, expected 1 (operator ==)", + "search_terms": ["browser_focus_document.js"] + }, + { + "bugs": { + "all_others": [], + "open_recent": [] + }, + "counter": 0, + "failure_new_in_rev": false, + "line_number": 7088, + "path_end": null, + "search": "[taskcluster:error] <nil>", + "search_terms": ["[taskcluster:error] <nil>"] + } +] diff --git a/testing/test/data/suggest-531522979.json b/testing/test/data/suggest-531522979.json @@ -0,0 +1,214 @@ +[ + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": 1775602, + "id": 1699069, + "internal_id": 1958097, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "DUPLICATE", + "status": "RESOLVED", + "summary": "Intermittent browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | Test timed out -", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": 1775602, + "id": 1992802, + "internal_id": 1967959, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "DUPLICATE", + "status": "RESOLVED", + "summary": "Perma [tier 2] browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | single tracking bug", + "whiteboard": "[collect_confirm_failure]" + }, + { + "crash_signature": "", + "dupe_of": 1775602, + "id": 1712870, + "internal_id": 1957345, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "DUPLICATE", + "status": "RESOLVED", + "summary": "Intermittent browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | application terminated with exit code 1", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1775602, + "internal_id": 1775602, + "keywords": "intermittent-failure,intermittent-testcase,leave-open", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | single tracking bug", + "whiteboard": "" + } + ] + }, + "counter": 242, + "failure_new_in_rev": false, + "line_number": 1596, + "path_end": "browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js", + "search": "TEST-UNEXPECTED-FAIL | browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | Uncaught exception in test bound test_with_newtabpage_disabled - at chrome://mochitests/content/browser/browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js:258 - TypeError: can't access property \"firstElementChild\", content.document.body is null", + "search_terms": ["browser_aboutNewTab_bookmarksToolbar.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": 1775602, + "id": 1699069, + "internal_id": 1958097, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "DUPLICATE", + "status": "RESOLVED", + "summary": "Intermittent browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | Test timed out -", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": 1775602, + "id": 1992802, + "internal_id": 1967959, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "DUPLICATE", + "status": "RESOLVED", + "summary": "Perma [tier 2] browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | single tracking bug", + "whiteboard": "[collect_confirm_failure]" + }, + { + "crash_signature": "", + "dupe_of": 1775602, + "id": 1712870, + "internal_id": 1957345, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "DUPLICATE", + "status": "RESOLVED", + "summary": "Intermittent browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | application terminated with exit code 1", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1775602, + "internal_id": 1775602, + "keywords": "intermittent-failure,intermittent-testcase,leave-open", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | single tracking bug", + "whiteboard": "" + } + ] + }, + "counter": 242, + "failure_new_in_rev": false, + "line_number": 1620, + "path_end": "browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js", + "search": "TEST-UNEXPECTED-FAIL | browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbar.js | Found an unexpected tab at the end of test run: about:newtab -", + "search_terms": ["browser_aboutNewTab_bookmarksToolbar.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": 1877642, + "id": 1784875, + "internal_id": 1959044, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "DUPLICATE", + "status": "RESOLVED", + "summary": "Intermittent dom/html/test/browser_fullscreen-tab-close-race.js | single tracking bug", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1877642, + "internal_id": 1877642, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent dom/base/test/fullscreen/browser_fullscreen-tab-close-race.js | single tracking bug", + "whiteboard": "[stockwell disabled]" + } + ] + }, + "counter": 41, + "failure_new_in_rev": false, + "line_number": 8678, + "path_end": "dom/base/test/fullscreen/browser_fullscreen-tab-close-race.js", + "search": "TEST-UNEXPECTED-FAIL | dom/base/test/fullscreen/browser_fullscreen-tab-close-race.js | Test timed out -", + "search_terms": ["browser_fullscreen-tab-close-race.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": 1877642, + "id": 1784875, + "internal_id": 1959044, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "DUPLICATE", + "status": "RESOLVED", + "summary": "Intermittent dom/html/test/browser_fullscreen-tab-close-race.js | single tracking bug", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1877642, + "internal_id": 1877642, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent dom/base/test/fullscreen/browser_fullscreen-tab-close-race.js | single tracking bug", + "whiteboard": "[stockwell disabled]" + } + ] + }, + "counter": 41, + "failure_new_in_rev": false, + "line_number": 8698, + "path_end": "dom/base/test/fullscreen/browser_fullscreen-tab-close-race.js", + "search": "TEST-UNEXPECTED-FAIL | dom/base/test/fullscreen/browser_fullscreen-tab-close-race.js | Application shut down (without crashing) in the middle of a test!", + "search_terms": ["browser_fullscreen-tab-close-race.js"] + }, + { + "bugs": { + "all_others": [], + "open_recent": [] + }, + "counter": 0, + "failure_new_in_rev": false, + "line_number": 14877, + "path_end": null, + "search": "[taskcluster:error] <nil>", + "search_terms": ["[taskcluster:error] <nil>"] + } +] diff --git a/testing/test/data/suggest-531523119.json b/testing/test/data/suggest-531523119.json @@ -0,0 +1,1170 @@ +[ + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1569205, + "internal_id": 1569205, + "keywords": "intermittent-failure,regression", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | Test timed out -", + "whiteboard": "[test isolation][stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1942074, + "internal_id": 1942074, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1976181, + "internal_id": 1961922, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1912894, + "internal_id": 1912894, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1923548, + "internal_id": 1923548, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 848943, + "internal_id": 848943, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "FIXED", + "status": "RESOLVED", + "summary": "Frequent components/search/test/browser_contextmenu.js | Check context menu label - Got Search Google for \"open-suse.ru)\", expected Search Foo for \"test search\" | Checking context menu search URL - Got http://mochi.test:8888/browser/browser/comp...", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1812010, + "internal_id": 1812010, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "WORKSFORME", + "status": "RESOLVED", + "summary": "Intermittent comm/mail/components/im/test/browser/browser_contextMenu.js | [\"Component not initialized\" nsresult: \"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)\" location: \"resource:///modules/imCore.sys.mjs :: getProtocolById :: line 365\"]", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1853186, + "internal_id": 1853186, + "keywords": "intermittent-failure,intermittent-testcase,leave-open", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent browser/base/content/test/contextMenu/browser_contextmenu.js | single tracking bug", + "whiteboard": "[stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1992053, + "internal_id": 1937944, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "NEW", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "[collect_confirm_failure]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1965881, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967450, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967453, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1959755, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent TV TinderboxPrint: Per-test run of .../tests/browser_contextMenu.js<br/>: FAILURE", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1964931, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/viewsource/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1960788, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 513558, + "internal_id": 1967408, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent linux browser/base/content/test/contextMenu/browser_contextmenu.js | \"checking item #10 (context-selectall) enabled state - got false, expected true\" and many similar failures", + "whiteboard": "[stockwell disabled][test disabled on linux: comment 822]" + } + ] + }, + "counter": 9, + "failure_new_in_rev": false, + "line_number": 1575, + "path_end": "browser/base/content/test/contextMenu/browser_contextmenu.js", + "search": "TEST-UNEXPECTED-FAIL | browser/base/content/test/contextMenu/browser_contextmenu.js | checking item #10 (context-viewsource) name - Got \"context-ask-chat\", expected \"context-viewsource\"", + "search_terms": ["browser_contextmenu.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1569205, + "internal_id": 1569205, + "keywords": "intermittent-failure,regression", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | Test timed out -", + "whiteboard": "[test isolation][stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1942074, + "internal_id": 1942074, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1976181, + "internal_id": 1961922, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1912894, + "internal_id": 1912894, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1923548, + "internal_id": 1923548, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 848943, + "internal_id": 848943, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "FIXED", + "status": "RESOLVED", + "summary": "Frequent components/search/test/browser_contextmenu.js | Check context menu label - Got Search Google for \"open-suse.ru)\", expected Search Foo for \"test search\" | Checking context menu search URL - Got http://mochi.test:8888/browser/browser/comp...", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1812010, + "internal_id": 1812010, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "WORKSFORME", + "status": "RESOLVED", + "summary": "Intermittent comm/mail/components/im/test/browser/browser_contextMenu.js | [\"Component not initialized\" nsresult: \"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)\" location: \"resource:///modules/imCore.sys.mjs :: getProtocolById :: line 365\"]", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1853186, + "internal_id": 1853186, + "keywords": "intermittent-failure,intermittent-testcase,leave-open", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent browser/base/content/test/contextMenu/browser_contextmenu.js | single tracking bug", + "whiteboard": "[stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1992053, + "internal_id": 1937944, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "NEW", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "[collect_confirm_failure]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1965881, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967450, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967453, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1959755, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent TV TinderboxPrint: Per-test run of .../tests/browser_contextMenu.js<br/>: FAILURE", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1964931, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/viewsource/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1960788, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 513558, + "internal_id": 1967408, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent linux browser/base/content/test/contextMenu/browser_contextmenu.js | \"checking item #10 (context-selectall) enabled state - got false, expected true\" and many similar failures", + "whiteboard": "[stockwell disabled][test disabled on linux: comment 822]" + } + ] + }, + "counter": 9, + "failure_new_in_rev": false, + "line_number": 1590, + "path_end": "browser/base/content/test/contextMenu/browser_contextmenu.js", + "search": "TEST-UNEXPECTED-FAIL | browser/base/content/test/contextMenu/browser_contextmenu.js | checking item #11 (context-inspect-a11y) name - Got \"\", expected \"context-inspect-a11y\"", + "search_terms": ["browser_contextmenu.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1569205, + "internal_id": 1569205, + "keywords": "intermittent-failure,regression", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | Test timed out -", + "whiteboard": "[test isolation][stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1942074, + "internal_id": 1942074, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1976181, + "internal_id": 1961922, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1912894, + "internal_id": 1912894, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1923548, + "internal_id": 1923548, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 848943, + "internal_id": 848943, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "FIXED", + "status": "RESOLVED", + "summary": "Frequent components/search/test/browser_contextmenu.js | Check context menu label - Got Search Google for \"open-suse.ru)\", expected Search Foo for \"test search\" | Checking context menu search URL - Got http://mochi.test:8888/browser/browser/comp...", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1812010, + "internal_id": 1812010, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "WORKSFORME", + "status": "RESOLVED", + "summary": "Intermittent comm/mail/components/im/test/browser/browser_contextMenu.js | [\"Component not initialized\" nsresult: \"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)\" location: \"resource:///modules/imCore.sys.mjs :: getProtocolById :: line 365\"]", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1853186, + "internal_id": 1853186, + "keywords": "intermittent-failure,intermittent-testcase,leave-open", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent browser/base/content/test/contextMenu/browser_contextmenu.js | single tracking bug", + "whiteboard": "[stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1992053, + "internal_id": 1937944, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "NEW", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "[collect_confirm_failure]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1965881, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967450, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967453, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1959755, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent TV TinderboxPrint: Per-test run of .../tests/browser_contextMenu.js<br/>: FAILURE", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1964931, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/viewsource/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1960788, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 513558, + "internal_id": 1967408, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent linux browser/base/content/test/contextMenu/browser_contextmenu.js | \"checking item #10 (context-selectall) enabled state - got false, expected true\" and many similar failures", + "whiteboard": "[stockwell disabled][test disabled on linux: comment 822]" + } + ] + }, + "counter": 9, + "failure_new_in_rev": false, + "line_number": 1604, + "path_end": "browser/base/content/test/contextMenu/browser_contextmenu.js", + "search": "TEST-UNEXPECTED-FAIL | browser/base/content/test/contextMenu/browser_contextmenu.js | checking item #11 (context-inspect-a11y) enabled state - Got null, expected true", + "search_terms": ["browser_contextmenu.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1569205, + "internal_id": 1569205, + "keywords": "intermittent-failure,regression", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | Test timed out -", + "whiteboard": "[test isolation][stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1942074, + "internal_id": 1942074, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1976181, + "internal_id": 1961922, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1912894, + "internal_id": 1912894, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1923548, + "internal_id": 1923548, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 848943, + "internal_id": 848943, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "FIXED", + "status": "RESOLVED", + "summary": "Frequent components/search/test/browser_contextmenu.js | Check context menu label - Got Search Google for \"open-suse.ru)\", expected Search Foo for \"test search\" | Checking context menu search URL - Got http://mochi.test:8888/browser/browser/comp...", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1812010, + "internal_id": 1812010, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "WORKSFORME", + "status": "RESOLVED", + "summary": "Intermittent comm/mail/components/im/test/browser/browser_contextMenu.js | [\"Component not initialized\" nsresult: \"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)\" location: \"resource:///modules/imCore.sys.mjs :: getProtocolById :: line 365\"]", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1853186, + "internal_id": 1853186, + "keywords": "intermittent-failure,intermittent-testcase,leave-open", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent browser/base/content/test/contextMenu/browser_contextmenu.js | single tracking bug", + "whiteboard": "[stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1992053, + "internal_id": 1937944, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "NEW", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "[collect_confirm_failure]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1965881, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967450, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967453, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1959755, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent TV TinderboxPrint: Per-test run of .../tests/browser_contextMenu.js<br/>: FAILURE", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1964931, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/viewsource/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1960788, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 513558, + "internal_id": 1967408, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent linux browser/base/content/test/contextMenu/browser_contextmenu.js | \"checking item #10 (context-selectall) enabled state - got false, expected true\" and many similar failures", + "whiteboard": "[stockwell disabled][test disabled on linux: comment 822]" + } + ] + }, + "counter": 6, + "failure_new_in_rev": false, + "line_number": 1618, + "path_end": "browser/base/content/test/contextMenu/browser_contextmenu.js", + "search": "TEST-UNEXPECTED-FAIL | browser/base/content/test/contextMenu/browser_contextmenu.js | checking item #12 (context-inspect) name - Got \"context-viewsource\", expected \"context-inspect\"", + "search_terms": ["browser_contextmenu.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1569205, + "internal_id": 1569205, + "keywords": "intermittent-failure,regression", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | Test timed out -", + "whiteboard": "[test isolation][stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1942074, + "internal_id": 1942074, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1976181, + "internal_id": 1961922, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1912894, + "internal_id": 1912894, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1923548, + "internal_id": 1923548, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 848943, + "internal_id": 848943, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "FIXED", + "status": "RESOLVED", + "summary": "Frequent components/search/test/browser_contextmenu.js | Check context menu label - Got Search Google for \"open-suse.ru)\", expected Search Foo for \"test search\" | Checking context menu search URL - Got http://mochi.test:8888/browser/browser/comp...", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1812010, + "internal_id": 1812010, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "WORKSFORME", + "status": "RESOLVED", + "summary": "Intermittent comm/mail/components/im/test/browser/browser_contextMenu.js | [\"Component not initialized\" nsresult: \"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)\" location: \"resource:///modules/imCore.sys.mjs :: getProtocolById :: line 365\"]", + "whiteboard": "" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1853186, + "internal_id": 1853186, + "keywords": "intermittent-failure,intermittent-testcase,leave-open", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent browser/base/content/test/contextMenu/browser_contextmenu.js | single tracking bug", + "whiteboard": "[stockwell disabled]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 1992053, + "internal_id": 1937944, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "NEW", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "[collect_confirm_failure]" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1965881, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967450, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1967453, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent browser/components/search/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1959755, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent TV TinderboxPrint: Per-test run of .../tests/browser_contextMenu.js<br/>: FAILURE", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1964931, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/viewsource/test/browser/browser_contextmenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1960788, + "keywords": "", + "occurrences": 0, + "resolution": "", + "status": "", + "summary": "Intermittent toolkit/components/pictureinpicture/tests/browser_contextMenu.js | single tracking bug", + "whiteboard": "" + }, + { + "crash_signature": "", + "dupe_of": null, + "id": 513558, + "internal_id": 1967408, + "keywords": "intermittent-failure", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent linux browser/base/content/test/contextMenu/browser_contextmenu.js | \"checking item #10 (context-selectall) enabled state - got false, expected true\" and many similar failures", + "whiteboard": "[stockwell disabled][test disabled on linux: comment 822]" + } + ] + }, + "counter": 121, + "failure_new_in_rev": false, + "line_number": 1633, + "path_end": "browser/base/content/test/contextMenu/browser_contextmenu.js", + "search": "TEST-UNEXPECTED-FAIL | browser/base/content/test/contextMenu/browser_contextmenu.js | checking expected number of menu entries - Got 30, expected 26", + "search_terms": ["browser_contextmenu.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1972397, + "internal_id": 1960830, + "keywords": "intermittent-failure,intermittent-testcase,regression", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent [tier 2] docshell/test/browser/browser_cross_process_csp_inheritance.js | single tracking bug", + "whiteboard": "[confirmed_failure]" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1960803, + "keywords": "", + "occurrences": 2, + "resolution": "", + "status": "", + "summary": "Intermittent docshell/test/browser/browser_cross_process_csp_inheritance.js | single tracking bug", + "whiteboard": "" + } + ] + }, + "counter": 2, + "failure_new_in_rev": false, + "line_number": 12562, + "path_end": "docshell/test/browser/browser_cross_process_csp_inheritance.js", + "search": "TEST-UNEXPECTED-FAIL | docshell/test/browser/browser_cross_process_csp_inheritance.js | Test timed out -", + "search_terms": ["browser_cross_process_csp_inheritance.js"] + }, + { + "bugs": { + "all_others": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1972397, + "internal_id": 1960830, + "keywords": "intermittent-failure,intermittent-testcase,regression", + "occurrences": null, + "resolution": "INCOMPLETE", + "status": "RESOLVED", + "summary": "Intermittent [tier 2] docshell/test/browser/browser_cross_process_csp_inheritance.js | single tracking bug", + "whiteboard": "[confirmed_failure]" + } + ], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": null, + "internal_id": 1960803, + "keywords": "", + "occurrences": 2, + "resolution": "", + "status": "", + "summary": "Intermittent docshell/test/browser/browser_cross_process_csp_inheritance.js | single tracking bug", + "whiteboard": "" + } + ] + }, + "counter": 2, + "failure_new_in_rev": false, + "line_number": 12580, + "path_end": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_cross_process_csp_inheritance.js", + "search": "TEST-UNEXPECTED-FAIL | docshell/test/browser/browser_cross_process_csp_inheritance.js | Application shut down (without crashing) in the middle of a test!", + "search_terms": ["browser_cross_process_csp_inheritance.js"] + }, + { + "bugs": { + "all_others": [], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1975818, + "internal_id": 1961074, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent dom/tests/browser/browser_persist_mixed_content_image.js | single tracking bug", + "whiteboard": "" + } + ] + }, + "counter": 8, + "failure_new_in_rev": false, + "line_number": 16083, + "path_end": "dom/tests/browser/browser_persist_mixed_content_image.js", + "search": "TEST-UNEXPECTED-FAIL | dom/tests/browser/browser_persist_mixed_content_image.js | Test timed out -", + "search_terms": ["browser_persist_mixed_content_image.js"] + }, + { + "bugs": { + "all_others": [], + "open_recent": [ + { + "crash_signature": "", + "dupe_of": null, + "id": 1975818, + "internal_id": 1961074, + "keywords": "intermittent-failure,intermittent-testcase", + "occurrences": null, + "resolution": "", + "status": "REOPENED", + "summary": "Intermittent dom/tests/browser/browser_persist_mixed_content_image.js | single tracking bug", + "whiteboard": "" + } + ] + }, + "counter": 8, + "failure_new_in_rev": false, + "line_number": 16101, + "path_end": "dom/tests/browser/browser_persist_mixed_content_image.js", + "search": "TEST-UNEXPECTED-FAIL | dom/tests/browser/browser_persist_mixed_content_image.js | Application shut down (without crashing) in the middle of a test!", + "search_terms": ["browser_persist_mixed_content_image.js"] + }, + { + "bugs": { + "all_others": [], + "open_recent": [] + }, + "counter": 0, + "failure_new_in_rev": false, + "line_number": 23022, + "path_end": null, + "search": "[taskcluster:error] <nil>", + "search_terms": ["[taskcluster:error] <nil>"] + } +] diff --git a/testing/test/data/tasks.json b/testing/test/data/tasks.json @@ -0,0 +1,567 @@ +[ + { + "duration": 1360945, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "socketprocess_networking" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ], + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ] + ] + }, + "id": "BLpDT23eSfO-Xf_NLrMkCA", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "result": "failed", + "results": [ + { + "duration": 97294, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-chrome", + "test-type": "mochitest", + "test-variant": "socketprocess_networking", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 1286734, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "socketprocess_networking" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ], + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ] + ] + }, + "id": "KcghbItLQjK-d_-pUH8hXg", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "result": "failed", + "results": [ + { + "duration": 96267, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-chrome", + "test-type": "mochitest", + "test-variant": "socketprocess_networking", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 1245167, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "socketprocess_networking" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ], + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ] + ] + }, + "id": "LoJI3MxsQOa4ksZcnjQNsg", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "result": "failed", + "results": [ + { + "duration": 96251, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-chrome", + "test-type": "mochitest", + "test-variant": "socketprocess_networking", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 1264164, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "socketprocess_networking" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ], + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ] + ] + }, + "id": "QCOa0hGUQCirGQe7TdXjxQ", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "result": "failed", + "results": [ + { + "duration": 93095, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-chrome", + "test-type": "mochitest", + "test-variant": "socketprocess_networking", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 1246786, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "socketprocess_networking" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_aboutNewTab_bookmarksToolbar.js", + "generic" + ] + ] + }, + "id": "f5oEIL1sTR2FAxyJHmEreQ", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "result": "failed", + "results": [ + { + "duration": 95622, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-spi-nw-7", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-chrome", + "test-type": "mochitest", + "test-variant": "socketprocess_networking", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 330357, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "no_variant" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_focus_document.js", + "generic" + ] + ] + }, + "id": "BarnNoFwSCGQtnNGH-o08w", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y", + "result": "failed", + "results": [ + { + "duration": 14289, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-a11y", + "test-type": "mochitest", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 344454, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "no_variant" + }, + "failure_types": {}, + "id": "C_XuuTJQR0GSDLSfBpNRAA", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y", + "result": "passed", + "results": [ + { + "duration": 14957, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": true + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-a11y", + "test-type": "mochitest", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 349635, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "no_variant" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_focus_document.js", + "generic" + ] + ] + }, + "id": "IUDOeGXiT6WaMLsq5pVuxw", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y", + "result": "failed", + "results": [ + { + "duration": 16365, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-a11y", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-a11y", + "test-type": "mochitest", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 1218749, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "no_variant" + }, + "failure_types": {}, + "id": "GVQ_K2n_RBejehx1xRFoLQ", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3", + "result": "passed", + "results": [ + { + "duration": 103742, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": true + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-chrome", + "test-type": "mochitest", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 1249864, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "no_variant" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_cross_process_csp_inheritance.js", + "generic" + ], + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_cross_process_csp_inheritance.js", + "generic" + ] + ] + }, + "id": "O304PG2lSOuef7JzFoSaow", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3", + "result": "failed", + "results": [ + { + "duration": 98405, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-chrome", + "test-type": "mochitest", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + }, + { + "duration": 1212673, + "errors": null, + "extra": { + "arch": "aarch64", + "bits": "64", + "build": null, + "build_type": "opt", + "debug": false, + "display": null, + "opt": true, + "os": "mac", + "os_version": "15.30", + "runtime": "no_variant" + }, + "failure_types": { + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml": [ + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_cross_process_csp_inheritance.js", + "generic" + ], + [ + ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser_cross_process_csp_inheritance.js", + "generic" + ] + ] + }, + "id": "bJvpe8XST6u8nvaHgclfdg", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3", + "result": "failed", + "results": [ + { + "duration": 98675, + "group": ".skip_fails_cache/7cf7a9720f4ead03213f1799f3dcc00a413c7a02/browser.toml", + "ok": false + } + ], + "state": "completed", + "tags": { + "createdForUser": "ci@mozilla.com", + "kind": "mochitest", + "label": "test-macosx1500-aarch64-shippable/opt-mochitest-browser-chrome-3", + "os": "macosx", + "project": "try", + "retrigger": "true", + "test-platform": "macosx1500-aarch64-shippable/opt", + "test-suite": "mochitest-browser-chrome", + "test-type": "mochitest", + "tests_grouped": "1", + "trust-domain": "gecko", + "worker-implementation": "generic-worker" + }, + "tier": 2 + } +] diff --git a/testing/test/python.toml b/testing/test/python.toml @@ -4,6 +4,9 @@ subsuite = "skip-fails" ["test_failedplatform.py"] requirements = "testing/test/test_skipfails.txt" +["test_modes.py"] +requirements = "testing/test/test_skipfails.txt" + ["test_parse_reftest.py"] requirements = "testing/test/test_skipfails.txt" diff --git a/testing/test/test_modes.py b/testing/test/test_modes.py @@ -0,0 +1,235 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import os +from pathlib import Path + +import mozunit +import pytest +from manifestparser.toml import Mode +from skipfails import FAILURE_RATIO, Skipfails, read_json, write_json + +DATA_PATH = Path(__file__).with_name("data") +REVISION: str = "7cf7a9720f4ead03213f1799f3dcc00a413c7a02" +RETRIEVING = "Retrieving" +TRY_URL: str = f"https://treeherder.mozilla.org/jobs?repo=try&revision={REVISION}" +META_BUG_ID: str = "1991977" +TEXT_FILE = 0 +JSON_FILE = 1 +TASKS_FILE = 1 + + +def clear_cache(sf: Skipfails): + sf.clear_cache = META_BUG_ID + sf.check_cache() + sf.clear_cache = REVISION + sf.check_cache() + + +def copy_to_cache(skipfails: Skipfails, filename: str, kind: int = JSON_FILE): + from_path = DATA_PATH.joinpath(filename) + to_path = skipfails.cached_path(REVISION, filename) + if kind == TEXT_FILE: + with open(from_path) as from_fp, open(to_path, "w") as to_fp: + to_fp.write(from_fp.read()) + elif kind == JSON_FILE: + data = read_json(from_path) + write_json(to_path, data) + else: # TASKS_FILE + data = skipfails.read_tasks(from_path) + skipfails.write_tasks(to_path, data) + + +def cache_vs_expected( + skipfails: Skipfails, + to_filename: str, + from_filename: str = "", + cache_dir: str = REVISION, +): + from_path = DATA_PATH.joinpath(from_filename if from_filename else to_filename) + to_path = skipfails.cached_path(cache_dir, to_filename) + with open(from_path) as from_fp, open(to_path) as to_fp: + from_data = from_fp.read() + to_data = to_fp.read() + return (to_data, from_data) + + +@pytest.fixture(scope="session") +def skipfails(): + sf = Skipfails( + None, # command_context + TRY_URL, + True, # verbose + "disable", # bugzilla + False, # dry_run + False, # turbo + False, # implicit_vars + None, # new_version + None, # task_id + None, # user_agent + None, # clear_cache + ) + clear_cache(sf) + yield sf + + +def test_carryover_mode(skipfails: Skipfails, capsys): + "Test --carryover" + + copy_to_cache(skipfails, "tasks.json", TASKS_FILE) + copy_to_cache(skipfails, "job_ids.json") + copy_to_cache(skipfails, "browser.toml", TEXT_FILE) + copy_to_cache(skipfails, "suggest-531522970.json") + copy_to_cache(skipfails, "suggest-531522979.json") + copy_to_cache(skipfails, "suggest-531523119.json") + copy_to_cache(skipfails, "context-O304PG2lSOuef7JzFoSaow-12581.txt", TEXT_FILE) + copy_to_cache(skipfails, "context-BarnNoFwSCGQtnNGH-o08w-4028.txt", TEXT_FILE) + + mode: int = Mode.CARRYOVER + skipfails.run( + META_BUG_ID, + None, # save_tasks + None, # use_tasks + None, # save_failures + None, # use_failures + -1, # max_failures + FAILURE_RATIO, # failure_ratio: float = FAILURE_RATIO, + mode, + ) + + out, err = capsys.readouterr() + # save STDERR for debugging (don't clear cache at the end) + err_path = skipfails.cached_path(REVISION, "err-carryover.log") + with open(err_path, "w") as fp: + fp.write(err) + mode_string = "Carryover mode: only platform match conditions considered, no bugs created or updated" + assert mode_string in err + assert RETRIEVING not in err + + failures, failures_expected = cache_vs_expected(skipfails, "failures.json") + assert failures == failures_expected + + manifest, manifest_expected = cache_vs_expected( + skipfails, "browser.toml", "browser-carryover.toml" + ) + assert manifest == manifest_expected + + actions, actions_expected = cache_vs_expected( + skipfails, "actions.json", "actions-carryover.json", META_BUG_ID + ) + assert actions == actions_expected + + +def test_known_intermittents_mode(skipfails: Skipfails, capsys): + "Test --known-intermittents" + + mode: int = Mode.KNOWN_INTERMITTENT + skipfails.run( + META_BUG_ID, + None, # save_tasks + None, # use_tasks + None, # save_failures + None, # use_failures + -1, # max_failures + FAILURE_RATIO, # failure_ratio: float = FAILURE_RATIO, + mode, + ) + + out, err = capsys.readouterr() + # save STDERR for debugging (don't clear cache at the end) + err_path = skipfails.cached_path(REVISION, "err-known.log") + with open(err_path, "w") as fp: + fp.write(err) + mode_string = "Known Intermittents mode: only failures with known intermittents considered, no bugs created or updated" + assert mode_string in err + assert RETRIEVING not in err + + manifest, manifest_expected = cache_vs_expected( + skipfails, "browser.toml", "browser-known.toml" + ) + assert manifest == manifest_expected + + actions, actions_expected = cache_vs_expected( + skipfails, "actions.json", "actions-known.json", META_BUG_ID + ) + assert actions == actions_expected + + +def test_new_failures_mode(skipfails: Skipfails, capsys): + "Test --new-failures" + + mode: int = Mode.NEW_FAILURE + skipfails.run( + META_BUG_ID, + None, # save_tasks + None, # use_tasks + None, # save_failures + None, # use_failures + -1, # max_failures + FAILURE_RATIO, # failure_ratio: float = FAILURE_RATIO, + mode, + ) + + out, err = capsys.readouterr() + # save STDERR for debugging (don't clear cache at the end) + err_path = skipfails.cached_path(REVISION, "err-new.log") + with open(err_path, "w") as fp: + fp.write(err) + mode_string = "New failures mode: Will only edit manifest skip-if conditions for new failures (i.e. not carryover nor known intermittents)" + assert mode_string in err + assert RETRIEVING not in err + + manifest, manifest_expected = cache_vs_expected( + skipfails, "browser.toml", "browser-new.toml" + ) + assert manifest == manifest_expected + + actions, actions_expected = cache_vs_expected( + skipfails, "actions.json", "actions-new.json", META_BUG_ID + ) + assert actions == actions_expected + + +def test_replace_tbd_mode(skipfails: Skipfails, capsys): + "Test --replace-tbd" + + mode: int = Mode.REPLACE_TBD + skipfails.run( + META_BUG_ID, + None, # save_tasks + None, # use_tasks + None, # save_failures + None, # use_failures + -1, # max_failures + FAILURE_RATIO, # failure_ratio: float = FAILURE_RATIO, + mode, + ) + + out, err = capsys.readouterr() + # save STDERR for debugging (don't clear cache at the end) + err_path = skipfails.cached_path(REVISION, "err-replace.log") + with open(err_path, "w") as fp: + fp.write(err) + mode_string = "Replace TBD mode: Will only edit manifest skip-if conditions for new failures by filing new bugs and replacing TBD with actual bug number." + assert mode_string in err + assert RETRIEVING not in err + + carryover = "Bugzilla has been disabled: comment not added to Bug 1111111" + assert carryover in err + + intermittent = "Error log line 4028: https://treeherder.mozilla.org/logviewer?repo=try&job_id=531522970&lineNumber=4028" + assert intermittent in err + + new = "Error log line 12581: https://treeherder.mozilla.org/logviewer?repo=try&job_id=531523119&lineNumber=12581" + assert new in err + + +def test_cleanup(skipfails: Skipfails): + clear_cache(skipfails) + tasks_cached = skipfails.cached_path(REVISION, "tasks.json") + assert not os.path.exists(tasks_cached) + + +if __name__ == "__main__": + mozunit.main() diff --git a/testing/test/test_skipfails.py b/testing/test/test_skipfails.py @@ -8,11 +8,38 @@ from pathlib import Path import pytest from mozunit import main -from skipfails import Kind, Skipfails, read_json +from skipfails import Kind, Skipfails, SkipfailsMode, read_json DATA_PATH = Path(__file__).with_name("data") +def test_from_flags(): + carryover_mode: bool = True + known_intermittents_mode: bool = True + new_failures_mode: bool = True + replace_tbd_mode: bool = True + mode: int = 10 + with pytest.raises(Exception) as e: + mode = SkipfailsMode.from_flags( + carryover_mode, + known_intermittents_mode, + new_failures_mode, + replace_tbd_mode, + ) + assert ( + str(e.value) + == "may not specifiy more than one mode: --carryover --known-intermittents --new-failures --replace-tbd" + ) + + carryover_mode = False + known_intermittents_mode = False + new_failures_mode = False + mode = SkipfailsMode.from_flags( + carryover_mode, known_intermittents_mode, new_failures_mode, replace_tbd_mode + ) + assert mode == SkipfailsMode.REPLACE_TBD + + def test_get_revision(): """Test get_revision"""