Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 10
    • Fix Version/s: 10
    • Component/s: infrastructure
    • Labels:
      None

      Description

      With the repository consolidated (JDK-8165183), it makes sense to reorganize the test as follows: for each of the existing test directories

          $OPENJDK/hotspot/test
          $OPENJDK/jaxp/test
          $OPENJDK/jdk/test
          $OPENJDK/langtools/test/
          $OPENJDK/nashorn/test

      move those directories under a single

          $OPENJDK/test

      directory to result in


          $OPENJDK/test/hotspot
          $OPENJDK/test/jdk
          ...

      Either as part of this bug or as a separate issue, the TEST.ROOT and TEST.groups files from those directories can be combined.

        Issue Links

          Activity

          darcy Joe Darcy created issue -
          darcy Joe Darcy made changes -
          Field Original Value New Value
          Link This issue relates to JDK-8165183 [ JDK-8165183 ]
          darcy Joe Darcy made changes -
          Link This issue relates to JDK-8165185 [ JDK-8165185 ]
          darcy Joe Darcy made changes -
          Fix Version/s 10 [ 16302 ]
          Hide
          darcy Joe Darcy added a comment - - edited
          Some straightforward updates to the TEST.groups and TEST.ROOT file are needed to implement the approach described above:

          * The directories referred to in the TEST.ROOT file need to be updated for the new file layout (othervm.dirs, lib.dirs, exclusiveAccess.dirs, external.lib.roots).
          * The groups definitions needs to refer to the other groups files; e.g.
          groups=TEST.groups langtools/TEST.groups nashorn/TEST.groups jaxp/TEST.groups
          * In the nested TEST.groups files, the target definitions need to be updated to use path from the root. For example, in langtools the definition of tier 1 goes from

          tier1 = \
              com \
              jdk \
              [...]

          to
          langtools_tier1 = \
              langtools/com \
              langtools/jdk \
              [...]

          The top-level groups files is added to refer to the nested groups files:

          $ more TEST.groups
          tier1 =\
              :jaxp_tier1 \
              :langtools_tier1 \
              :nashorn_tier1

          tier2 =\
              :jaxp_tier2 \
              :langtools_tier2 \
              :nashorn_tier2

          tier3 =\
              :jaxp_tier3 \
              :langtools_tier3 \
              :nashorn_tier3

          with tier${N} => ${LEGACY_REPO}tier${N} renames.
          Show
          darcy Joe Darcy added a comment - - edited Some straightforward updates to the TEST.groups and TEST.ROOT file are needed to implement the approach described above: * The directories referred to in the TEST.ROOT file need to be updated for the new file layout (othervm.dirs, lib.dirs, exclusiveAccess.dirs, external.lib.roots). * The groups definitions needs to refer to the other groups files; e.g. groups=TEST.groups langtools/TEST.groups nashorn/TEST.groups jaxp/TEST.groups * In the nested TEST.groups files, the target definitions need to be updated to use path from the root. For example, in langtools the definition of tier 1 goes from tier1 = \     com \     jdk \     [...] to langtools_tier1 = \     langtools/com \     langtools/jdk \     [...] The top-level groups files is added to refer to the nested groups files: $ more TEST.groups tier1 =\     :jaxp_tier1 \     :langtools_tier1 \     :nashorn_tier1 tier2 =\     :jaxp_tier2 \     :langtools_tier2 \     :nashorn_tier2 tier3 =\     :jaxp_tier3 \     :langtools_tier3 \     :nashorn_tier3 with tier${N} => ${LEGACY_REPO}tier${N} renames.
          darcy Joe Darcy made changes -
          Assignee Joe Darcy [ darcy ]
          Hide
          darcy Joe Darcy added a comment -
          Webrev of in-progress work. Displays odd behavior from jtreg.
          Show
          darcy Joe Darcy added a comment - Webrev of in-progress work. Displays odd behavior from jtreg.
          darcy Joe Darcy made changes -
          Attachment webrev-2016-09-29.zip [ 63696 ]
          erikj Erik Joelsson made changes -
          Affects Version/s 10 [ 16302 ]
          erikj Erik Joelsson made changes -
          Status New [ 10000 ] Open [ 1 ]
          Hide
          jjg Jonathan Gibbons added a comment -
          The "odd behavior from jtreg" is caused by obsolete nested TEST.ROOT files, that need to be deleted.

          This one is OK:
          test/TEST.ROOT

          These ones are problematic and need to be deleted:
          test/failure_handler/test/TEST.ROOT
          test/hotspot/java/TEST.ROOT
          test/jaxp/TEST.ROOT
          test/jdk/TEST.ROOT
          test/langtools/TEST.ROOT
          test/nashorn/TEST.ROOT
          Show
          jjg Jonathan Gibbons added a comment - The "odd behavior from jtreg" is caused by obsolete nested TEST.ROOT files, that need to be deleted. This one is OK: test/TEST.ROOT These ones are problematic and need to be deleted: test/failure_handler/test/TEST.ROOT test/hotspot/java/TEST.ROOT test/jaxp/TEST.ROOT test/jdk/TEST.ROOT test/langtools/TEST.ROOT test/nashorn/TEST.ROOT
          Hide
          darcy Joe Darcy added a comment -
          I've verified deleting the redundant TEST.ROOT files resolves the discrepancies.
          Show
          darcy Joe Darcy added a comment - I've verified deleting the redundant TEST.ROOT files resolves the discrepancies.
          darcy Joe Darcy made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          darcy Joe Darcy made changes -
          Summary Flatten test directories under one root Update jtreg configuration files
          darcy Joe Darcy made changes -
          Priority P4 [ 4 ] P3 [ 3 ]
          Hide
          darcy Joe Darcy added a comment -
          All the langtools tests pass when jtreg itself is run against a JDK 8 version JDK 7.
          Show
          darcy Joe Darcy added a comment - All the langtools tests pass when jtreg itself is run against a JDK 8 version JDK 7.
          Hide
          erikj Erik Joelsson added a comment -
          In my current prototype, the tests are working in the new layout.
          Show
          erikj Erik Joelsson added a comment - In my current prototype, the tests are working in the new layout.
          erikj Erik Joelsson made changes -
          Assignee Joe Darcy [ darcy ] Erik Joelsson [ erikj ]
          Hide
          erikj Erik Joelsson added a comment -
          In the current prototype, I have not combined the test roots into one. I think we should do that later, but the amount of changes needed for the makefiles and configuration made me opt for keeping the individual roots for now. The test layout is basically as described above with one difference for hotspot:

          test/hotspot/jtreg/TEST.ROOT
          test/hotspot/gtest/...

          Since hotspot has tests written for more than one framework, we wanted to separate those explicitly. I chose to separate them using the framework names instead of arbitrary "java" and "native" as has previously been suggested, as to me that makes a ton more sense.

          The closed tests are now in a completely separate directory which means they have their own test roots. This has required some editing of the TEST.groups files to keep all groups equivalent with before the consolidation.
          Show
          erikj Erik Joelsson added a comment - In the current prototype, I have not combined the test roots into one. I think we should do that later, but the amount of changes needed for the makefiles and configuration made me opt for keeping the individual roots for now. The test layout is basically as described above with one difference for hotspot: test/hotspot/jtreg/TEST.ROOT test/hotspot/gtest/... Since hotspot has tests written for more than one framework, we wanted to separate those explicitly. I chose to separate them using the framework names instead of arbitrary "java" and "native" as has previously been suggested, as to me that makes a ton more sense. The closed tests are now in a completely separate directory which means they have their own test roots. This has required some editing of the TEST.groups files to keep all groups equivalent with before the consolidation.
          erikj Erik Joelsson made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          amlu Amy Lu made changes -
          Link This issue relates to JDK-8187255 [ JDK-8187255 ]
          amlu Amy Lu made changes -
          Link This issue relates to JDK-8187276 [ JDK-8187276 ]
          amlu Amy Lu made changes -
          Link This issue relates to JDK-8187310 [ JDK-8187310 ]
          erikj Erik Joelsson made changes -
          Summary Update jtreg configuration files Preparation: Update jtreg configuration files
          Hide
          jjg Jonathan Gibbons added a comment -
          [~erikj] Re: the preceding comment:

          If we really mean to consolidate the test directories, how about

              test/
                  jtreg/
                      hotspot/
                      jdk/
                      langtools/
                  gtest/

          In other words, use
              test / <framework> / <historical-group>
          Show
          jjg Jonathan Gibbons added a comment - [~erikj] Re: the preceding comment: If we really mean to consolidate the test directories, how about     test/         jtreg/             hotspot/             jdk/             langtools/         gtest/ In other words, use     test / <framework> / <historical-group>
          Hide
          erikj Erik Joelsson added a comment -
          That is an interesting proposal, but we are out of time for that kind of change at this point unless we want to delay the consolidation.
          Show
          erikj Erik Joelsson added a comment - That is an interesting proposal, but we are out of time for that kind of change at this point unless we want to delay the consolidation.
          Hide
          jjg Jonathan Gibbons added a comment -
          If we are not going to merge the jdk and hotspot test directories, it is not worth merging any other combinations.

          If you're still thinking to have a single test directory for jtreg, with a TEST.ROOT in test/TEST.ROOT, I would recommend an update to jtreg to allow it to ignore test/gtest.

          Show
          jjg Jonathan Gibbons added a comment - If we are not going to merge the jdk and hotspot test directories, it is not worth merging any other combinations. If you're still thinking to have a single test directory for jtreg, with a TEST.ROOT in test/TEST.ROOT, I would recommend an update to jtreg to allow it to ignore test/gtest.
          Hide
          dholmes David Holmes added a comment -
          Such a proposal would also require further discussion. Different components use different frameworks. I much prefer the ability to run any combination of component tests from one directory ie hotspot.
          Show
          dholmes David Holmes added a comment - Such a proposal would also require further discussion. Different components use different frameworks. I much prefer the ability to run any combination of component tests from one directory ie hotspot.
          Hide
          jjg Jonathan Gibbons added a comment -
          Understood: I'm just pointing out the consequences of not moving towards a consistent overall organization for tests.
          Show
          jjg Jonathan Gibbons added a comment - Understood: I'm just pointing out the consequences of not moving towards a consistent overall organization for tests.

            People

            • Assignee:
              erikj Erik Joelsson
              Reporter:
              darcy Joe Darcy
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: