diff --git a/Changelog.md b/Changelog.md index c84f40e0..c0d622f2 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,9 @@ # CHANGELOG All notable changes to this project will be documented here. +## [v2.5.1] +- Ensure all Haskell test cases still run within same file when there are failed test cases (#543) + ## [v2.5.0] - Ensure R packages are correctly installed (#535) - Make PyTA version a setting (#536) diff --git a/server/autotest_server/testers/haskell/haskell_tester.py b/server/autotest_server/testers/haskell/haskell_tester.py index c0ba5f4c..0cbbe99a 100644 --- a/server/autotest_server/testers/haskell/haskell_tester.py +++ b/server/autotest_server/testers/haskell/haskell_tester.py @@ -120,9 +120,15 @@ 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}"] - subprocess.run( - cmd, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, universal_newlines=True, check=True - ) + 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)) return results