Hi Andreas, > Hi Andreas, > > > On Mär 15 2021, Lukasz Majewski wrote: > > > > > diff --git a/sysdeps/unix/sysv/linux/tst-getrusage.c > > > b/sysdeps/unix/sysv/linux/tst-getrusage.c new file mode 100644 > > > index 0000000000..068becdadb > > > --- /dev/null > > > +++ b/sysdeps/unix/sysv/linux/tst-getrusage.c > > > @@ -0,0 +1,55 @@ > > > +/* Test for getrusage > > > + Copyright (C) 2021 Free Software Foundation, Inc. > > > + This file is part of the GNU C Library. > > > + > > > + The GNU C Library is free software; you can redistribute it > > > and/or > > > + modify it under the terms of the GNU Lesser General Public > > > + License as published by the Free Software Foundation; either > > > + version 2.1 of the License, or (at your option) any later > > > version. + > > > + The GNU C Library 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 > > > + Lesser General Public License for more details. > > > + > > > + You should have received a copy of the GNU Lesser General > > > Public > > > + License along with the GNU C Library; if not, see > > > + . */ > > > + > > > +#include > > > +#include > > > +#include > > > +#include > > > + > > > +#define TST_GETRUSAGE_TIMEOUT 1 > > > + > > > +static int > > > +do_test (void) > > > +{ > > > + struct timespec tv_then, tv_now, gru_u, gru_s, s, r; > > > + struct rusage ru; > > > + int ret; > > > + > > > + tv_then = xclock_now (CLOCK_REALTIME); > > > + /* Busy wait for 1 second. */ > > > + do > > > + { > > > + tv_now = xclock_now (CLOCK_REALTIME); > > > + r = timespec_sub (tv_now, tv_then); > > > + } while ( r.tv_sec != TST_GETRUSAGE_TIMEOUT ); > > > > What happens if the process stalls for a second? > > I think that the glibc's test infrastructure will kill it - the > default timeout is 2 seconds. > > As a result the test will fail. On the other hand - the proposed approach with busy waiting was the natural one to check if accounting from getrusage is correct. Maybe you (or anybody else from the community) have a better idea on how to force the process to be "running" (active) for some time? Maybe I could modify the C test code to perform following bash operation: cat /dev/urandom | gzip -9 > /dev/null and replace /dev/urandom with some large (generated in place) file? However, this would pose additional dependencies (gzip) on glibc test suite. > > > > > Andreas. > > > > > > > Best regards, > > Lukasz Majewski > > -- > > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: > lukma@denx.de Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de