On 01/16/13 02:58 AM, Stuart Marks wrote:
Jon,

I (somewhat) agree! :-)

The current state of affairs is as you say, merely an artifact of our internal build system. It would indeed be preferable for Balchandra to gather up the right set of tests and run them in a single run of jtreg.

The problem is that there is some information encoded in the makefile targets that would be lost if that were done. It's not just the lists of directories. Some of the targets run the tests in othervm mode, and some in agentvm mode. Some of the targets call a SharedLibraryPermissions macro that does some magic. (Hm, see big comment at line 670 of jdk/test/Makefile.) The makefile targets also invoke jtreg with a specific set of options, including using the problem list as the exclude list.

I believe make targets get run during jprt build process and then RE will
create a full build. After that, I take RE build and run tests. So, I think,
running tests with slightly different option is not necessarily a problem -
rather I would think it confirm stability/quality of the tests! Moreover, at least in theory, jtreg option itself should not alter test output (except test
failure with resource/logistical issues such as memory, timeout,  etc.. ).


Assuming jtreg options are managed to avoid logistical issues, any failure
probably indicates requirement of manual intervention to check whether
any improvement possibility in test or product.



I'd like to avoid having this information extracted from the makefiles and copied into external scripts somewhere. They'll eventually diverge, resulting in confusion.

Ideally there would be some makefile hackery to emit this information in a form directly usable by outside scripts, but that will take some time.

Maybe some of the information could be extracted manually and placed into the repo itself, in a fashion that external scripts can use. This is kind of like the duplication between jprt.properties and the makefiles. This is unpleasant, but at least it confines the duplication to be within the repo.

Meanwhile, in the short term, it might be possible for Balchandra to invoke the 17(!) different makefile targets and merge the results.

There were 22 (excluding jdk_awt and jdk_swing) targets, and were running ~3600 tests combined. But, I see some changes in Makefile targets since my last try. I will rerun and see how many tests it
will run.



Thanks
Balchandra




This is also unpleasant, but if it's not too much trouble, it might be reasonable to do. On the other hand, if it turns into a real pain for some reason or another, maybe we needn't bother.

s'marks

On 1/15/13 4:32 PM, Jonathan Gibbons wrote:
Uugh uugh uugh.

Stuart, I (somewhat) disagree. The current way of running the tests is a horrible artifact of our internal JPRT system, and the desire to split the test load up across machines. It is not something I would recommend sane person
doing by choice.

I agree with the need to have coordination between the way the small targets work and a bigger target, but the way to do this is to merge the directories given on the jtreg command line, not try and merge the output of multiple test
runs.

-- Jon



On 01/15/2013 04:18 PM, Stuart Marks wrote:
Hi Balchandra,

What you've done seems reasonable given that you're just trying to get the
initial setup going.

I really think it would be preferable to use the actual makefile targets
instead of assembling a directory list. The reason is that the makefile
targets not only have lists of directories, they may also specify various jtreg options differently depending upon the target. For example, the jdk_rmi tests are all run in othervm mode (a run mode of jtreg) which is different from most of the other makefile targets. This information is only present in
the makefile targets.

Would it be difficult to run all the makefile targets individually and
combine the results? Yes, there are (I think) 17 makefile targets, but it
wouldn't be too bad if the combination process could be automated.

My main concern is that if you end up running a different set of tests from our internal nightly build and internal developer builds, the results would
be difficult to compare.

s'marks

On 1/14/13 4:02 AM, Balchandra Vaidya wrote:
I think you made all valid points. Here are some my observations:

Issue 1: As you described, jdk_all and jdk_default targets depends on
individual
targets and invoke jtreg once. The issue is, the make seems to exit with Error
when
there is an error(or failure!) in any individual target! Effectively, I
never got
jdk_all and jdk_default targets completed start to finish.

Issue 2: jdk_all target includes awt and swing tests.  There are some
instability
at the moment and difficult to get consistent results. Some awt tests may
required
to be run on OS console.

Issue 3: jdk_default target do not include targets such as jdk_bean1,
jdk_bean2,etc.
and those tests are good and runs without any issue.  That is, using
jdk_default target
runs many fewer tests (See Issue 1, however) than we would like to run.

Therefore, I tried

1) running individual targets (wrapped in a shell script) and merging test
results
  (jtreg -ro). I managed to get to run ~3600 tests.

2) selected dir.list and passed it to jtreg directly. I managed to run ~4000
tests. So,
started to publish this option.

Obviously, this is not an ideal/clean solution because tests added under a new directory or under a new make target may not be executed. So, centrally
managed
'dir.list' (include stable directory) might help.


Reply via email to