diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-10-09 11:19:58 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-10-09 11:19:58 +0200 |
| commit | 84b23010e0d0515ad3ed17a605440e50439781e8 (patch) | |
| tree | 2c71f2d4afbb7b0a8e9e128f1d1383f5637de88c /src/test/result.py | |
| parent | 5d1410a9b08eb8df82a43312b8b6d3d9c1c9eb00 (diff) | |
| download | minishell_test-84b23010e0d0515ad3ed17a605440e50439781e8.tar.gz minishell_test-84b23010e0d0515ad3ed17a605440e50439781e8.tar.bz2 minishell_test-84b23010e0d0515ad3ed17a605440e50439781e8.zip | |
Formatting/Refactoring, Added pretty ascii art
Diffstat (limited to 'src/test/result.py')
| -rw-r--r-- | src/test/result.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/test/result.py b/src/test/result.py index 3d16c7e..55cda54 100644 --- a/src/test/result.py +++ b/src/test/result.py @@ -6,7 +6,7 @@ # By: charles <me@cacharle.xyz> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2020/09/11 12:17:34 by charles #+# #+# # -# Updated: 2020/10/08 08:53:49 by cacharle ### ########.fr # +# Updated: 2020/10/09 11:04:16 by cacharle ### ########.fr # # # # ############################################################################ # @@ -51,18 +51,25 @@ class Result: def leak(cmd: str, leak_output: str = None): return Result(cmd, None, None, None, leak_output) - @property - def lost_bytes(self): - m = re.search( - r"definitely lost: (?P<bytes>[0-9,]+) bytes in [0-9,]+ blocks", + def _search_leak_kind(self, kind: str) -> int: + match = re.search( + r"==\d+==\s+" + kind + r" lost: (?P<bytes>[0-9,]+) bytes in [0-9,]+ blocks", self.leak_output ) - if m is None: + if match is None: raise RuntimeError( "valgrind output parsing failed for `{}`:\n{}" .format(self.cmd, self.leak_output) ) - return int(m.group("bytes")) + return match + + @property + def lost_bytes(self): + definite_match = self._search_leak_kind("definitely") + indirect_match = self._search_leak_kind("indirectly") + definite_bytes = int(definite_match.group("bytes").replace(",", "")) + indirect_bytes = int(indirect_match.group("bytes").replace(",", "")) + return definite_bytes + indirect_bytes @property def passed(self): |
