schrodinger.test.memtest module

Parse and analyze valgrind output and suppressions.

class schrodinger.test.memtest.Suppression(error_type, suppressions, title='')[source]

Bases: object

Represent a suppression for a leak found by valgrind.

classmethod read(fh, ignore_existing_title=True)[source]
__init__(error_type, suppressions, title='')[source]
class schrodinger.test.memtest.ValgrindWarning(command, warnings)[source]

Bases: object

__init__(command, warnings)[source]
class schrodinger.test.memtest.Leak(filename, command, description, backtrace=None, suppression=None)[source]

Bases: object

Represent a Valgrind Leak.

classmethod read(description, fh, command=None, filename=None)[source]
__init__(filename, command, description, backtrace=None, suppression=None)[source]
schrodinger.test.memtest.read_valgrind_log(filename, fh)[source]

Read a valgrind log

schrodinger.test.memtest.discover_leaks(directory, verbose=False)[source]

Search a directory for valgrind log files.

Return type

dict

Returns

Key: directory path, Value: list of unique leaks seen in that directory

schrodinger.test.memtest.simplify(suppression)[source]

Remove test code from suppression. Wildcard any absolute paths.

schrodinger.test.memtest.uniquify_leaks(leaks)[source]

Given a list of Leak objects, remove any duplicates. Duplicates include leaks that are wholly included in another leak.

schrodinger.test.memtest.uniquify_suppression_titles(leaks)[source]

Make sure that each suppression has a unique title.

schrodinger.test.memtest.read_and_uniquify(filename)[source]

Read a suppression file and make the suppressions in it unique.