From fe30be60c2ba09a8611e8a438836dbaa42289846 Mon Sep 17 00:00:00 2001 From: donny-wong <141858744+donny-wong@users.noreply.github.com> Date: Mon, 23 Sep 2024 21:34:19 -0400 Subject: [PATCH] Haskell Tests - allow displaying of compilation errors (#554) --- Changelog.md | 3 +++ .../testers/haskell/haskell_tester.py | 18 ++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Changelog.md b/Changelog.md index c0d622f2..1936f169 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,9 @@ # CHANGELOG All notable changes to this project will be documented here. +## [unreleased] +- Haskell Tests - allow displaying of compilation errors (#554) + ## [v2.5.1] - Ensure all Haskell test cases still run within same file when there are failed test cases (#543) diff --git a/server/autotest_server/testers/haskell/haskell_tester.py b/server/autotest_server/testers/haskell/haskell_tester.py index 0cbbe99a..9c4a9d78 100644 --- a/server/autotest_server/testers/haskell/haskell_tester.py +++ b/server/autotest_server/testers/haskell/haskell_tester.py @@ -120,16 +120,14 @@ def run_haskell_tests(self) -> Dict[str, List[Dict[str, Union[int, str]]]]: subprocess.run(cmd, stdout=subprocess.DEVNULL, universal_newlines=True, check=True) with tempfile.NamedTemporaryFile(mode="w+", dir=this_dir) as sf: cmd = ["stack", "runghc", *STACK_OPTIONS, "--", f"-i={haskell_lib}", f.name, f"--stats={sf.name}"] - try: - subprocess.run( - cmd, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, universal_newlines=True, check=True - ) - except subprocess.CalledProcessError as e: - if e.returncode == 1: - pass - else: - raise Exception(e) - results[test_file] = self._parse_test_results(csv.reader(sf)) + out = subprocess.run( + cmd, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, universal_newlines=True, check=False + ) + r = self._parse_test_results(csv.reader(sf)) + if r: + results[test_file] = r + else: + raise Exception(out.stderr) return results @Tester.run_decorator