summaryrefslogtreecommitdiffstats
path: root/testing/mozbase/mozrunner/tests/test_crash.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/mozbase/mozrunner/tests/test_crash.py')
-rw-r--r--testing/mozbase/mozrunner/tests/test_crash.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/testing/mozbase/mozrunner/tests/test_crash.py b/testing/mozbase/mozrunner/tests/test_crash.py
new file mode 100644
index 0000000000..820851aa1c
--- /dev/null
+++ b/testing/mozbase/mozrunner/tests/test_crash.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# 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/.
+
+from unittest.mock import patch
+
+import mozunit
+import pytest
+
+
+@pytest.mark.parametrize("logger", [True, False])
+def test_crash_count_with_or_without_logger(runner, logger):
+ if runner.app == "chrome":
+ pytest.xfail("crash checking not implemented for ChromeRunner")
+
+ if not logger:
+ runner.logger = None
+ fn = "check_for_crashes"
+ else:
+ fn = "log_crashes"
+
+ with patch("mozcrash.{}".format(fn), return_value=2) as mock:
+ assert runner.crashed == 0
+ assert runner.check_for_crashes() == 2
+ assert runner.crashed == 2
+ assert runner.check_for_crashes() == 2
+ assert runner.crashed == 4
+
+ mock.return_value = 0
+ assert runner.check_for_crashes() == 0
+ assert runner.crashed == 4
+
+
+if __name__ == "__main__":
+ mozunit.main()