Skip to content

Commit

Permalink
[Misc] Fix unstable feature tests
Browse files Browse the repository at this point in the history
Summary: Fix unstable feature tests

Test Plan: github action

Reviewed-by: yuleil, Accelerator1996

Issue: #301
  • Loading branch information
joeylee.lz committed Apr 8, 2022
1 parent d980158 commit 2fb3f42
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 47 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/submit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ jobs:
runs-on: "ubuntu-20.04"
container:
image: docker.io/dragonwelljdk/build_jdk:8u
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
Expand Down
10 changes: 1 addition & 9 deletions hotspot/test/ProblemList.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,4 @@ runtime/coroutine/PreemptWispInternalBugTest.java generic-all
runtime/coroutine/PremainWithWispMonitorTest.java generic-all
runtime/coroutine/PremainWithWispMonitorTest.java generic-all
runtime/coroutine/WispStealMonitorC2Test.java generic-all
serviceability/sa/jmap-hashcode/Test8028623.java generic-all
jwarmup/issue9780156.sh generic-all
jwarmup/TestCheckIfCompilationIsComplete.sh generic-all
jwarmup/TestDisableMethodData.sh generic-all
jwarmup/TestNotDeoptJITMethod.sh generic-all
jwarmup/TestNotifyDeopt.sh generic-all
jwarmup/TestTieredCompilationInRecording.sh generic-all
multi-tenant/TestParGCAllocatorLeak.sh generic-all
multi-tenant/TestTenantJVMOptions.sh generic-all
serviceability/sa/jmap-hashcode/Test8028623.java generic-all
6 changes: 0 additions & 6 deletions jdk/test/ProblemList.txt
Original file line number Diff line number Diff line change
Expand Up @@ -420,14 +420,8 @@ jdk/net/rsocket/SocketChannel/VectorIO.java generic-all
jdk/net/rsocket/Socket/GetLocalAddress.java generic-all
jdk/net/rsocket/SocketOption/OptionsTest.java generic-all
jdk/net/rsocket/SocketOption/UnsupportedOptionsTest.java generic-all
com/alibaba/wisp/bug/TestThreadStackTrace.sh generic-all
com/alibaba/wisp/bug/WispSocketLeakWhenConnectTimeoutTest.java generic-all
com/alibaba/wisp2/Wisp2StackSizeTest.java generic-all
com/alibaba/wisp2/Wisp2WorkStealTest.java generic-all
com/alibaba/wisp/monitor/PassTokenTest.java generic-all
com/alibaba/wisp/bug/WispSelectorReadyOpsTest.java generic-all
com/alibaba/wisp2/NmtTracingWispTaskRecycleTest.java generic-all
com/alibaba/wisp2/WispControlGroupCpuTest.java generic-all

# resource limit

Expand Down
38 changes: 17 additions & 21 deletions jdk/test/com/alibaba/wisp/bug/TestThreadStackTrace.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,11 @@ TEST_SOURCE=${TEST_CLASS}.java

###################################################################################


