]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add file descriptor suppression tests
authorAlexandra Hájková <ahajkova@redhat.com>
Thu, 23 May 2024 08:39:54 +0000 (04:39 -0400)
committerMark Wielaard <mark@klomp.org>
Fri, 14 Jun 2024 23:45:55 +0000 (01:45 +0200)
- 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

13 files changed:
NEWS
none/tests/Makefile.am
none/tests/double_close_range_sup.stderr.exp [new file with mode: 0644]
none/tests/double_close_range_sup.vgtest [new file with mode: 0644]
none/tests/fdleak_cmsg_supp.stderr.exp [new file with mode: 0644]
none/tests/fdleak_cmsg_supp.supp [new file with mode: 0644]
none/tests/fdleak_cmsg_supp.vgtest [new file with mode: 0644]
none/tests/fdleak_creat_sup.stderr.exp [new file with mode: 0644]
none/tests/fdleak_creat_sup.supp [new file with mode: 0644]
none/tests/fdleak_creat_sup.vgtest [new file with mode: 0644]
none/tests/file_dclose.supp [new file with mode: 0644]
none/tests/file_dclose_sup.stderr.exp [new file with mode: 0644]
none/tests/file_dclose_sup.vgtest [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 4d7a97c9d7e51aff0015fc09f1b143836cae74ea..990e2238a898ea891f838818ecd86692ba59a8cc 100644 (file)
--- 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
index 717baee3327e444fc309954fc0c58874dd943aef..c8e152023c209885a353d45100b51b66b21eb08c 100644 (file)
@@ -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 (file)
index 0000000..815a02f
--- /dev/null
@@ -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
+{
+   <insert_a_suppression_name_here>
+   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
+{
+   <insert_a_suppression_name_here>
+   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 (file)
index 0000000..321b7c7
--- /dev/null
@@ -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 (file)
index 0000000..a7d8cc4
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+FILE DESCRIPTORS: 7 open (3 std) at exit.
+Open file descriptor ...: ...
+   <inherited from parent>
+
+Open file descriptor ...: ...
+   <inherited from parent>
+
+Open file descriptor ...: /dev/null
+   <inherited from parent>
+
+
+
+FILE DESCRIPTORS: 6 open (3 std) at exit.
+Open file descriptor ...: ...
+   <inherited from parent>
+
+Open file descriptor ...: ...
+   <inherited from parent>
+
+Open file descriptor ...: /dev/null
+   <inherited from parent>
+
+
diff --git a/none/tests/fdleak_cmsg_supp.supp b/none/tests/fdleak_cmsg_supp.supp
new file mode 100644 (file)
index 0000000..5644147
--- /dev/null
@@ -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 (file)
index 0000000..bc8fab5
--- /dev/null
@@ -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 (file)
index 0000000..c02a807
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+FILE DESCRIPTORS: 4 open (3 std) at exit.
+Open file descriptor ...: ...
+   <inherited from parent>
+
+Open file descriptor ...: ...
+   <inherited from parent>
+
+Open file descriptor ...: /dev/null
+   <inherited from parent>
+
+
diff --git a/none/tests/fdleak_creat_sup.supp b/none/tests/fdleak_creat_sup.supp
new file mode 100644 (file)
index 0000000..f0c4034
--- /dev/null
@@ -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 (file)
index 0000000..f601ae0
--- /dev/null
@@ -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 (file)
index 0000000..d812ade
--- /dev/null
@@ -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 (file)
index 0000000..d530aa4
--- /dev/null
@@ -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 (file)
index 0000000..ac33cce
--- /dev/null
@@ -0,0 +1,3 @@
+prog: file_dclose
+prereq: test -x file_dclose
+vgopts: -q --track-fds=yes --suppressions=file_dclose.supp