8268555: Update HttpClient tests that use ITestContext to jtreg 6+1
Reviewed-by: chegar
This commit is contained in:
parent
a437ce839f
commit
da043e99b8
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -26,6 +26,8 @@ import com.sun.net.httpserver.HttpsConfigurator;
|
||||
import com.sun.net.httpserver.HttpsServer;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -50,6 +52,7 @@ import java.net.http.HttpResponse.BodyHandler;
|
||||
import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@ -63,6 +66,7 @@ import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Flow;
|
||||
import java.util.concurrent.SubmissionPublisher;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.BiPredicate;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
@ -138,17 +142,37 @@ public abstract class AbstractThrowingPublishers implements HttpServerAdapters {
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests() {
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================");
|
||||
try {
|
||||
// Exceptions should already have been added to FAILURES
|
||||
// var failed = context.getFailedTests().getAllResults().stream()
|
||||
// .collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
// FAILURES.putAll(failed);
|
||||
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
if (FAILURES.isEmpty()) return;
|
||||
@ -385,6 +409,7 @@ public abstract class AbstractThrowingPublishers implements HttpServerAdapters {
|
||||
boolean async, Set<Where> whereValues)
|
||||
throws Exception
|
||||
{
|
||||
checkSkip();
|
||||
out.printf("%n%s%s%n", now(), name);
|
||||
try {
|
||||
testThrowing(uri, sameClient, publishers, finisher, thrower, async, whereValues);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -43,6 +43,8 @@
|
||||
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -68,6 +70,7 @@ import java.net.http.HttpResponse.BodySubscriber;
|
||||
import java.net.http.HttpResponse.PushPromiseHandler;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@ -79,6 +82,7 @@ import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Flow;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.BiPredicate;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
@ -151,17 +155,37 @@ public abstract class AbstractThrowingPushPromises implements HttpServerAdapters
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests() {
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================");
|
||||
try {
|
||||
// Exceptions should already have been added to FAILURES
|
||||
// var failed = context.getFailedTests().getAllResults().stream()
|
||||
// .collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
// FAILURES.putAll(failed);
|
||||
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
if (FAILURES.isEmpty()) return;
|
||||
@ -360,6 +384,7 @@ public abstract class AbstractThrowingPushPromises implements HttpServerAdapters
|
||||
Finisher finisher, Thrower thrower)
|
||||
throws Exception
|
||||
{
|
||||
checkSkip();
|
||||
out.printf("%n%s%s%n", now(), name);
|
||||
try {
|
||||
testThrowing(uri, sameClient, handlers, finisher, thrower);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -26,6 +26,8 @@ import com.sun.net.httpserver.HttpsConfigurator;
|
||||
import com.sun.net.httpserver.HttpsServer;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -52,6 +54,7 @@ import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.net.http.HttpResponse.BodySubscriber;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@ -62,6 +65,7 @@ import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Flow;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.function.Supplier;
|
||||
@ -137,17 +141,37 @@ public abstract class AbstractThrowingSubscribers implements HttpServerAdapters
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests() {
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================");
|
||||
try {
|
||||
// Exceptions should already have been added to FAILURES
|
||||
// var failed = context.getFailedTests().getAllResults().stream()
|
||||
// .collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
// FAILURES.putAll(failed);
|
||||
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
if (FAILURES.isEmpty()) return;
|
||||
@ -379,6 +403,7 @@ public abstract class AbstractThrowingSubscribers implements HttpServerAdapters
|
||||
boolean async, EnumSet<Where> excludes)
|
||||
throws Exception
|
||||
{
|
||||
checkSkip();
|
||||
out.printf("%n%s%s%n", now(), name);
|
||||
try {
|
||||
testThrowing(uri, sameClient, handlers, finisher, thrower, async, excludes);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -47,6 +47,7 @@ import java.net.http.HttpRequest.BodyPublishers;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -63,6 +64,7 @@ import java.util.concurrent.Flow.Subscription;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
@ -76,6 +78,8 @@ import com.sun.net.httpserver.HttpsServer;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.Assert;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -151,17 +155,36 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests() {
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================");
|
||||
try {
|
||||
var failed = context.getFailedTests().getAllResults().stream()
|
||||
.collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
FAILURES.putAll(failed);
|
||||
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
if (FAILURES.isEmpty()) return;
|
||||
@ -446,6 +469,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
|
||||
@Test(dataProvider = "sparseContent") // checks that NPE is thrown
|
||||
public void testNullPointerException(String description, String[] content) {
|
||||
checkSkip();
|
||||
BodyPublisher[] publishers = publishers(content);
|
||||
Assert.assertThrows(NullPointerException.class, () -> BodyPublishers.concat(publishers));
|
||||
}
|
||||
@ -453,6 +477,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
// Verifies that an empty array creates a "noBody" publisher
|
||||
@Test
|
||||
public void testEmpty() {
|
||||
checkSkip();
|
||||
BodyPublisher publisher = BodyPublishers.concat();
|
||||
RequestSubscriber subscriber = new RequestSubscriber();
|
||||
assertEquals(publisher.contentLength(), 0);
|
||||
@ -466,6 +491,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
// verifies that error emitted by upstream publishers are propagated downstream.
|
||||
@Test(dataProvider = "sparseContent") // nulls are replaced with error publisher
|
||||
public void testOnError(String description, String[] content) {
|
||||
checkSkip();
|
||||
final RequestSubscriber subscriber = new RequestSubscriber();
|
||||
final PublishWithError errorPublisher;
|
||||
final BodyPublisher[] publishers;
|
||||
@ -521,6 +547,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
// the length should be known.
|
||||
@Test(dataProvider = "sparseContent") // nulls are replaced with unknown length
|
||||
public void testUnknownContentLength(String description, String[] content) {
|
||||
checkSkip();
|
||||
if (content == null) {
|
||||
content = BODIES.toArray(String[]::new);
|
||||
description = "BODIES (known length)";
|
||||
@ -561,6 +588,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
|
||||
@Test(dataProvider = "negativeRequests")
|
||||
public void testNegativeRequest(long n) {
|
||||
checkSkip();
|
||||
assert n <= 0 : "test for negative request called with n > 0 : " + n;
|
||||
BodyPublisher[] publishers = ContentLengthPublisher.of(List.of(1L, 2L, 3L));
|
||||
BodyPublisher publisher = BodyPublishers.concat(publishers);
|
||||
@ -584,6 +612,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
|
||||
@Test
|
||||
public void testPositiveRequests() {
|
||||
checkSkip();
|
||||
// A composite array of publishers
|
||||
BodyPublisher[] publishers = Stream.of(
|
||||
Stream.of(ofStrings("Lorem", " ", "ipsum", " ")),
|
||||
@ -626,6 +655,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
|
||||
@Test(dataProvider = "contentLengths")
|
||||
public void testContentLength(long expected, List<Long> lengths) {
|
||||
checkSkip();
|
||||
BodyPublisher[] publishers = ContentLengthPublisher.of(lengths);
|
||||
BodyPublisher aggregate = BodyPublishers.concat(publishers);
|
||||
assertEquals(aggregate.contentLength(), expected,
|
||||
@ -636,6 +666,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
// publishers are no longer subscribed etc...
|
||||
@Test
|
||||
public void testCancel() {
|
||||
checkSkip();
|
||||
BodyPublisher[] publishers = BODIES.stream()
|
||||
.map(BodyPublishers::ofString)
|
||||
.toArray(BodyPublisher[]::new);
|
||||
@ -695,6 +726,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
// Verifies that cancelling the subscription is propagated downstream
|
||||
@Test
|
||||
public void testCancelSubscription() {
|
||||
checkSkip();
|
||||
PublishWithError upstream = new PublishWithError(BODIES, BODIES.size(),
|
||||
() -> new AssertionError("should not come here"));
|
||||
BodyPublisher publisher = BodyPublishers.concat(upstream);
|
||||
@ -756,6 +788,7 @@ public class AggregateRequestBodyTest implements HttpServerAdapters {
|
||||
|
||||
@Test(dataProvider = "variants")
|
||||
public void test(String uri, boolean sameClient) throws Exception {
|
||||
checkSkip();
|
||||
System.out.println("Request to " + uri);
|
||||
|
||||
HttpClient client = newHttpClient(sameClient);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -45,6 +45,8 @@ import com.sun.net.httpserver.HttpsServer;
|
||||
import jdk.test.lib.RandomFactory;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -65,6 +67,7 @@ import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.net.http.HttpResponse.BodyHandler;
|
||||
import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
@ -77,6 +80,7 @@ import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@ -149,16 +153,34 @@ public class CancelRequestTest implements HttpServerAdapters {
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests() {
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================");
|
||||
var failed = context.getFailedTests().getAllResults().stream()
|
||||
.collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
FAILURES.putAll(failed);
|
||||
try {
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
@ -275,6 +297,7 @@ public class CancelRequestTest implements HttpServerAdapters {
|
||||
@Test(dataProvider = "asyncurls")
|
||||
public void testGetSendAsync(String uri, boolean sameClient, boolean mayInterruptIfRunning)
|
||||
throws Exception {
|
||||
checkSkip();
|
||||
HttpClient client = null;
|
||||
uri = uri + "/get";
|
||||
out.printf("%n%s testGetSendAsync(%s, %b, %b)%n", now(), uri, sameClient, mayInterruptIfRunning);
|
||||
@ -360,6 +383,7 @@ public class CancelRequestTest implements HttpServerAdapters {
|
||||
@Test(dataProvider = "asyncurls")
|
||||
public void testPostSendAsync(String uri, boolean sameClient, boolean mayInterruptIfRunning)
|
||||
throws Exception {
|
||||
checkSkip();
|
||||
uri = uri + "/post";
|
||||
HttpClient client = null;
|
||||
out.printf("%n%s testPostSendAsync(%s, %b, %b)%n", now(), uri, sameClient, mayInterruptIfRunning);
|
||||
@ -463,6 +487,7 @@ public class CancelRequestTest implements HttpServerAdapters {
|
||||
@Test(dataProvider = "urls")
|
||||
public void testPostInterrupt(String uri, boolean sameClient)
|
||||
throws Exception {
|
||||
checkSkip();
|
||||
HttpClient client = null;
|
||||
out.printf("%n%s testPostInterrupt(%s, %b)%n", now(), uri, sameClient);
|
||||
for (int i=0; i< ITERATION_COUNT; i++) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -49,6 +49,8 @@ import com.sun.net.httpserver.HttpsConfigurator;
|
||||
import com.sun.net.httpserver.HttpsServer;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -72,6 +74,7 @@ import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@ -80,6 +83,7 @@ import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import static java.lang.System.err;
|
||||
import static java.lang.System.out;
|
||||
@ -148,17 +152,37 @@ public class ForbiddenHeadTest implements HttpServerAdapters {
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests() {
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================");
|
||||
try {
|
||||
// Exceptions should already have been added to FAILURES
|
||||
// var failed = context.getFailedTests().getAllResults().stream()
|
||||
// .collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
// FAILURES.putAll(failed);
|
||||
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
if (FAILURES.isEmpty()) return;
|
||||
@ -219,6 +243,7 @@ public class ForbiddenHeadTest implements HttpServerAdapters {
|
||||
|
||||
@Test(dataProvider = "all")
|
||||
void test(String uriString, int code, boolean async, HttpClient client) throws Throwable {
|
||||
checkSkip();
|
||||
var name = String.format("test(%s, %d, %s, %s)", uriString, code, async ? "async" : "sync",
|
||||
client.authenticator().isPresent() ? "authClient" : "noAuthClient");
|
||||
out.printf("%n---- starting %s ----%n", name);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -55,6 +55,7 @@ import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -72,6 +73,7 @@ import java.util.concurrent.Flow.Subscription;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
@ -85,6 +87,8 @@ import com.sun.net.httpserver.HttpsServer;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.Assert;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -162,17 +166,36 @@ public class ISO_8859_1_Test implements HttpServerAdapters {
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests() {
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================");
|
||||
try {
|
||||
var failed = context.getFailedTests().getAllResults().stream()
|
||||
.collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
FAILURES.putAll(failed);
|
||||
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
if (FAILURES.isEmpty()) return;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -50,6 +50,8 @@ import com.sun.net.httpserver.HttpsConfigurator;
|
||||
import com.sun.net.httpserver.HttpsServer;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -70,6 +72,7 @@ import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@ -78,6 +81,8 @@ import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static java.lang.System.err;
|
||||
import static java.lang.System.out;
|
||||
@ -148,10 +153,25 @@ public class ProxySelectorTest implements HttpServerAdapters {
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -159,6 +179,11 @@ public class ProxySelectorTest implements HttpServerAdapters {
|
||||
static final void printFailedTests() {
|
||||
out.println("\n=========================");
|
||||
try {
|
||||
// Exceptions should already have been added to FAILURES
|
||||
// var failed = context.getFailedTests().getAllResults().stream()
|
||||
// .collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
// FAILURES.putAll(failed);
|
||||
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
if (FAILURES.isEmpty()) return;
|
||||
@ -210,6 +235,7 @@ public class ProxySelectorTest implements HttpServerAdapters {
|
||||
void test(Schemes scheme, HttpClient.Version version, String uri, boolean async)
|
||||
throws Throwable
|
||||
{
|
||||
checkSkip();
|
||||
var name = String.format("test(%s, %s, %s)", scheme, version, async);
|
||||
out.printf("%n---- starting %s ----%n", name);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -48,14 +48,20 @@ import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
@ -123,17 +129,36 @@ public class Response204V2Test implements HttpServerAdapters {
|
||||
return Boolean.getBoolean("jdk.internal.httpclient.debug");
|
||||
}
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (stopAfterFirstFailure() && context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests() {
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================");
|
||||
try {
|
||||
var failed = context.getFailedTests().getAllResults().stream()
|
||||
.collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
FAILURES.putAll(failed);
|
||||
|
||||
out.printf("%n%sCreated %d servers and %d clients%n",
|
||||
now(), serverCount.get(), clientCount.get());
|
||||
if (FAILURES.isEmpty()) return;
|
||||
@ -220,6 +245,7 @@ public class Response204V2Test implements HttpServerAdapters {
|
||||
|
||||
@Test(dataProvider = "variants")
|
||||
public void test(String uri, boolean sameClient) throws Exception {
|
||||
checkSkip();
|
||||
System.out.println("Request to " + uri);
|
||||
|
||||
HttpClient client = newHttpClient(sameClient);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -54,9 +54,14 @@ import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestResult;
|
||||
import org.testng.SkipException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeTest;
|
||||
@ -107,10 +112,44 @@ public class ShortResponseBody {
|
||||
};
|
||||
final ExecutorService service = Executors.newCachedThreadPool(factory);
|
||||
|
||||
final AtomicReference<SkipException> skiptests = new AtomicReference<>();
|
||||
void checkSkip() {
|
||||
var skip = skiptests.get();
|
||||
if (skip != null) throw skip;
|
||||
}
|
||||
static String name(ITestResult result) {
|
||||
var params = result.getParameters();
|
||||
return result.getName()
|
||||
+ (params == null ? "()" : Arrays.toString(result.getParameters()));
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
void beforeMethod(ITestContext context) {
|
||||
if (context.getFailedTests().size() > 0) {
|
||||
throw new RuntimeException("some tests failed");
|
||||
if (skiptests.get() == null) {
|
||||
SkipException skip = new SkipException("some tests failed");
|
||||
skip.setStackTrace(new StackTraceElement[0]);
|
||||
skiptests.compareAndSet(null, skip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static final void printFailedTests(ITestContext context) {
|
||||
out.println("\n=========================\n");
|
||||
try {
|
||||
var FAILURES = context.getFailedTests().getAllResults().stream()
|
||||
.collect(Collectors.toMap(r -> name(r), ITestResult::getThrowable));
|
||||
|
||||
if (FAILURES.isEmpty()) return;
|
||||
out.println("Failed tests: ");
|
||||
FAILURES.entrySet().forEach((e) -> {
|
||||
out.printf("\t%s: %s%n", e.getKey(), e.getValue());
|
||||
e.getValue().printStackTrace(out);
|
||||
e.getValue().printStackTrace();
|
||||
});
|
||||
} finally {
|
||||
out.println("\n=========================\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -228,6 +267,7 @@ public class ShortResponseBody {
|
||||
void testSynchronousGET(String url, String expectedMsg, boolean sameClient)
|
||||
throws Exception
|
||||
{
|
||||
checkSkip();
|
||||
out.print("---\n");
|
||||
HttpClient client = null;
|
||||
for (int i=0; i< ITERATION_COUNT; i++) {
|
||||
@ -253,6 +293,7 @@ public class ShortResponseBody {
|
||||
void testAsynchronousGET(String url, String expectedMsg, boolean sameClient)
|
||||
throws Exception
|
||||
{
|
||||
checkSkip();
|
||||
out.print("---\n");
|
||||
HttpClient client = null;
|
||||
for (int i=0; i< ITERATION_COUNT; i++) {
|
||||
@ -335,6 +376,7 @@ public class ShortResponseBody {
|
||||
void testSynchronousPOST(String url, String expectedMsg, boolean sameClient)
|
||||
throws Exception
|
||||
{
|
||||
checkSkip();
|
||||
out.print("---\n");
|
||||
HttpClient client = null;
|
||||
for (int i=0; i< ITERATION_COUNT; i++) {
|
||||
@ -368,6 +410,7 @@ public class ShortResponseBody {
|
||||
void testAsynchronousPOST(String url, String expectedMsg, boolean sameClient)
|
||||
throws Exception
|
||||
{
|
||||
checkSkip();
|
||||
out.print("---\n");
|
||||
HttpClient client = null;
|
||||
for (int i=0; i< ITERATION_COUNT; i++) {
|
||||
|
Loading…
Reference in New Issue
Block a user