[LTP] Test library API changes
    Jan Stancek 
    jstancek@redhat.com
       
    Fri Mar 11 14:57:08 CET 2016
    
    
  
----- Original Message -----
> From: "Cyril Hrubis" <chrubis@suse.cz>
> To: "Jan Stancek" <jstancek@redhat.com>
> Cc: ltp@lists.linux.it
> Sent: Thursday, 10 March, 2016 5:57:21 PM
> Subject: Re: [LTP] Test library API changes
> 
> Hi!
> Up to date version is at usuall place:
> 
> https://github.com/metan-ucw/ltp
> 
> 
> Changes are:
> 
> * Now we use env variable for SHM path
> 
>   - I was thinking about setting it to the /proc path if proc is mounted
>     but that way we would have to keep the fd open (and it would occupy
>     fd=3) and I think that the less resources the library occupy the
>     better
> 
> * The rest of the default test options -I and -C are now working
> 
> * I've given up on SAFE_MACROS in cleaup for now
> 
>   - We may add them later, but I would like to get this merged ideally
>     before we do another release and doing this would take some time
I think we have this problem already. tst_brk() will call tst_vbrk_(),
which calls cleanup_ipc(), which is using SAFE_* macros. It looks like
we'll get infinite loop if any of those fail.
> 
> * All relevant parts of test-writing-guidelines should be now rewritten
> 
>   - There are couple of functions that still take cleanup as fist
>     parameter and that are not exported to the new library but that
>     should be all that is missing
"Child processes started via exec*, or any other processes must initialize the
checkpoint by calling 'TST_CHECKPOINT_INIT()' before usage."
This doesn't sound correct for newlib. We now have "tst_checkpoint_open()".
---
'To make sure cleanup() was called only once LTP has a helper
"TST_DECLARE_ONCE_FN"'
TST_DECLARE_ONCE_FN is declared in test.h, it doesn't look like newlib
can use it at the moment.
---
I'm not sure it is enough to make cleanup() call only once. It looks like
we still can get into situation where we call "do_cleanup();cleanup_ipc();"
more than once (if we hit tst_brk in multiple threads with newlib)
---
Can we remove "SAFE_CLOSE(ipc_fd);" from cleanup_ipc()? This fd
is already closed in setup_ipc().
---
Should "struct tst_test *tst_test" be initialized to NULL?
Some tst_res.c oldlib functions are using it, but it is initialized only
if you use newlib, at tst_run_tcases().
> 
> 
> Anything else that should be done before we can merge it?
I only made a compile test on some old/recent RHEL distros
and ran some newlib testcases by hand. This worked OK.
Have you tried running all of the (oldlib) tests on
various arches/releases to see if we haven't regressed?
I could run it against various RHEL majors, it
would take couple days.
Regards,
Jan
> 
> --
> Cyril Hrubis
> chrubis@suse.cz
> 
    
    
More information about the ltp
mailing list