diff --git a/avocado/core/loader.py b/avocado/core/loader.py index 63635fe6868db80490d1bb363b7ffd4abf11e4c9..5009a3a61964b13b457b29bc679c910b2c7cf9d2 100644 --- a/avocado/core/loader.py +++ b/avocado/core/loader.py @@ -769,7 +769,7 @@ class ExternalLoader(TestLoader): DEFAULT) :return: list of matching tests """ - if not self._external_runner: + if (not self._external_runner) or (url is None): return [] return [(test.ExternalRunnerTest, {'name': url, 'external_runner': self._external_runner})] diff --git a/selftests/functional/test_basic.py b/selftests/functional/test_basic.py index e77ff7aa1c2b1b2c75810bc8e776e516069e19c8..0c44d483feea79e1059775abfaf2de9e871f68c8 100644 --- a/selftests/functional/test_basic.py +++ b/selftests/functional/test_basic.py @@ -612,6 +612,18 @@ class ExternalRunnerTest(unittest.TestCase): "Avocado did not return rc %d:\n%s" % (expected_rc, result)) + def test_externalrunner_no_url(self): + os.chdir(basedir) + cmd_line = ('./scripts/avocado run --job-results-dir %s --sysinfo=off ' + '--external-runner=/bin/true' % self.tmpdir) + result = process.run(cmd_line, ignore_status=True) + expected_output = ('No tests found for given urls') + self.assertIn(expected_output, result.stderr) + expected_rc = exit_codes.AVOCADO_JOB_FAIL + self.assertEqual(result.exit_status, expected_rc, + "Avocado did not return rc %d:\n%s" % + (expected_rc, result)) + def tearDown(self): self.pass_script.remove() self.fail_script.remove()