Notes for these regression tests: - The %p test should run when ltrace is built with -fsanitize=address or some other form of protection that makes the program abort when trying to free() static memory. - The zero(EXPR) test needs valgrind to test for the previous memleak bug, but as it stands now, it can also test whether the zero functionality works or not.
Signed-off-by: Peter Wu <[email protected]> --- Hi, I have never used dejagnu or expect before and these tests were created by looking at the above tests. Hopefully they fit well, it looks sane to me. With commit cae76962c7e0ec6119952addb36d1cf8d19f5228 ("Prevent freeing static-alloc'd memory for %p and %n in printf") and 594ef6824f4b08adff9b67f1481030a81dbf3bf7 ("Fix memory leak for zero(EXPR)") reverted, the tests fail. With the current master, it passes all tests. Regards, Peter --- testsuite/ltrace.main/parameters2.exp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/testsuite/ltrace.main/parameters2.exp b/testsuite/ltrace.main/parameters2.exp index 30a0cc1..a563d31 100644 --- a/testsuite/ltrace.main/parameters2.exp +++ b/testsuite/ltrace.main/parameters2.exp @@ -215,4 +215,34 @@ ltraceMatch1 [ltraceLibTest { -L -x fun }] {fun@.*\(\)} == 1 + +# Test that %p format specifier does not crash + +ltraceMatch1 [ltraceLibTest { + void print_ptr(format); +} { + void print_ptr(const char *format, ...); +} { + void print_ptr(const char *format, ...) { } +} { + void *addr = (void *)0x42; + print_ptr("%p\n", addr); +}] {print_ptr\("%p\\n", 0x42\) *= <void>} == 1 + + +# Test that zero(EXPR) does not leak memory (needs valgrind) + +ltraceMatch1 [ltraceLibTest { + typedef String = string(array(char, zero(256))); + String *get_string(); +} { + char *get_string(); +} { + char *get_string() { + return "FOO"; + } +} { + get_string(); +}] {get_string\(\) *= "FOO"} == 1 + ltraceDone -- 1.8.4 _______________________________________________ Ltrace-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/ltrace-devel
