/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
*/ package org.apache.tomcat.util.net;
/** * Test case for the Endpoint implementations. The testing framework will ensure * that each implementation is tested.
*/ publicclass TestXxxEndpoint extends TomcatBaseTest {
File appDir = new File(getBuildDirectory(), "webapps/examples");
tomcat.addWebapp(null, "/examples", appDir.getAbsolutePath());
tomcat.start(); int port = getPort();
tomcat.getConnector().stop();
Exception e = null; try (ServerSocket s = new ServerSocket(port, 100, InetAddress.getByName("localhost"))) { // This should not throw an Exception
} catch (Exception e1) {
e = e1;
} Assert.assertNull(e);
tomcat.getConnector().start();
}
@Test publicvoid testUnixDomainSocket() throws Exception {
Tomcat tomcat = getTomcatInstance();
Connector c = tomcat.getConnector();
Assume.assumeTrue("NIO Unix domain sockets have to be supported for this test",
c.getProtocolHandlerClassName().contains("NioProtocol")
&& JreCompat.isJre16Available());
File tempPath = File.createTempFile("uds-tomcat-test-", ".sock");
String unixDomainSocketPath = tempPath.getAbsolutePath(); // Need to delete the file to make way for the actual socket Assert.assertTrue(tempPath.delete()); Assert.assertTrue(c.setProperty("unixDomainSocketPath", unixDomainSocketPath));
tomcat.start();
// Connect to the domain socket as a client
SocketAddress sa = JreCompat.getInstance().getUnixDomainSocketAddress(unixDomainSocketPath);
ByteBuffer response = ByteBuffer.allocate(1024); try (SocketChannel socket = JreCompat.getInstance().openUnixDomainSocketChannel()) {
socket.connect(sa);
socket.write(ByteBuffer.wrap("OPTIONS * HTTP/1.0\r\n\r\n".getBytes()));
socket.read(response);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.