All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH 1/1] mallopt01: Rewrite to new API
@ 2021-01-19 13:24 Petr Vorel
  2021-01-20  3:55 ` Yang Xu
  2021-01-25 12:17 ` Petr Vorel
  0 siblings, 2 replies; 4+ messages in thread
From: Petr Vorel @ 2021-01-19 13:24 UTC (permalink / raw)
  To: ltp

From: Petr Vorel <petr.vorel@gmail.com>

Detect non-POSIX mallopt() support with autotools.

NOTE: mallopt() is supported in glibc and uClibc.

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 configure.ac                                  |   1 +
 testcases/kernel/syscalls/mallopt/mallopt01.c | 158 ++++++------------
 2 files changed, 51 insertions(+), 108 deletions(-)

diff --git a/configure.ac b/configure.ac
index e44e25cc6..17ef76c1a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -94,6 +94,7 @@ AC_CHECK_FUNCS_ONCE([ \
     io_uring_register \
     io_uring_enter \
     kcmp \
+    mallopt \
     mkdirat \
     mknodat \
     modify_ldt \
diff --git a/testcases/kernel/syscalls/mallopt/mallopt01.c b/testcases/kernel/syscalls/mallopt/mallopt01.c
index 14e26dd81..f6999bd52 100644
--- a/testcases/kernel/syscalls/mallopt/mallopt01.c
+++ b/testcases/kernel/syscalls/mallopt/mallopt01.c
@@ -1,155 +1,97 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
 /*
- *
- *   Copyright (c) International Business Machines  Corp., 2002
- *
- *   This program is free software;  you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
- *   the GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program;  if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Copyright (c) Linux Test Project, 2003-2021
+ * Copyright (c) International Business Machines  Corp., 2002
+ * 01/02/2003	Port to LTP	<avenkat@us.ibm.com>
+ * 06/30/2001	Port to Linux <nsharoff@us.ibm.com>
  */
 
-/* 01/02/2003	Port to LTP	avenkat@us.ibm.com*/
-/* 06/30/2001	Port to Linux	nsharoff@us.ibm.com */
-
-/*
- * NAME
- *	mallopt
- *
- * CALLS
- *	malloc(3x), mallopt(3x), mallinfo(3x).
- *
- * ALGORITHM
- *	Set options, malloc memory, and check resource ussage.
+/*\
+ * [DESCRIPTION]
  *
- * RESTRICTIONS
- */
+ * Basic mallinfo() and mallopt() testing (M_MXFAST, M_NLBLKS).
+\*/
 
-#ifdef CONFIG_COLDFIRE
-#define __MALLOC_STANDARD__
-#endif
-#include <errno.h>
-/*
- * NOTE: struct mallinfo is only exported via malloc.h (not stdlib.h), even
- * though it's an obsolete header for malloc(3).
- *
- * Inconsistencies rock.
- */
 #include <malloc.h>
-#include <stdio.h>
-
-#include "test.h"
-#include "safe_macros.h"
-
-#define FAILED 0
-#define PASSED 1
-#define MAX_FAST_SIZE	(80 * sizeof(size_t) / 4)
 
-int local_flag = PASSED;
+#include "tst_test.h"
+#include "tst_safe_macros.h"
 
-char *TCID = "mallopt01";
-int block_number;
-FILE *temp;
-int TST_TOTAL = 6;
-extern int tst_COUNT;		/* Test Case counter for tst_routines */
+#ifdef HAVE_MALLOPT
 
-void printinfo();
+#define MAX_FAST_SIZE	(80 * sizeof(size_t) / 4)
 
-#if defined(__GLIBC__)
 struct mallinfo info;
 
-int main(int argc, char *argv[])
+void print_mallinfo(void)
 {
-	char *buf;
-
-	tst_parse_opts(argc, argv, NULL, NULL);
-
-	tst_tmpdir();
+	tst_res(TINFO, "mallinfo structure:");
+	tst_res(TINFO, "mallinfo.arena = %d", info.arena);
+	tst_res(TINFO, "mallinfo.ordblks = %d", info.ordblks);
+	tst_res(TINFO, "mallinfo.smblks = %d", info.smblks);
+	tst_res(TINFO, "mallinfo.hblkhd = %d", info.hblkhd);
+	tst_res(TINFO, "mallinfo.hblks = %d", info.hblks);
+	tst_res(TINFO, "mallinfo.usmblks = %d", info.usmblks);
+	tst_res(TINFO, "mallinfo.fsmblks = %d", info.fsmblks);
+	tst_res(TINFO, "mallinfo.uordblks = %d", info.uordblks);
+	tst_res(TINFO, "mallinfo.fordblks = %d", info.fordblks);
+	tst_res(TINFO, "mallinfo.keepcost = %d", info.keepcost);
+}
 
-	buf = SAFE_MALLOC(NULL, 20480);
+void test_mallopt(void)
+{
+	char *buf;
 
-	/*
-	 * Check space usage.
-	 */
+	buf = SAFE_MALLOC(20480);
 
 	info = mallinfo();
 	if (info.uordblks < 20480) {
-		printinfo();
-		tst_resm(TFAIL, "mallinfo failed: uordblks < 20K");
+		print_mallinfo();
+		tst_res(TFAIL, "mallinfo() failed: uordblks < 20K");
 	}
 	if (info.smblks != 0) {
-		printinfo();
-		tst_resm(TFAIL, "mallinfo failed: smblks != 0");
+		print_mallinfo();
+		tst_res(TFAIL, "mallinfo() failed: smblks != 0");
 	}
 	if (info.uordblks >= 20480 && info.smblks == 0)
-		tst_resm(TPASS, "mallinfo() succeeded");
-	free(buf);
+		tst_res(TPASS, "mallinfo() succeeded");
 
-	/*
-	 * Test mallopt's M_MXFAST and M_NLBLKS cmds.
-	 */
+	free(buf);
 
 	if (mallopt(M_MXFAST, MAX_FAST_SIZE) == 0)
-		tst_resm(TFAIL, "mallopt(M_MXFAST, %d) failed", (int)MAX_FAST_SIZE);
+		tst_res(TFAIL, "mallopt(M_MXFAST, %d) failed", (int)MAX_FAST_SIZE);
 	else
-		tst_resm(TPASS, "mallopt(M_MXFAST, %d) succeeded", (int)MAX_FAST_SIZE);
+		tst_res(TPASS, "mallopt(M_MXFAST, %d) succeeded", (int)MAX_FAST_SIZE);
 
 	if (mallopt(M_NLBLKS, 50) == 0)
-		tst_resm(TFAIL, "mallopt(M_NLBLKS, 50) failed");
+		tst_res(TFAIL, "mallopt(M_NLBLKS, 50) failed");
 	else
-		tst_resm(TPASS, "mallopt(M_NLBLKS, 50) succeeded");
+		tst_res(TPASS, "mallopt(M_NLBLKS, 50) succeeded");
 
 	if ((buf = malloc(1024)) == NULL) {
-		tst_resm(TFAIL, "malloc(1024) failed");
+		tst_res(TFAIL, "malloc(1024) failed");
 	} else {
-		tst_resm(TPASS, "malloc(1024) succeeded");
+		tst_res(TPASS, "malloc(1024) succeeded");
 		free(buf);
 	}
 
 	if (mallopt(M_MXFAST, 0) == 0)
-		tst_resm(TFAIL, "mallopt(M_MXFAST, 0) failed");
+		tst_res(TFAIL, "mallopt(M_MXFAST, 0) failed");
 	else
-		tst_resm(TPASS, "mallopt(M_MXFAST, 0) succeeded");
+		tst_res(TPASS, "mallopt(M_MXFAST, 0) succeeded");
 
 	if ((buf = malloc(1024)) == NULL) {
-		tst_resm(TFAIL, "malloc(1024) failed");
+		tst_res(TFAIL, "malloc(1024) failed");
 	} else {
-		tst_resm(TPASS, "malloc(1024) succeeded");
+		tst_res(TPASS, "malloc(1024) succeeded");
 		free(buf);
 	}
-
-	unlink("core");
-	tst_rmdir();
-	tst_exit();
 }
 
-void printinfo(void)
-{
-
-	fprintf(stderr, "mallinfo structure:\n");
-	fprintf(stderr, "mallinfo.arena = %d\n", info.arena);
-	fprintf(stderr, "mallinfo.ordblks = %d\n", info.ordblks);
-	fprintf(stderr, "mallinfo.smblks = %d\n", info.smblks);
-	fprintf(stderr, "mallinfo.hblkhd = %d\n", info.hblkhd);
-	fprintf(stderr, "mallinfo.hblks = %d\n", info.hblks);
-	fprintf(stderr, "mallinfo.usmblks = %d\n", info.usmblks);
-	fprintf(stderr, "mallinfo.fsmblks = %d\n", info.fsmblks);
-	fprintf(stderr, "mallinfo.uordblks = %d\n", info.uordblks);
-	fprintf(stderr, "mallinfo.fordblks = %d\n", info.fordblks);
-	fprintf(stderr, "mallinfo.keepcost = %d\n", info.keepcost);
-}
+static struct tst_test test = {
+	.test_all = test_mallopt,
+};
 
 #else
-int main(void)
-{
-	tst_brkm(TCONF, NULL, "mallopt defined only for glibc");
-}
+TST_TEST_TCONF("system doesn't implement non-POSIX mallopt()");
 #endif
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [LTP] [PATCH 1/1] mallopt01: Rewrite to new API
  2021-01-19 13:24 [LTP] [PATCH 1/1] mallopt01: Rewrite to new API Petr Vorel
@ 2021-01-20  3:55 ` Yang Xu
  2021-01-21 15:03   ` Petr Vorel
  2021-01-25 12:17 ` Petr Vorel
  1 sibling, 1 reply; 4+ messages in thread
From: Yang Xu @ 2021-01-20  3:55 UTC (permalink / raw)
  To: ltp

Hi Petr
> From: Petr Vorel<petr.vorel@gmail.com>
>
> Detect non-POSIX mallopt() support with autotools.
>
> NOTE: mallopt() is supported in glibc and uClibc.
>
> Signed-off-by: Petr Vorel<petr.vorel@gmail.com>
> Signed-off-by: Petr Vorel<pvorel@suse.cz>
> ---
>   configure.ac                                  |   1 +
>   testcases/kernel/syscalls/mallopt/mallopt01.c | 158 ++++++------------
>   2 files changed, 51 insertions(+), 108 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index e44e25cc6..17ef76c1a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -94,6 +94,7 @@ AC_CHECK_FUNCS_ONCE([ \
>       io_uring_register \
>       io_uring_enter \
>       kcmp \
> +    mallopt \
If glibc/ulibc supports mallopt, it also should support mallinfo. So 
only check mallopt, I think it is ok.
I guess musl libc doesn't support it, is it right?
>       mkdirat \
>       mknodat \
>       modify_ldt \
> diff --git a/testcases/kernel/syscalls/mallopt/mallopt01.c b/testcases/kernel/syscalls/mallopt/mallopt01.c
> index 14e26dd81..f6999bd52 100644
> --- a/testcases/kernel/syscalls/mallopt/mallopt01.c
> +++ b/testcases/kernel/syscalls/mallopt/mallopt01.c
> @@ -1,155 +1,97 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
>   /*
> - *
> - *   Copyright (c) International Business Machines  Corp., 2002
> - *
> - *   This program is free software;  you can redistribute it and/or modify
> - *   it under the terms of the GNU General Public License as published by
> - *   the Free Software Foundation; either version 2 of the License, or
> - *   (at your option) any later version.
> - *
> - *   This program is distributed in the hope that it will be useful,
> - *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
> - *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
> - *   the GNU General Public License for more details.
> - *
> - *   You should have received a copy of the GNU General Public License
> - *   along with this program;  if not, write to the Free Software
> - *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> + * Copyright (c) Linux Test Project, 2003-2021
> + * Copyright (c) International Business Machines  Corp., 2002
> + * 01/02/2003	Port to LTP	<avenkat@us.ibm.com>
> + * 06/30/2001	Port to Linux<nsharoff@us.ibm.com>
>    */
>
> -/* 01/02/2003	Port to LTP	avenkat@us.ibm.com*/
> -/* 06/30/2001	Port to Linux	nsharoff@us.ibm.com */
> -
> -/*
> - * NAME
> - *	mallopt
> - *
> - * CALLS
> - *	malloc(3x), mallopt(3x), mallinfo(3x).
> - *
> - * ALGORITHM
> - *	Set options, malloc memory, and check resource ussage.
> +/*\
> + * [DESCRIPTION]
>    *
> - * RESTRICTIONS
> - */
> + * Basic mallinfo() and mallopt() testing (M_MXFAST, M_NLBLKS).
> +\*/
I see glibc code, it said "Only one of these (M_MXFAST) is used
   in this malloc. The others (M_NLBLKS, M_GRAIN, M_KEEP) don't apply,
   so setting them has no effect. But this malloc also supports four
   other options in mallopt. "

Also, I don't see M_NLBLKS handle in __libc_mallopt.

I think that is why man-pages said "The SVID defined
options M_MXFAST, M_NLBLKS, M_GRAIN, and M_KEEP, but only the first of 
these is implemented in glibc."

I guess we can remove useless M_NLBLKS test.
>
> -#ifdef CONFIG_COLDFIRE
> -#define __MALLOC_STANDARD__
> -#endif
> -#include<errno.h>
> -/*
> - * NOTE: struct mallinfo is only exported via malloc.h (not stdlib.h), even
> - * though it's an obsolete header for malloc(3).
> - *
> - * Inconsistencies rock.
> - */
>   #include<malloc.h>
> -#include<stdio.h>
> -
> -#include "test.h"
> -#include "safe_macros.h"
> -
> -#define FAILED 0
> -#define PASSED 1
> -#define MAX_FAST_SIZE	(80 * sizeof(size_t) / 4)
>
> -int local_flag = PASSED;
> +#include "tst_test.h"
> +#include "tst_safe_macros.h"
>
> -char *TCID = "mallopt01";
> -int block_number;
> -FILE *temp;
> -int TST_TOTAL = 6;
> -extern int tst_COUNT;		/* Test Case counter for tst_routines */
> +#ifdef HAVE_MALLOPT
>
> -void printinfo();
> +#define MAX_FAST_SIZE	(80 * sizeof(size_t) / 4)
>
> -#if defined(__GLIBC__)
>   struct mallinfo info;
>
> -int main(int argc, char *argv[])
> +void print_mallinfo(void)
>   {
> -	char *buf;
> -
> -	tst_parse_opts(argc, argv, NULL, NULL);
> -
> -	tst_tmpdir();
> +	tst_res(TINFO, "mallinfo structure:");
> +	tst_res(TINFO, "mallinfo.arena = %d", info.arena);
> +	tst_res(TINFO, "mallinfo.ordblks = %d", info.ordblks);
> +	tst_res(TINFO, "mallinfo.smblks = %d", info.smblks);
> +	tst_res(TINFO, "mallinfo.hblkhd = %d", info.hblkhd);
> +	tst_res(TINFO, "mallinfo.hblks = %d", info.hblks);
> +	tst_res(TINFO, "mallinfo.usmblks = %d", info.usmblks);
> +	tst_res(TINFO, "mallinfo.fsmblks = %d", info.fsmblks);
> +	tst_res(TINFO, "mallinfo.uordblks = %d", info.uordblks);
> +	tst_res(TINFO, "mallinfo.fordblks = %d", info.fordblks);
> +	tst_res(TINFO, "mallinfo.keepcost = %d", info.keepcost);
> +}
>
> -	buf = SAFE_MALLOC(NULL, 20480);
> +void test_mallopt(void)
> +{
> +	char *buf;
>
> -	/*
> -	 * Check space usage.
> -	 */
> +	buf = SAFE_MALLOC(20480);
>
>   	info = mallinfo();
The lastest mallinfo man-pages said " However, the older function, 
mallinfo(), is deprecated since the type used for the fields is too 
small". The mallinfo2 structure used size_t data type instead of int 
data type in mallinfo struct. Maybe we can add a new test for it.
>   	if (info.uordblks<  20480) {
> -		printinfo();
> -		tst_resm(TFAIL, "mallinfo failed: uordblks<  20K");
> +		print_mallinfo();
> +		tst_res(TFAIL, "mallinfo() failed: uordblks<  20K");
>   	}
>   	if (info.smblks != 0) {
> -		printinfo();
> -		tst_resm(TFAIL, "mallinfo failed: smblks != 0");
> +		print_mallinfo();
> +		tst_res(TFAIL, "mallinfo() failed: smblks != 0");
>   	}
>   	if (info.uordblks>= 20480&&  info.smblks == 0)
> -		tst_resm(TPASS, "mallinfo() succeeded");
> -	free(buf);
> +		tst_res(TPASS, "mallinfo() succeeded");
>
> -	/*
> -	 * Test mallopt's M_MXFAST and M_NLBLKS cmds.
> -	 */
> +	free(buf);
>
>   	if (mallopt(M_MXFAST, MAX_FAST_SIZE) == 0)
> -		tst_resm(TFAIL, "mallopt(M_MXFAST, %d) failed", (int)MAX_FAST_SIZE);
> +		tst_res(TFAIL, "mallopt(M_MXFAST, %d) failed", (int)MAX_FAST_SIZE);
>   	else
> -		tst_resm(TPASS, "mallopt(M_MXFAST, %d) succeeded", (int)MAX_FAST_SIZE);
> +		tst_res(TPASS, "mallopt(M_MXFAST, %d) succeeded", (int)MAX_FAST_SIZE);
>
>   	if (mallopt(M_NLBLKS, 50) == 0)
> -		tst_resm(TFAIL, "mallopt(M_NLBLKS, 50) failed");
> +		tst_res(TFAIL, "mallopt(M_NLBLKS, 50) failed");
>   	else
> -		tst_resm(TPASS, "mallopt(M_NLBLKS, 50) succeeded");
> +		tst_res(TPASS, "mallopt(M_NLBLKS, 50) succeeded");
>
>   	if ((buf = malloc(1024)) == NULL) {
> -		tst_resm(TFAIL, "malloc(1024) failed");
> +		tst_res(TFAIL, "malloc(1024) failed");
>   	} else {
> -		tst_resm(TPASS, "malloc(1024) succeeded");
> +		tst_res(TPASS, "malloc(1024) succeeded");
>   		free(buf);
>   	}
>
>   	if (mallopt(M_MXFAST, 0) == 0)
> -		tst_resm(TFAIL, "mallopt(M_MXFAST, 0) failed");
> +		tst_res(TFAIL, "mallopt(M_MXFAST, 0) failed");
>   	else
> -		tst_resm(TPASS, "mallopt(M_MXFAST, 0) succeeded");
> +		tst_res(TPASS, "mallopt(M_MXFAST, 0) succeeded");
>
>   	if ((buf = malloc(1024)) == NULL) {
> -		tst_resm(TFAIL, "malloc(1024) failed");
> +		tst_res(TFAIL, "malloc(1024) failed");
>   	} else {
> -		tst_resm(TPASS, "malloc(1024) succeeded");
> +		tst_res(TPASS, "malloc(1024) succeeded");
>   		free(buf);
>   	}
> -
> -	unlink("core");
> -	tst_rmdir();
> -	tst_exit();
>   }
>
> -void printinfo(void)
> -{
> -
> -	fprintf(stderr, "mallinfo structure:\n");
> -	fprintf(stderr, "mallinfo.arena = %d\n", info.arena);
> -	fprintf(stderr, "mallinfo.ordblks = %d\n", info.ordblks);
> -	fprintf(stderr, "mallinfo.smblks = %d\n", info.smblks);
> -	fprintf(stderr, "mallinfo.hblkhd = %d\n", info.hblkhd);
> -	fprintf(stderr, "mallinfo.hblks = %d\n", info.hblks);
> -	fprintf(stderr, "mallinfo.usmblks = %d\n", info.usmblks);
> -	fprintf(stderr, "mallinfo.fsmblks = %d\n", info.fsmblks);
> -	fprintf(stderr, "mallinfo.uordblks = %d\n", info.uordblks);
> -	fprintf(stderr, "mallinfo.fordblks = %d\n", info.fordblks);
> -	fprintf(stderr, "mallinfo.keepcost = %d\n", info.keepcost);
> -}
> +static struct tst_test test = {
> +	.test_all = test_mallopt,
> +};
>
>   #else
> -int main(void)
> -{
> -	tst_brkm(TCONF, NULL, "mallopt defined only for glibc");
> -}
> +TST_TEST_TCONF("system doesn't implement non-POSIX mallopt()");
>   #endif




^ permalink raw reply	[flat|nested] 4+ messages in thread

* [LTP] [PATCH 1/1] mallopt01: Rewrite to new API
  2021-01-20  3:55 ` Yang Xu
@ 2021-01-21 15:03   ` Petr Vorel
  0 siblings, 0 replies; 4+ messages in thread
From: Petr Vorel @ 2021-01-21 15:03 UTC (permalink / raw)
  To: ltp

Hi Xu,

thanks for your review and more search in man page than I did!

...
> > diff --git a/configure.ac b/configure.ac
> > index e44e25cc6..17ef76c1a 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -94,6 +94,7 @@ AC_CHECK_FUNCS_ONCE([ \
> >       io_uring_register \
> >       io_uring_enter \
> >       kcmp \
> > +    mallopt \
> If glibc/ulibc supports mallopt, it also should support mallinfo. So only
> check mallopt, I think it is ok.
Yes. These are glibc specific and uclibc tries to be API compatible with glibc.


> I guess musl libc doesn't support it, is it right?
Correct, musl don't support it, neither binder.

> > diff --git a/testcases/kernel/syscalls/mallopt/mallopt01.c b/testcases/kernel/syscalls/mallopt/mallopt01.c
...
> > -/*
> > - * NAME
> > - *	mallopt
> > - *
> > - * CALLS
> > - *	malloc(3x), mallopt(3x), mallinfo(3x).
> > - *
> > - * ALGORITHM
> > - *	Set options, malloc memory, and check resource ussage.
> > +/*\
> > + * [DESCRIPTION]
> >    *
> > - * RESTRICTIONS
> > - */
> > + * Basic mallinfo() and mallopt() testing (M_MXFAST, M_NLBLKS).
> > +\*/
> I see glibc code, it said "Only one of these (M_MXFAST) is used
>   in this malloc. The others (M_NLBLKS, M_GRAIN, M_KEEP) don't apply,
>   so setting them has no effect. But this malloc also supports four
>   other options in mallopt. "

> Also, I don't see M_NLBLKS handle in __libc_mallopt.

> I think that is why man-pages said "The SVID defined
> options M_MXFAST, M_NLBLKS, M_GRAIN, and M_KEEP, but only the first of these
> is implemented in glibc."

> I guess we can remove useless M_NLBLKS test.
Good catch! Agree. And it's also not supported on uclibc.

...
> >   	info = mallinfo();
> The lastest mallinfo man-pages said " However, the older function,
> mallinfo(), is deprecated since the type used for the fields is too small".
> The mallinfo2 structure used size_t data type instead of int data type in
> mallinfo struct. Maybe we can add a new test for it.

+1.
mallinfo2() was added few months ago to glibc by Martin Liska, released in 2.33.

Kind regards,
Petr

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [LTP] [PATCH 1/1] mallopt01: Rewrite to new API
  2021-01-19 13:24 [LTP] [PATCH 1/1] mallopt01: Rewrite to new API Petr Vorel
  2021-01-20  3:55 ` Yang Xu
@ 2021-01-25 12:17 ` Petr Vorel
  1 sibling, 0 replies; 4+ messages in thread
From: Petr Vorel @ 2021-01-25 12:17 UTC (permalink / raw)
  To: ltp

Hi Xu,

thanks for your review, merged.

Ticket for mallinfo2():
https://github.com/linux-test-project/ltp/issues/778

Kind regards,
Petr

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-01-25 12:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-19 13:24 [LTP] [PATCH 1/1] mallopt01: Rewrite to new API Petr Vorel
2021-01-20  3:55 ` Yang Xu
2021-01-21 15:03   ` Petr Vorel
2021-01-25 12:17 ` Petr Vorel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.