Commit 8a950618 authored by Johannes Bechberger's avatar Johannes Bechberger

Add `--color` option and only color output to tty

parent ea7827ba
......@@ -127,7 +127,7 @@ Output of the `./mjt.py --help`
```
usage: mjt.py [-h] [--only_incorrect_tests] [--produce_no_reports]
[--produce_all_reports] [--parallel]
[--output_no_incorrect_reports] [--no_color] [--ci_testing]
[--output_no_incorrect_reports] [--color] [--ci_testing]
[--log_level LOG_LEVEL]
{all,lexer,syntax,ast,semantic,exec} MJ_RUN
......@@ -151,7 +151,8 @@ optional arguments:
--parallel Run the tests in parallel
--output_no_incorrect_reports
Output the long report for every incorrect test case
--no_color Output no color codes
--color Output color output even if the output goes to into a
file
--ci_testing In mode X the succeeding test cases of later
modes/phases should also succeed in this mode, and
failing test cases of prior modes/phases should also
......
......@@ -48,8 +48,8 @@ if True:#__name__ == '__main__':
help="Run the tests in parallel")
parser.add_argument("--output_no_incorrect_reports", action="store_true", default=False,
help="Output the long report for every incorrect test case")
parser.add_argument("--no_color", action="store_true", default=False,
help="Output no color codes")
parser.add_argument("--color", action="store_true", default=False,
help="Output color output even if the output goes to into a file")
parser.add_argument("--ci_testing", action="store_true", default=False,
help="In mode X the succeeding test cases of later modes/phases should also succeed in "
"this mode, and failing test cases of prior modes/phases should also fail in this phase.")
......
......@@ -6,7 +6,7 @@ import tempfile
from datetime import datetime
import time
from mjtest.util.shell import execute
from mjtest.util.utils import get_mjtest_basedir, disable_colored_output
from mjtest.util.utils import get_mjtest_basedir, force_colored_output
import mjtest.util.utils
from typing import Tuple, List
from preproc.preproc.preprocessor import PreProcessor, PreProcessorError, is_importable_file
......@@ -46,9 +46,9 @@ class Environment:
timeout: int = 30, report_dir: str = "", log_level: str = "warn",
produce_no_reports: bool = True, output_no_incorrect_reports: bool = False,
produce_all_reports: bool = False, report_subdir: str = None,
ci_testing: bool = False, no_color: bool = False):
if no_color:
disable_colored_output()
ci_testing: bool = False, color: bool = False):
if color:
force_colored_output()
self.mode = mode
self.mj_run_cmd = os.path.realpath(mj_run)
......
......@@ -3,17 +3,19 @@ from os import path
import sys
from typing import Tuple
COLOR_OUTPUT_IF_POSSIBLE = True
COLOR_OUTPUT_IF_POSSIBLE = False
try:
import termcolor
except ImportError:
COLOR_OUTPUT_IF_POSSIBLE = False
if sys.stdout.isatty():
try:
import termcolor
COLOR_OUTPUT_IF_POSSIBLE = True
except ImportError:
COLOR_OUTPUT_IF_POSSIBLE = False
def disable_colored_output():
def force_colored_output():
global COLOR_OUTPUT_IF_POSSIBLE
COLOR_OUTPUT_IF_POSSIBLE = False
COLOR_OUTPUT_IF_POSSIBLE = True
def get_mjtest_basedir() -> str:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment