summaryrefslogtreecommitdiffstats
path: root/taskcluster/test/test_autoland_backstop.py
diff options
context:
space:
mode:
Diffstat (limited to 'taskcluster/test/test_autoland_backstop.py')
-rw-r--r--taskcluster/test/test_autoland_backstop.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/taskcluster/test/test_autoland_backstop.py b/taskcluster/test/test_autoland_backstop.py
new file mode 100644
index 0000000000..55ea11ca4d
--- /dev/null
+++ b/taskcluster/test/test_autoland_backstop.py
@@ -0,0 +1,56 @@
+# Any copyright is dedicated to the public domain.
+# http://creativecommons.org/publicdomain/zero/1.0/
+
+import pytest
+from mozunit import main
+
+pytestmark = pytest.mark.slow
+PARAMS = {
+ "backstop": True,
+ "head_repository": "https://hg.mozilla.org/integration/autoland",
+ "project": "autoland",
+}
+
+
+def test_generate_graph(optimized_task_graph):
+ """Simply tests that generating the graph does not fail."""
+ assert len(optimized_task_graph.tasks) > 0
+
+
+@pytest.mark.parametrize(
+ "func,min_expected",
+ (
+ pytest.param(
+ lambda t: t.kind == "build" and "fuzzing" in t.attributes["build_platform"],
+ 5,
+ id="fuzzing builds",
+ ),
+ ),
+)
+def test_tasks_are_scheduled(optimized_task_graph, filter_tasks, func, min_expected):
+ """Ensure the specified tasks are scheduled on mozilla-central."""
+ tasks = [t.label for t in filter_tasks(optimized_task_graph, func)]
+ assert len(tasks) >= min_expected
+
+
+@pytest.mark.parametrize(
+ "func",
+ (
+ pytest.param(
+ lambda t: t.kind == "build" and "ccov" in t.attributes["build_platform"],
+ id="no ccov builds",
+ ),
+ ),
+)
+def test_tasks_are_not_scheduled(
+ optimized_task_graph, filter_tasks, print_dependents, func
+):
+ """Ensure the specified tasks are not scheduled on autoland."""
+ tasks = [t.label for t in filter_tasks(optimized_task_graph, func)]
+ for t in tasks:
+ print_dependents(optimized_task_graph, t)
+ assert tasks == []
+
+
+if __name__ == "__main__":
+ main()