From: Jan Stancek <jstancek@redhat.com>
To: ltp@lists.linux.it
Subject: [LTP] Test library API changes
Date: Thu, 7 Jan 2016 08:01:36 -0500 (EST) [thread overview]
Message-ID: <1146864418.5284131.1452171696007.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20160105111136.GA32659@rei.lan>
----- Original Message -----
> From: "Cyril Hrubis" <chrubis@suse.cz>
> To: ltp@lists.linux.it
> Sent: Tuesday, 5 January, 2016 12:11:36 PM
> Subject: [LTP] Test library API changes
>
> Hi!
> I'm back after my vacation and I had a some time to experiment with the
> LTP test API. My intention is to make the changes in the next
> development cycle. I.e. we will concentrate on the release in upcoming
> weeks and once that is taken care of I would like to discuss these
> changes.
>
> I've pushed one cleanup that removes tst_res() and tst_brk() from the
> codebase today since there was only one test using this interface and
> that was a typo anyway.
>
> Two patches that actually implement sketch of the new API are in forked
> LTP repository at:
>
> https://github.com/metan-ucw/ltp
>
> The interesting files are:
>
> https://github.com/metan-ucw/ltp/blob/master/include/tst_test.h
> and
> https://github.com/metan-ucw/ltp/blob/master/lib/tst_test.c
> and one testcase that has been converted to the new library:
> https://github.com/metan-ucw/ltp/blob/master/testcases/kernel/syscalls/preadv/preadv01.c
>
> The general intention is to move as much code to the library as possible
> in order to avoid common mistakes and also to let the programmer
> concentrate on the test itself rather than spending time figuring out
> the test library API.
>
> One of the important changes is that the library functionality is
> exported as bitflags in the test structure rather than function calls,
> this makes the library much easier to use since this eliminates all
> problems with ordering of the resource inits/cleanups.
>
> Another big change is that the process no longer runs the test function
> itself but rather than that export pointer to the function that runs the
> test. This would allow us to finally fix problems with test timeouts
> etc. since we can easily fork in the test library before we start
> execution the test code and watch for segfaults/timeouts etc.
>
> The code I've wrote just a proof of concept and by no means complete.
> It's intended to start a conversation (I can send it as a patch here as
> well if desired, but I do not think that it makes sense for so early
> prototype).
Hi,
1) https://github.com/metan-ucw/ltp/blob/master/include/tst_test.h#L65
I did like there is option for test_all(). One concern I had was
that forcing everybody to use test(int) was too restrictive.
For example, you want to pass more parameters than just testcase #.
Also not all tests follow "static struct tcase {" idiom, with single
test function that is fed different arguments. I think test_all()
gives us more flexibility. I was also thinking if library should
care about "tcnt".
2) https://github.com/metan-ucw/ltp/blob/master/lib/tst_test.c#L218-L219
This also looks more strict requirement than what we had until now.
It requires to count exactly how many PASS/FAIL there are.
Is extra PASS or SKIP message a reason to fail the test with brk?
3) cleanup and children
I know, it's a proof of concept :-).
4) After first reading, I'm not sure I have clear picture of changes in API.
From what I gathered these are main changes:
test.h -> tst_test.h
tst_resm -> tst_res
tst_brkm -> tst_brk
safe_macros.h -> tst_safe_macros.h (now included via tst_test.h)
Did I miss anything?
Regards,
Jan
>
> --
> Cyril Hrubis
> chrubis@suse.cz
>
> --
> Mailing list info: http://lists.linux.it/listinfo/ltp
>
next prev parent reply other threads:[~2016-01-07 13:01 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-05 11:11 [LTP] Test library API changes Cyril Hrubis
2016-01-07 13:01 ` Jan Stancek [this message]
2016-01-07 13:27 ` Cyril Hrubis
2016-02-04 10:56 ` Cyril Hrubis
2016-02-08 18:02 ` Cyril Hrubis
2016-02-09 16:43 ` Cyril Hrubis
2016-02-09 16:57 ` Cyril Hrubis
2016-02-09 17:46 ` Cyril Hrubis
2016-02-10 10:42 ` Jan Stancek
2016-02-10 10:56 ` Cyril Hrubis
2016-02-10 11:41 ` Cyril Hrubis
2016-02-11 16:03 ` Cyril Hrubis
2016-02-12 12:33 ` Jan Stancek
2016-02-12 17:53 ` Cyril Hrubis
2016-02-16 21:19 ` Cyril Hrubis
2016-02-17 14:39 ` Jan Stancek
2016-02-17 15:54 ` Cyril Hrubis
2016-02-18 9:05 ` Jan Stancek
2016-02-18 11:07 ` Cyril Hrubis
2016-02-18 11:26 ` Jan Stancek
2016-02-18 11:53 ` Cyril Hrubis
2016-03-02 14:44 ` Cyril Hrubis
2016-03-03 13:13 ` Jan Stancek
2016-03-03 14:00 ` Cyril Hrubis
2016-03-10 16:57 ` Cyril Hrubis
2016-03-11 13:57 ` Jan Stancek
2016-03-14 12:51 ` Cyril Hrubis
2016-03-14 16:00 ` Cyril Hrubis
2016-03-15 8:58 ` Jan Stancek
2016-03-15 9:22 ` Cyril Hrubis
2016-03-17 16:06 ` Cyril Hrubis
2016-03-18 9:44 ` Jan Stancek
2016-03-31 10:01 ` Cyril Hrubis
2016-04-01 14:45 ` Jan Stancek
2016-04-04 12:04 ` Cyril Hrubis
2016-04-04 14:12 ` Jan Stancek
2016-04-05 14:16 ` Cyril Hrubis
2016-04-05 15:06 ` Jan Stancek
2016-04-06 10:37 ` Cyril Hrubis
2016-03-14 16:40 ` Cyril Hrubis
2016-02-18 9:14 ` Alexey Kodanev
2016-02-18 10:40 ` Cyril Hrubis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1146864418.5284131.1452171696007.JavaMail.zimbra@redhat.com \
--to=jstancek@redhat.com \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.