ノート
[SUB-TASK] 8381862: Refactor remaining TestNG tests under jdk/net/ExtendedSocketOption to use JUnit
jdk/net/ExtendedSocketOption 配下に残っていた TestNG ベースの NAPI テストを JUnit へ移行しました。
概要#
jdk/net/ExtendedSocketOption 配下には,SO_INCOMING_NAPI_ID の挙動を確認する
TestNG ベースのテストが残っていました。
今回の修正では,以下の 5 ファイルを JUnit へ移行しました1。
AsynchronousSocketChannelNAPITest.javaDatagramChannelNAPITest.javaDatagramSocketNAPITest.javaSocketChannelNAPITest.javaSocketNAPITest.java
基本的な置き換えは,@run testng を @run junit へ,
@BeforeTest を @BeforeAll へ,SkipException を Assumptions.abort(...) へ移す形です。
初期化処理は各テスト・クラス全体に対して一度だけ行えばよいため,
JUnit 側では static @BeforeAll として表現しました。
- * @run testng SocketChannelNAPITest
- * @run testng/othervm -Djava.net.preferIPv4Stack=true SocketChannelNAPITest
+ * @run junit ${test.main.class}
+ * @run junit/othervm -Djava.net.preferIPv4Stack=true ${test.main.class}
また,assertEquals の引数順も JUnit の慣例に合わせて,
期待値を先,実際の値を後にする形へ整理しました。
-assertEquals(socketID, 0, "AsynchronousSocketChannel: Sender");
+assertEquals(0, socketID, "AsynchronousSocketChannel: Sender");
単なるフレームワーク移行だけでなく,NAPI ID の一貫性確認で使っていた
initialRun と一時変数の扱いも見直しました。
最初の受信時の値を originalID として保存し,2 回目以降はその値と比較するようにしています。
これは単純にバグですね。ついでに治しておきましょう。
2026/04/28 PR 作成#
PR では,残っていた TestNG テストを JUnit へ移行し,
@BeforeTest は意図しているスコープに合わせて static @BeforeAll へ置き換えたことを説明しました2。
あわせて,SocketNAPITest では initialRun が最初から false になっており,
他の一部テストでは tempID が毎回更新されていたため,
「最初に観測した ID と以後の ID が一致すること」を確認する意図が弱くなっていました。
そのため,originalID に初回値を保存してから比較する形へ直しました。
2026/04/28-29 レビュー対応#
Alan Bateman 氏3から,assertEquals の引数順を入れ替えた箇所がまだ残っている可能性を指摘いただきました。
Daniel Fuchs 氏4からは,@run junit の対象クラス名を直接書くのではなく,
${test.main.class} を使う提案をいただきました。
Marcono1234 氏5から,既存コードにあった if(initialRun) のスペース不足を指摘いただきました。
ぞれぞれのレビューに対応しました。
2026/04/29-30 追加修正#
その後,Fuchs 氏4から Approve をいただき,/integrate を行いました。
2026/05/05 統合#
同氏に /sponsor をしていただき,91933ed6 として JDK へ統合されました。
Footnotes#
-
8381862: Refactor remaining TestNG tests under jdk/net/ExtendedSocketOption to use JUnit by PeyaPeyaPeyang · Pull Reque…Hi all, I have migrated these classes to JUnit: jdk/net/ExtendedSocketOption/AsynchronousSocketChannelNAPITest.java jdk/net/ExtendedSocketOption/DatagramChannelNAPITest.java jdk/n…GitHub
↩
-
8381862: Refactor remaining TestNG tests under jdk/net/ExtendedSocketOption to use JUnit by PeyaPeyaPeyang · Pull Reque…JDK main-line development https://openjdk.org/projects/jdk - 8381862: Refactor remaining TestNG tests under jdk/net/ExtendedSocketOption to use JUnit by PeyaPeyaPeyang · Pull Requ…GitHub
↩
-
https://openjdk.org/census#alanbopenjdk.org↩
-
https://openjdk.org/census#dfuchsopenjdk.org↩ ↩2
-
Marcono1234 - OverviewMarcono1234 has 89 repositories available. Follow their code on GitHub.GitHub
↩
-
8381862: Refactor remaining TestNG tests under jdk/net/ExtendedSocket… · openjdk/jdk@91933edJDK main-line development https://openjdk.org/projects/jdk - 8381862: Refactor remaining TestNG tests under jdk/net/ExtendedSocket… · openjdk/jdk@91933edGitHub
↩