| #!/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/. |
| |
| import signal |
| |
| import mozrunnertest |
| |
| |
| class MozrunnerStopTestCase(mozrunnertest.MozrunnerTestCase): |
| |
| def test_stop_process(self): |
| """Stop the process and test properties""" |
| self.runner.start() |
| returncode = self.runner.stop() |
| |
| self.assertFalse(self.runner.is_running()) |
| self.assertNotIn(returncode, [None, 0]) |
| self.assertEqual(self.runner.returncode, returncode) |
| self.assertIsNotNone(self.runner.process_handler) |
| |
| self.assertEqual(self.runner.wait(1), returncode) |
| |
| def test_stop_before_start(self): |
| """Stop the process before it gets started should not raise an error""" |
| self.runner.stop() |
| |
| def test_stop_process_custom_signal(self): |
| """Stop the process via a custom signal and test properties""" |
| self.runner.start() |
| returncode = self.runner.stop(signal.SIGTERM) |
| |
| self.assertFalse(self.runner.is_running()) |
| self.assertNotIn(returncode, [None, 0]) |
| self.assertEqual(self.runner.returncode, returncode) |
| self.assertIsNotNone(self.runner.process_handler) |
| |
| self.assertEqual(self.runner.wait(1), returncode) |