From f6e583dbfbdaed86bc4b7d7203f7c2783dc02213 Mon Sep 17 00:00:00 2001 From: Vasileios Karakasis Date: Mon, 4 Dec 2023 22:21:28 +0100 Subject: [PATCH] Issue an error when invoking an invalid mode --- reframe/frontend/cli.py | 6 +++++- unittests/test_cli.py | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/reframe/frontend/cli.py b/reframe/frontend/cli.py index 8c59a68019..2a257c1174 100644 --- a/reframe/frontend/cli.py +++ b/reframe/frontend/cli.py @@ -791,7 +791,7 @@ def restrict_logging(): if options.mode: mode = site_config.get(f'modes/@{options.mode}') if mode is None: - printer.warning(f'invalid mode: {options.mode!r}; ignoring...') + raise errors.ReframeError(f'invalid mode: {options.mode!r}') else: mode_args = site_config.get(f'modes/@{options.mode}/options') @@ -811,6 +811,10 @@ def restrict_logging(): printer.error(f'failed to load configuration: {e}') printer.info(logfiles_message()) sys.exit(1) + except errors.ReframeError as e: + printer.error(str(e)) + printer.info(logfiles_message()) + sys.exit(1) printer.colorize = site_config.get('general/0/colorize') if not restrict_logging(): diff --git a/unittests/test_cli.py b/unittests/test_cli.py index d5d8f148e5..b468658fbb 100644 --- a/unittests/test_cli.py +++ b/unittests/test_cli.py @@ -527,7 +527,7 @@ def test_execution_modes(run_reframe, run_action): assert 'Ran 1/1 test case' in stdout -def test_invalid_mode_warning(run_reframe): +def test_invalid_mode_error(run_reframe): mode = 'invalid' returncode, stdout, stderr = run_reframe( action='list', @@ -538,7 +538,8 @@ def test_invalid_mode_warning(run_reframe): ) assert 'Traceback' not in stdout assert 'Traceback' not in stderr - assert f'invalid mode: {mode!r}; ignoring' in stdout + assert returncode == 1 + assert f'ERROR: invalid mode: {mode!r}' in stdout def test_timestamp_option(run_reframe):