From: Alexandra Hájková Date: Thu, 23 May 2024 08:39:54 +0000 (-0400) Subject: Add file descriptor suppression tests X-Git-Tag: VALGRIND_3_24_0~114 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8864c92efb8f65d8a56153f3bc8f7d2ac907b6cb;p=thirdparty%2Fvalgrind.git Add file descriptor suppression tests - none/tests/double_close_range_sup.vgtest - none/tests/fdleak_cmsg_supp.vgtest - none/tests/fdleak_creat_sup.vgtest - none/tests/file_dclose_sup.vgtest https://bugs.kde.org/show_bug.cgi?id=488441 --- diff --git a/NEWS b/NEWS index 4d7a97c9d..990e2238a 100644 --- a/NEWS +++ b/NEWS @@ -41,6 +41,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. 486569 linux inotify_init syscall wrapper missing POST entry in syscall_table 487993 Alignment error when using Eigen with Valgrind and -m32 488026 Use of `sizeof` instead of `strlen +488441 Add tests for --track-fds=yes --xml=yes and fd suppression tests To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX diff --git a/none/tests/Makefile.am b/none/tests/Makefile.am index 717baee33..c8e152023 100644 --- a/none/tests/Makefile.am +++ b/none/tests/Makefile.am @@ -125,6 +125,7 @@ EXTRA_DIST = \ discard.vgtest \ double_close_range_xml.stderr.exp \ double_close_range_xml.vgtest \ + double_close_range_sup.stderr.exp double_close_range_sup.vgtest \ empty-exe.vgtest empty-exe.stderr.exp \ exec-sigmask.vgtest exec-sigmask.stdout.exp \ exec-sigmask.stdout.exp2 exec-sigmask.stdout.exp3 \ @@ -134,8 +135,12 @@ EXTRA_DIST = \ fcntl_setown.vgtest fcntl_setown.stdout.exp fcntl_setown.stderr.exp \ fdleak_cmsg.stderr.exp fdleak_cmsg.vgtest \ fdleak_cmsg_xml.stderr.exp fdleak_cmsg_xml.vgtest \ + fdleak_cmsg_supp.stderr.exp fdleak_cmsg_supp.supp \ + fdleak_cmsg_supp.vgtest \ fdleak_creat.stderr.exp fdleak_creat.vgtest \ fdleak_creat_xml.stderr.exp fdleak_creat_xml.vgtest \ + fdleak_creat_sup.stderr.exp fdleak_creat_sup.supp \ + fdleak_creat_sup.vgtest \ fdleak_dup.stderr.exp fdleak_dup.vgtest \ fdleak_dup_xml.stderr.exp fdleak_dup_xml.vgtest \ fdleak_dup2.stderr.exp fdleak_dup2.vgtest \ @@ -244,6 +249,7 @@ EXTRA_DIST = \ socket_close_xml.stderr.exp socket_close_xml.vgtest \ file_dclose.stderr.exp file_dclose.vgtest \ file_dclose_xml.stderr.exp file_dclose_xml.vgtest \ + file_dclose.supp file_dclose_sup.stderr.exp file_dclose_sup.vgtest \ double_close_range.stderr.exp double_close_range.vgtest diff --git a/none/tests/double_close_range_sup.stderr.exp b/none/tests/double_close_range_sup.stderr.exp new file mode 100644 index 000000000..815a02f42 --- /dev/null +++ b/none/tests/double_close_range_sup.stderr.exp @@ -0,0 +1,34 @@ +close fd 3 +Closing range (3, -1). +Closing range (5, 7). +Double closing range (5, 7). +File descriptor ...: ... is already closed + at 0x........: close_range (in /...libc...) + by 0x........: main + Previously closed + at 0x........: close_range (in /...libc...) + by 0x........: main + Originally opened + at 0x........: dup2 (in /...libc...) + by 0x........: main +{ + + CoreError:FdBadClose + fun:close_range + fun:main +} +File descriptor ...: ... is already closed + at 0x........: close_range (in /...libc...) + by 0x........: main + Previously closed + at 0x........: close_range (in /...libc...) + by 0x........: main + Originally opened + at 0x........: dup2 (in /...libc...) + by 0x........: main +{ + + CoreError:FdBadClose + fun:close_range + fun:main +} diff --git a/none/tests/double_close_range_sup.vgtest b/none/tests/double_close_range_sup.vgtest new file mode 100644 index 000000000..321b7c73d --- /dev/null +++ b/none/tests/double_close_range_sup.vgtest @@ -0,0 +1,4 @@ +prog: double_close_range +prereq: test -x double_close_range +stderr_filter: filter_fdleak +vgopts: -q --track-fds=yes --gen-suppressions=all diff --git a/none/tests/fdleak_cmsg_supp.stderr.exp b/none/tests/fdleak_cmsg_supp.stderr.exp new file mode 100644 index 000000000..a7d8cc42e --- /dev/null +++ b/none/tests/fdleak_cmsg_supp.stderr.exp @@ -0,0 +1,25 @@ + + +FILE DESCRIPTORS: 7 open (3 std) at exit. +Open file descriptor ...: ... + + +Open file descriptor ...: ... + + +Open file descriptor ...: /dev/null + + + + +FILE DESCRIPTORS: 6 open (3 std) at exit. +Open file descriptor ...: ... + + +Open file descriptor ...: ... + + +Open file descriptor ...: /dev/null + + + diff --git a/none/tests/fdleak_cmsg_supp.supp b/none/tests/fdleak_cmsg_supp.supp new file mode 100644 index 000000000..5644147a9 --- /dev/null +++ b/none/tests/fdleak_cmsg_supp.supp @@ -0,0 +1,49 @@ +{ + sup1 + CoreError:FdNotClosed + fun:accept + fun:server + fun:main +} +{ + sup2 + CoreError:FdNotClosed + fun:socket + fun:server + fun:main +} +{ + sup3 + CoreError:FdNotClosed + fun:*open* + fun:server + fun:main +} +{ + sup4 + CoreError:FdNotClosed + fun:*open* + fun:server + #fun:main +} +{ + sup5 + CoreError:FdNotClosed + fun:recvmsg + fun:client + fun:main +} +{ + sup6 + CoreError:FdNotClosed + fun:recvmsg + fun:client + fun:main +} +{ + sup7 + CoreError:FdNotClosed + fun:socket + fun:client + fun:main +} diff --git a/none/tests/fdleak_cmsg_supp.vgtest b/none/tests/fdleak_cmsg_supp.vgtest new file mode 100644 index 000000000..bc8fab5ee --- /dev/null +++ b/none/tests/fdleak_cmsg_supp.vgtest @@ -0,0 +1,4 @@ +prog: fdleak_cmsg +vgopts: --track-fds=all --suppressions=fdleak_cmsg_supp.supp +stderr_filter: filter_fdleak +args: < /dev/null diff --git a/none/tests/fdleak_creat_sup.stderr.exp b/none/tests/fdleak_creat_sup.stderr.exp new file mode 100644 index 000000000..c02a80735 --- /dev/null +++ b/none/tests/fdleak_creat_sup.stderr.exp @@ -0,0 +1,13 @@ + + +FILE DESCRIPTORS: 4 open (3 std) at exit. +Open file descriptor ...: ... + + +Open file descriptor ...: ... + + +Open file descriptor ...: /dev/null + + + diff --git a/none/tests/fdleak_creat_sup.supp b/none/tests/fdleak_creat_sup.supp new file mode 100644 index 000000000..f0c403422 --- /dev/null +++ b/none/tests/fdleak_creat_sup.supp @@ -0,0 +1,18 @@ +{ + sup + CoreError:FdNotClosed + obj:*libc.so* + fun:main +} +{ + sup2 + CoreError:FdNotClosed + fun:*creat* + fun:main +} +{ + sup3 + CoreError:FdNotClosed + fun:*open* + fun:main +} diff --git a/none/tests/fdleak_creat_sup.vgtest b/none/tests/fdleak_creat_sup.vgtest new file mode 100644 index 000000000..f601ae00e --- /dev/null +++ b/none/tests/fdleak_creat_sup.vgtest @@ -0,0 +1,4 @@ +prog: fdleak_creat +vgopts: --track-fds=all --suppressions=fdleak_creat_sup.supp +stderr_filter: filter_fdleak +args: < /dev/null diff --git a/none/tests/file_dclose.supp b/none/tests/file_dclose.supp new file mode 100644 index 000000000..d812adead --- /dev/null +++ b/none/tests/file_dclose.supp @@ -0,0 +1,7 @@ +{ + badclose + CoreError:FdBadClose + fun:*close* + fun:closefile + #fun:main +} diff --git a/none/tests/file_dclose_sup.stderr.exp b/none/tests/file_dclose_sup.stderr.exp new file mode 100644 index 000000000..d530aa429 --- /dev/null +++ b/none/tests/file_dclose_sup.stderr.exp @@ -0,0 +1,2 @@ +close 3 +time passes and we close 3 again diff --git a/none/tests/file_dclose_sup.vgtest b/none/tests/file_dclose_sup.vgtest new file mode 100644 index 000000000..ac33cceef --- /dev/null +++ b/none/tests/file_dclose_sup.vgtest @@ -0,0 +1,3 @@ +prog: file_dclose +prereq: test -x file_dclose +vgopts: -q --track-fds=yes --suppressions=file_dclose.supp