From: Rhys Kidd Date: Sun, 10 May 2015 13:34:22 +0000 (+0000) Subject: Add (presently) failing test case for bz#254164. X-Git-Tag: svn/VALGRIND_3_11_0~412 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f3976feb93ff37f15043959e7fe1e37aaebb5e8;p=thirdparty%2Fvalgrind.git Add (presently) failing test case for bz#254164. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15205 --- diff --git a/none/tests/darwin/Makefile.am b/none/tests/darwin/Makefile.am index 391fb59996..5cce00cdfd 100644 --- a/none/tests/darwin/Makefile.am +++ b/none/tests/darwin/Makefile.am @@ -6,11 +6,13 @@ dist_noinst_SCRIPTS = filter_stderr EXTRA_DIST = \ access_extended.stderr.exp access_extended.vgtest \ apple-main-arg.stderr.exp apple-main-arg.vgtest \ + bug254164.stderr.exp bug254164.vgtest \ rlimit.stderr.exp rlimit.vgtest check_PROGRAMS = \ access_extended \ apple-main-arg \ + bug254164 \ rlimit diff --git a/none/tests/darwin/bug254164.c b/none/tests/darwin/bug254164.c new file mode 100644 index 0000000000..9bb49274c0 --- /dev/null +++ b/none/tests/darwin/bug254164.c @@ -0,0 +1,61 @@ +// Small test program to demonstrate Valgrind bug. +// https://bugs.kde.org/show_bug.cgi?id=254164 + + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +void getres(task_t task, unsigned int *rss, unsigned int *vs) +{ + struct task_basic_info t_info; + mach_msg_type_number_t t_info_count = TASK_BASIC_INFO_COUNT; + + task_info(task, TASK_BASIC_INFO, (task_info_t)&t_info, &t_info_count); + *rss = t_info.resident_size; + *vs = t_info.virtual_size; +} + +/** It appears task_set_info() is a deprecated interface on modern Darwin + * Per comments in osfmk/kern/task.c: + * + * This routine was added, pretty much exclusively, for registering the + * RPC glue vector for in-kernel short circuited tasks. Rather than + * removing it completely, I have only disabled that feature (which was + * the only feature at the time). + */ +/** +void setres(task_t task) +{ + struct task_trace_memory_info t_info; + mach_msg_type_number_t t_info_count = TASK_TRACE_MEMORY_INFO_COUNT; + + t_info.user_memory_address = NULL; + t_info.buffer_size = 0; + t_info.mailbox_array_size = 0; + + task_set_info(task, TASK_TRACE_MEMORY_INFO, (task_info_t)&t_info, &t_info_count); +} + */ + +int main(void) +{ + unsigned int rss, vs; + task_t task = MACH_PORT_NULL; + + if (task_for_pid(current_task(), getpid(), &task) != KERN_SUCCESS) + abort(); + + getres(task, &rss, &vs); + //setres(task); + + return 0; +} + diff --git a/none/tests/darwin/bug254164.stderr.exp b/none/tests/darwin/bug254164.stderr.exp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/none/tests/darwin/bug254164.vgtest b/none/tests/darwin/bug254164.vgtest new file mode 100644 index 0000000000..fa68f340ac --- /dev/null +++ b/none/tests/darwin/bug254164.vgtest @@ -0,0 +1,2 @@ +prog: bug254164 +vgopts: -q