cat > ${TESTCLASSES}${FS}$TEST_SOURCE << EOF
import com.alibaba.wisp.engine.WispEngine;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicBoolean;
import sun.misc.SharedSecrets;
import jdk.internal.misc.SharedSecrets;
import java.util.concurrent.Executors;
import java.util.concurrent.*;
Expand All @@ -76,6 +75,7 @@ public class TmpThreadStackTrace {
}
});
AtomicBoolean result = new AtomicBoolean(true);
String[] errMsg = new String[1];
CountDownLatch done = new CountDownLatch(1);
Thread mainThread = Thread.currentThread();
Thread[] ts = new Thread[1];
Expand All @@ -84,14 +84,13 @@ public class TmpThreadStackTrace {
try {
if (ts[0].getStackTrace().length == 0 || mainThread.getStackTrace().length == 0
|| Thread.currentThread().getStackTrace().length == 0) {
errMsg[0] = "unexpected stacktrace length";
result.set(false);
}
runningCoroutine.getStackTrace();
result.set(false);
} catch (Exception e) {
if (!(e instanceof UnsupportedOperationException)) {
result.set(false);
}
errMsg[0] = "unexpected exception";
result.set(false);
} finally {
done.countDown();
}
Expand All @@ -101,13 +100,14 @@ public class TmpThreadStackTrace {
System.out.println("in main");
executor.shutdown();
if (!result.get()) {
System.out.println(errMsg[0]);
throw new Error("test failure");
}
}
public static void main(String[] args) throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
WispEngine.current().execute(() -> {
WispEngine.dispatch(() -> {
for (int i = 0; i < 5; i++) {
System.out.println(i);
Thread.currentThread().getStackTrace();
Expand All @@ -123,7 +123,7 @@ public class TmpThreadStackTrace {
EOF

# Do compilation
${JAVAC} -cp ${TESTCLASSES} -d ${TESTCLASSES} ${TESTCLASSES}${FS}$TEST_SOURCE >> /dev/null 2>&1
${JAVAC} --add-exports java.base/jdk.internal.misc=ALL-UNNAMED -cp ${TESTCLASSES} -d ${TESTCLASSES} ${TESTCLASSES}${FS}$TEST_SOURCE >> /dev/null 2>&1
if [ $? != '0' ]
then
printf "Failed to compile ${TESTCLASSES}${FS}${TEST_SOURCE}"
Expand All @@ -132,18 +132,14 @@ fi

#run
${JAVA} -XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dcom.alibaba.wisp.carrierEngines=1 -cp ${TESTCLASSES} ${TEST_CLASS} > output.txt 2>&1
rm -f $TEST_WISP_CONFIG
cat output.txt

function assert()
{
line=`cat output.txt | grep ThreadDump | wc -l`
echo $line
if [[ $line -eq "2" ]]; then
echo "success"
else
echo "failure"
exit -1
fi
}

assert
line=`cat output.txt | grep ThreadDump | wc -l`
echo $line
if [ $line -eq "2" ]; then
echo "success"
else
echo "failure"
exit -1
fi
Original file line number Diff line number Diff line change
Expand Up @@ -24,27 +24,28 @@
* @library /lib/testlibrary
* @summary test the fix to fd leakage when socket connect timeout
* @requires os.family == "linux"
* @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableCoroutine -Dcom.alibaba.wisp.transparentWispSwitch=true WispSocketLeakWhenConnectTimeoutTest
* @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableCoroutine -Dcom.alibaba.wisp.transparentWispSwitch=true TestWispSocketLeakWhenConnectRefused
*/

import java.io.IOException;
import java.net.ConnectException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketTimeoutException;

import static jdk.testlibrary.Asserts.assertTrue;

public class WispSocketLeakWhenConnectTimeoutTest {
public class TestWispSocketLeakWhenConnectRefused {
public static void main(String[] args) throws IOException {
Socket so = new Socket();
boolean timeout = false;
boolean refused = false;
try {
so.connect(new InetSocketAddress("www.example.com", 80), 5);
} catch (SocketTimeoutException e) {
so.connect(new InetSocketAddress("127.0.0.1", 80), 5);
} catch (ConnectException e) {
assertTrue(so.isClosed());
timeout = true;
refused = true;
}

assertTrue(timeout, "SocketTimeoutException should been thrown");
assertTrue(refused, "connectionRefused should been thrown");
}
}
5 changes: 5 additions & 0 deletions jdk/test/com/alibaba/wisp2/Wisp2StackSizeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@

public class Wisp2StackSizeTest {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
// warm up
RecTester.tryRec(1024 * 1024);
}

int prevDepth = 0, curDepth = 0;

for (int i = 128; i <= 1024; i *= 2) {
Expand Down
6 changes: 2 additions & 4 deletions jdk/test/com/alibaba/wisp2/WispControlGroupCpuTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,7 @@ public static void main(String[] args) throws Exception {
Long duration1 = future1.get();
Long duration2 = future2.get();
Long duration3 = future3.get();
double ratio = (double) duration1 / duration0;
assertLT(Math.abs(ratio - 0.5), 0.1, "deviation is out of reasonable scope " + ratio);
ratio = (double) duration3 / duration2;
assertLT(Math.abs(ratio - 0.5), 0.1, "deviation is out of reasonable scope " + ratio);
assertLT(duration0, duration1, "deviation is out of reasonable scope " + duration0 + "," + duration1);
assertLT(duration2, duration3, "deviation is out of reasonable scope " + duration2 + "," + duration3);
}
}

0 comments on commit 2fb3f42

Please sign in to comment.