[
https://issues.apache.org/jira/browse/LUCY-80?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marvin Humphrey updated LUCY-80:
--------------------------------
Attachment: test_valgrind.diff
This patch creates two build targets within Lucy::Build. The first is
"test_valgrind", which runs the test suite under valgrind.
The second target is "suppressions", which builds a "local.supp" file that
inoculates the test against memory leaks in the Perl binary itself and in the
modules XSLoader and DynaLoader.
The "test_valgrind" target takes an additional "suppressions" argument, which
can be used to specify an additional suppressions file. Currently, Lucy
passes on CentOS 5.2 with the following invocation:
{code:none}
./Build test_valgrind suppressions=/path/to/additional/suppfile.supp
{code}
A further suppressions file is included in the patch,
trunk/devel/conf/lucyperl.supp. It suppresses known leaks associated with the
the Lucy object system, such as the initialization of the
lucy_VTable_registry hash.
Even with all these tweaks, it can be difficult to get the test to pass on
some systems. My MacBook Pro (OS X 10.5) makes different decisions than the
CentOS box with regards to inlining functions, rendering lucyperl.supp
invalid. (TODO: this problem can theoretically be defeated by disabling
inlining.)
Nevertheless, valgrind testing is absolutely essential for security
and memory integrity, and this test target must pass when preparing a release.
> Valgrind test build target for Perl bindings
> --------------------------------------------
>
> Key: LUCY-80
> URL: https://issues.apache.org/jira/browse/LUCY-80
> Project: Lucy
> Issue Type: New Feature
> Components: Perl bindings
> Reporter: Marvin Humphrey
> Assignee: Marvin Humphrey
> Priority: Minor
> Attachments: test_valgrind.diff
>
>
> Add a build target that runs the test suite under valgrind, to detect memory
> errors and leaks.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.