[rfc] [icedtea-web] blacklist for reproducers
Jiri Vanek
jvanek at redhat.com
Tue Apr 10 04:42:48 PDT 2012
On 04/09/2012 12:56 AM, Omair Majid wrote:
> On 04/06/2012 08:56 AM, Jiri Vanek wrote:
>> Hi!
>>
>> This is second from total of 5 patches which are introducing Tets For
>> Applets[1]
>>
>> Thus particular one is introducing blacklist. The test-engine is
>> delivered to class-path together with all reproducers' testcases. If the
>> file form engine is interface, have no @Test methods or does not meet
>> constructor requirements, then the file fails, and this is making our
>> statistics misleading.
>> Also I'm expecting growing of engine (now I'm planing @bug and @browser
>> annotations and some more logic around. See content of ignore-list after
>> all this changes[2]. Also I would like to refactor ServerAccess class
>> little bit in long term (as it have grown littlebit and have to much
>> inner classes right now) future...
>>
>> Probably cleaner solution will be to separate testengine from testaces
>> more then it is now, but I have tried this refactoring and I was getting
>> deeper and deeper and it was bringing more and more issues. From this
>> I'm really for blacklist rather then for refactoring.
>> Also one more benefit is here - you can easili blacklist all reproducers
>> except one or two fro make ;)
I was afraid you will say something like this...
>
> I feel rather uncomfortable with this. I really think the underlying
> problem should be fixed instead. Using band-aids like this works in the
> short-term but makes icedtea-web worse in the long term.
>
> If there is some effort required to fix the test-engine, lets do that.
> If the tests are wrong, lets remove them. If it makes sense to run only
> a few tests, adding that would be pretty nice (like how jtreg does it by
> allowing a user to specify a directory to find tests in) but a blacklist
> looks really fishy.
>
> Omair
So lets dig what is necessary to do.
We have
netx directory with sources of nex
├── javax
│ └── jnlp
└── net
└── sourceforge
├── jnlp
...
│ ├── tools
│ └── util
...
└── nanoxml
and we have
tests directory with
├── jnlp_tests - source files and testcases for reproducers
│ ├── signed
...
│ └── simple
...
├── junit-runner - launcher for both testsuites
├── netx - directory containg unittests, pac tests, *infrastructure for reproducers* and *tests of
infrastructure* (virtual server...)
│ ├── jnlp_testsengine - *both* infrastructure for reproducers *and* tests of infrastructure
│ │ └── net
│ │ └── sourceforge
│ │ └── jnlp
│ ├── pac - sources of pac tests
│ └── unit - sources of unittests
│ └── net
│ └── sourceforge
│ └── jnlp
│ ├── application
│ ├── runtime
│ ├── templates
│ └── util
│ └── replacements
The we have compile-time and run-time dependencies in makefile (I'm usinf sources locations instead
of tests.build in this text wilfully)
They are currently :
compile-time of unittests:
netx and tests/netx/unit
run-time of unittests:
junit-runner netx and tests/netx/unit
compile-time of reproducer's sources:
netx and tests/jnlp_tests/signed|simple/reproducer/src/
compile-time of reproducer's testcases:
netx tests/netx/jnlp_testsengine and tests/jnlp_tests/signed|simple/reproducer/testcase/ (all
testcases together)
runtime-time of reproducer's sources:
junit-runner netx and from its jnlp/html (mostly in jnlp_tests_server with jars created from
tests/jnlp_tests/signed|simple/sources/testcase/)
run-time of reproducer's testcases:
junit-runner netx tests/netx/jnlp_testsengine and
tests/jnlp_tests/signed|simple/reproducer/testcase/(all testcases together)
And second thing is where the classes of tests are taken:
for unittests all files inisde tests/unit
for reproducers all files tests/netx/jnlp_testsengine and
tests/jnlp_tests/signed|simple/reproducer/testcase/
The error is obvious. tests/netx/jnlp_testsengine contains both tests and logic
My opinion here will be to unify above as much as possible.
When you will check [1] for browserTests-BugAnnotation [2] you will see how few other issues "solved
below" raised.
[1]http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017799.html
[2]http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/browserTests-BugAnnotation-0001.diff
1) move all tests from tests/netx/jnlp_testsengine to tests/netx/unit where they belongs IMHO
1.5) With this refactoring I would like to extract all inner classes from ServerAccess
2) fix compile and runtime class-path of unittests for tests/netx/jnlp_testsengine
3) during reproducers run launch *just* compiled testcases
4) no more tests in tests/netx/jnlp_testsengine, framework will be tested in unittests (same as (1)
but just for ensuring..:) )
4.5) unittets and reprodyucers runs should have same classapth in runtime/compiletime. => unify them
in some variable(s)(?)
5) I'm also for adding tests/netx/jnlp_testsengine to compile class-path of junit-runner (as it
looks useful from [1,2] point of view.
6) Maybe after all of above done the jnlp_testsengine can be renamed and moved somewhere else. (and
also jnlp_tests probably should be moved to tests/netx/) But This should be done as separate changeset.
1-6 - ServerAccess api should not be changed, although maybe some methods private/public/protected
statuses will be transformed due to moving of tests)
What do you think?
For launching just some tests I would like then introduce some whitelist. The logic will be same as
was introduced in this discarded patch, but default value will be ".*" Before wanted run it will
be possible to enter regex matching the set of reproducers determined for run.
What do you think?
J.
More information about the distro-pkg-dev
mailing list