Re: Where to put test code?

2012-09-20 Thread Frederic Weisbecker
2012/9/20 Daniel Santos :
> Thanks for the response!
>
> On 09/19/2012 05:18 PM, Frederic Weisbecker wrote:
>> 2012/9/19 Daniel Santos :
>>> I'm putting the finishing touches on the generic red-black tree test
>>> code, but I'm uncertain about where to place it exactly.
>>>
>>> I haven't finished the test module just yet, but the idea is that the
>>> tests can be run in userspace as well as kernelspace to make it easier
>>> to test on multiple compilers.  It has some common sources files (used
>>> by in both places) and then specific code for both user- and
>>> kernel-space that I currently have as follows:
>>>
>>> tools/testing/selftests/grbtree/   - common.{c,h}
>>> tools/testing/selftests/grbtree/user   - user-space main.c, Makefile, etc.
>>> tools/testing/selftests/grbtree/module - kernel-space grbtest.c,
>>> Makefile, etc.
>>>
>>> Would this be correct or should the common & module code go some place
>>> else and then just have the user-space code under
>>> tools/testing/selftests/grbtest?
>> It depends on the nature of your tests. Are these pure validation
>> tests (some batch
>> tests that perform actions and check the result is correct) or stress
>> tests (something
>> that runs for a while)?
> The program does both performance measurement tests and validation tests
> based upon what you pass at the command line.  The primary aim is to
> measure performance differences between the generic code and specific
> (hand-coded) implementations on various compilers.  The secondary aim is
> to provide validation that the results are correct in all
> circumstances.  I'm not sure in this case what would be considered a
> "stress" test.

Ok. The selftests in tools/testing/selftest run in batch, so if there
is one in the middle that does stress tests for a while, it delays the
other tests. The purpose for these units tests are to quickly detect
for regressions or anything that break expected results.

Your test sounds like a good candidate for that directory I guess.

>
>> If these are only about validation tests, then both user and module
>> can be in that
>> tools/testing/selftests directory.
>>
>> What is the module doing?
> The module is the exact same thing, except built in kernel-space, where
> the actual code will normally reside.  Parameters are passed when you
> load the module and it unloads when the test is complete.  Perhaps what
> I omitted is that the user-space program is generated partially by
> compiling sources and headers that are intended for kernel-space only,
> but linked with glibc using some cute hacks.  This is done mostly to
> ease the process of testing the code with multiple compilers.

Ok, looks good as well.

Thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Where to put test code?

2012-09-19 Thread Daniel Santos
Thanks for the response!

On 09/19/2012 05:18 PM, Frederic Weisbecker wrote:
> 2012/9/19 Daniel Santos :
>> I'm putting the finishing touches on the generic red-black tree test
>> code, but I'm uncertain about where to place it exactly.
>>
>> I haven't finished the test module just yet, but the idea is that the
>> tests can be run in userspace as well as kernelspace to make it easier
>> to test on multiple compilers.  It has some common sources files (used
>> by in both places) and then specific code for both user- and
>> kernel-space that I currently have as follows:
>>
>> tools/testing/selftests/grbtree/   - common.{c,h}
>> tools/testing/selftests/grbtree/user   - user-space main.c, Makefile, etc.
>> tools/testing/selftests/grbtree/module - kernel-space grbtest.c,
>> Makefile, etc.
>>
>> Would this be correct or should the common & module code go some place
>> else and then just have the user-space code under
>> tools/testing/selftests/grbtest?
> It depends on the nature of your tests. Are these pure validation
> tests (some batch
> tests that perform actions and check the result is correct) or stress
> tests (something
> that runs for a while)?
The program does both performance measurement tests and validation tests
based upon what you pass at the command line.  The primary aim is to
measure performance differences between the generic code and specific
(hand-coded) implementations on various compilers.  The secondary aim is
to provide validation that the results are correct in all
circumstances.  I'm not sure in this case what would be considered a
"stress" test.

> If these are only about validation tests, then both user and module
> can be in that
> tools/testing/selftests directory.
>
> What is the module doing?
The module is the exact same thing, except built in kernel-space, where
the actual code will normally reside.  Parameters are passed when you
load the module and it unloads when the test is complete.  Perhaps what
I omitted is that the user-space program is generated partially by
compiling sources and headers that are intended for kernel-space only,
but linked with glibc using some cute hacks.  This is done mostly to
ease the process of testing the code with multiple compilers.

Daniel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Where to put test code?

2012-09-19 Thread Frederic Weisbecker
2012/9/19 Daniel Santos :
> I'm putting the finishing touches on the generic red-black tree test
> code, but I'm uncertain about where to place it exactly.
>
> I haven't finished the test module just yet, but the idea is that the
> tests can be run in userspace as well as kernelspace to make it easier
> to test on multiple compilers.  It has some common sources files (used
> by in both places) and then specific code for both user- and
> kernel-space that I currently have as follows:
>
> tools/testing/selftests/grbtree/   - common.{c,h}
> tools/testing/selftests/grbtree/user   - user-space main.c, Makefile, etc.
> tools/testing/selftests/grbtree/module - kernel-space grbtest.c,
> Makefile, etc.
>
> Would this be correct or should the common & module code go some place
> else and then just have the user-space code under
> tools/testing/selftests/grbtest?

It depends on the nature of your tests. Are these pure validation
tests (some batch
tests that perform actions and check the result is correct) or stress
tests (something
that runs for a while)?

If these are only about validation tests, then both user and module
can be in that
tools/testing/selftests directory.

What is the module doing?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/