On Wed, 30 Apr 2025 13:12:37 GMT, Lance Andersen <lan...@openjdk.org> wrote:

>> Jaikiran Pai has updated the pull request with a new target base due to a 
>> merge or a rebase. The incremental webrev excludes the unrelated changes 
>> brought in by the merge/rebase. The pull request contains 21 additional 
>> commits since the last revision:
>> 
>>  - Eirik's review about code comments
>>  - fix comment typo
>>  - merge latest from master branch
>>  - 8355975: introduce a test for 8355975
>>  - merge latest from master branch
>>  - merge latest from master branch
>>  - merge latest from master branch
>>  - merge latest from master branch
>>  - merge latest from master branch
>>  - improve code comment for ZipFile.zipCoder
>>  - ... and 11 more: https://git.openjdk.org/jdk/compare/9d9004bf...9a29b960
>
> test/jdk/java/util/zip/ZipFile/ZipFileCharsetTest.java line 68:
> 
>> 66:         // ISO-8859-15 is not a standard charset in Java. We skip this 
>> test
>> 67:         // when it is unavailable
>> 68:         
>> assumeTrue(Charset.availableCharsets().containsKey(ISO_8859_15_NAME),
> 
> I would suggest throwing SkippedException otherwise junit throws 
> org.opentest4j.TestAbortedException  If I understand correctly

Hello Lance, I was under the impression that the jtreg framework would mark an 
aborted junit test as skipped. Now that you mentioned this, I checked locally 
and in its current form, jtreg reports this test as:


STARTED    ZipFileCharsetTest::testCachedZipFileSource 
'testCachedZipFileSource()'
org.opentest4j.TestAbortedException: Assumption failed: skipping test since 
ISO-8859-15 charset isn't available
ABORTED    ZipFileCharsetTest::testCachedZipFileSource 
'testCachedZipFileSource()' [37ms]

[ JUnit Containers: found 4, started 4, succeeded 4, failed 0, aborted 0, 
skipped 0]
[ JUnit Tests: found 1, started 1, succeeded 0, failed 0, aborted 1, skipped 0]




So it's being classified by jtreg as aborted instead of skipped. 

I then took your suggestion to throw `jtreg.SkippedException`:


+import jtreg.SkippedException;
-import static org.junit.jupiter.api.Assumptions.assumeTrue;
 
+ * @library /test/lib
  * @run junit ZipFileCharsetTest
  */
 public class ZipFileCharsetTest {
 
         // ISO-8859-15 is not a standard charset in Java. We skip this test
         // when it is unavailable
-        assumeTrue(Charset.availableCharsets().containsKey(ISO_8859_15_NAME),
-                "skipping test since " + ISO_8859_15_NAME + " charset isn't 
available");
+        if (!Charset.availableCharsets().containsKey(ISO_8859_15_NAME)) {
+            throw new SkippedException("skipping test since " + 
ISO_8859_15_NAME
+                    + " charset isn't available");
+        }



That however makes jtreg mark this test as failed instead of skipped:


STARTED    ZipFileCharsetTest::testCachedZipFileSource 
'testCachedZipFileSource()'
jtreg.SkippedException: skipping test since ISO-8859-15 charset isn't available
    at ZipFileCharsetTest.testCachedZipFileSource(ZipFileCharsetTest.java:70)
    at java.base/java.lang.reflect.Method.invoke(Method.java:565)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
FAILED     ZipFileCharsetTest::testCachedZipFileSource 
'testCachedZipFileSource()' [28ms]
JavaTest Message: JUnit Platform Failure(s): 1

[ JUnit Containers: found 4, started 4, succeeded 4, failed 0, aborted 0, 
skipped 0]
[ JUnit Tests: found 1, started 1, succeeded 0, failed 1, aborted 0, skipped 0]


So it looks like we have an issue here with jtreg when it runs a junit test and 
the test throws `jtreg.SkippedException`. There appears to be an open issue for 
that (although in context of testng) 
https://bugs.openjdk.org/browse/CODETOOLS-7902676.

Given this, I can't think of a different way to handle this situation. Would it 
be OK to continue using `assumeTrue(...)` for now?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/23986#discussion_r2068769646

Reply via email to