[automerger skipped] Merge "[RESTRICT AUTOMERGE] Modify FileTest#test_createNewFile to match the behavior change on kernel version 5.7+" into pie-cts-dev am: 9dea0d0749 -s ours am: 3c4114c728 -s ours am: db8e5f97dd am: b3028c93d7 -s ours am: e51a869e7c

Original change: https://android-review.googlesource.com/c/platform/libcore/+/1644263

Change-Id: Iaf7df8963e36c114e21a4af6b096f6ed6a5d6d21
diff --git a/JavaLibrary.bp b/JavaLibrary.bp
index 8b0ab3b..6731942 100644
--- a/JavaLibrary.bp
+++ b/JavaLibrary.bp
@@ -453,12 +453,13 @@
     name: "core-test-rules",
     visibility: [
         "//art/build/sdk",
+        "//cts/tests/tests/util",
         "//external/conscrypt",
         "//external/conscrypt/apex/tests",
         "//frameworks/base/location/tests/locationtests",
         "//frameworks/base/core/tests/coretests",
         "//frameworks/base/wifi/tests",
-        "//cts/tests/tests/util",
+        "//packages/modules/Wifi/framework/tests",
     ],
     hostdex: true,
     srcs: [
@@ -509,6 +510,8 @@
         "//libcore/benchmarks",
         "//packages/apps/KeyChain/tests",
         "//system/timezone/distro/core",
+        "//packages/modules/Connectivity/tests/cts/net",
+        "//packages/modules/Connectivity/tests/cts/net/api23Test",
     ],
     hostdex: true,
     srcs: ["support/src/test/java/**/*.java"],
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HostnameVerifierTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HostnameVerifierTest.java
index 96384ad..44572ab 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HostnameVerifierTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HostnameVerifierTest.java
@@ -40,104 +40,6 @@
         assertFalse(hv.verify("localhost", session));
     }
 
-    // copied and modified from apache http client test suite.
-    public void testVerify() throws Exception {
-        HostnameVerifier verifier = HttpsURLConnection.getDefaultHostnameVerifier();
-        CertificateFactory cf = CertificateFactory.getInstance("X.509");
-        InputStream in;
-        X509Certificate x509;
-        // CN=foo.com, no subjectAlt
-        in = new ByteArrayInputStream(X509_FOO);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        mySSLSession session = new mySSLSession(new X509Certificate[] {x509});
-        assertFalse(verifier.verify("foo.com", session));
-        assertFalse(verifier.verify("a.foo.com", session));
-        assertFalse(verifier.verify("bar.com", session));
-
-        // CN=花子.co.jp, no subjectAlt
-        in = new ByteArrayInputStream(X509_HANAKO);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        session = new mySSLSession(new X509Certificate[] {x509});
-        assertFalse(verifier.verify("\u82b1\u5b50.co.jp", session));
-        assertFalse(verifier.verify("a.\u82b1\u5b50.co.jp", session));
-
-        // CN=foo.com, subjectAlt=bar.com
-        in = new ByteArrayInputStream(X509_FOO_BAR);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        session = new mySSLSession(new X509Certificate[] {x509});
-        assertFalse(verifier.verify("foo.com", session));
-        assertFalse(verifier.verify("a.foo.com", session));
-        assertTrue(verifier.verify("bar.com", session));
-        assertFalse(verifier.verify("a.bar.com", session));
-
-        // CN=foo.com, subjectAlt=bar.com, subjectAlt=花子.co.jp
-        in = new ByteArrayInputStream(X509_FOO_BAR_HANAKO);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        session = new mySSLSession(new X509Certificate[] {x509});
-        assertFalse(verifier.verify("foo.com", session));
-        assertFalse(verifier.verify("a.foo.com", session));
-        assertTrue(verifier.verify("bar.com", session));
-        assertFalse(verifier.verify("a.bar.com", session));
-        // The certificate has this name in the altnames section, but OkHostnameVerifier drops
-        // any altnames that are improperly encoded according to RFC 5280, which requires
-        // non-ASCII characters to be encoded in ASCII via Punycode.
-        assertFalse(verifier.verify("\u82b1\u5b50.co.jp", session));
-        assertFalse(verifier.verify("a.\u82b1\u5b50.co.jp", session));
-
-        // no CN, subjectAlt=foo.com
-        in = new ByteArrayInputStream(X509_NO_CNS_FOO);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        session = new mySSLSession(new X509Certificate[] {x509});
-        assertTrue(verifier.verify("foo.com", session));
-        assertFalse(verifier.verify("a.foo.com", session));
-
-        // CN=foo.com, CN=bar.com, CN=花子.co.jp, no subjectAlt
-        in = new ByteArrayInputStream(X509_THREE_CNS_FOO_BAR_HANAKO);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        session = new mySSLSession(new X509Certificate[] {x509});
-        assertFalse(verifier.verify("foo.com", session));
-        assertFalse(verifier.verify("a.foo.com", session));
-        assertFalse(verifier.verify("bar.com", session));
-        assertFalse(verifier.verify("a.bar.com", session));
-        assertFalse(verifier.verify("\u82b1\u5b50.co.jp", session));
-        assertFalse(verifier.verify("a.\u82b1\u5b50.co.jp", session));
-
-        // CN=*.foo.com, no subjectAlt
-        in = new ByteArrayInputStream(X509_WILD_FOO);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        session = new mySSLSession(new X509Certificate[] {x509});
-        assertFalse(verifier.verify("foo.com", session));
-        assertFalse(verifier.verify("www.foo.com", session));
-        assertFalse(verifier.verify("\u82b1\u5b50.foo.com", session));
-        assertFalse(verifier.verify("a.b.foo.com", session));
-
-        // CN=*.co.jp, no subjectAlt
-        in = new ByteArrayInputStream(X509_WILD_CO_JP);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        session = new mySSLSession(new X509Certificate[] {x509});
-        assertFalse(verifier.verify("foo.co.jp", session));
-        assertFalse(verifier.verify("\u82b1\u5b50.co.jp", session));
-
-        // CN=*.foo.com, subjectAlt=*.bar.com, subjectAlt=花子.co.jp
-        in = new ByteArrayInputStream(X509_WILD_FOO_BAR_HANAKO);
-        x509 = (X509Certificate) cf.generateCertificate(in);
-        session = new mySSLSession(new X509Certificate[] {x509});
-        // try the foo.com variations
-        assertFalse(verifier.verify("foo.com", session));
-        assertFalse(verifier.verify("www.foo.com", session));
-        assertFalse(verifier.verify("\u82b1\u5b50.foo.com", session));
-        assertFalse(verifier.verify("a.b.foo.com", session));
-        assertFalse(verifier.verify("bar.com", session));
-        assertTrue(verifier.verify("www.bar.com", session));
-        assertFalse(verifier.verify("a.b.bar.com", session));
-        // The certificate has this name in the altnames section, but OkHostnameVerifier drops
-        // any altnames that are improperly encoded according to RFC 5280, which requires
-        // non-ASCII characters to be encoded in ASCII via Punycode.
-        assertFalse(verifier.verify("\u82b1\u5b50.bar.com", session));
-        assertFalse(verifier.verify("\u82b1\u5b50.co.jp", session));
-        assertFalse(verifier.verify("a.\u82b1\u5b50.co.jp", session));
-    }
-
     public void testSubjectAlt() throws Exception {
         CertificateFactory cf = CertificateFactory.getInstance("X.509");
         InputStream in = new ByteArrayInputStream(X509_MULTIPLE_SUBJECT_ALT);
diff --git a/mmodules/intracoreapi/api/intra/current-api.txt b/mmodules/intracoreapi/api/intra/current-api.txt
index 5137a10..f98906f 100644
--- a/mmodules/intracoreapi/api/intra/current-api.txt
+++ b/mmodules/intracoreapi/api/intra/current-api.txt
@@ -58,7 +58,7 @@
 package java.net {
 
   public class Socket implements java.io.Closeable {
-    method public java.io.FileDescriptor getFileDescriptor$();
+    method @libcore.api.IntraCoreApi public java.io.FileDescriptor getFileDescriptor$();
   }
 
 }
@@ -70,11 +70,11 @@
   }
 
   public abstract class CharsetDecoder {
-    ctor protected CharsetDecoder(java.nio.charset.Charset, float, float);
+    ctor @libcore.api.IntraCoreApi protected CharsetDecoder(java.nio.charset.Charset, float, float);
   }
 
   public abstract class CharsetEncoder {
-    ctor protected CharsetEncoder(java.nio.charset.Charset, float, float, byte[], boolean);
+    ctor @libcore.api.IntraCoreApi protected CharsetEncoder(java.nio.charset.Charset, float, float, byte[], boolean);
   }
 
 }
@@ -82,8 +82,8 @@
 package java.security.spec {
 
   public class ECParameterSpec implements java.security.spec.AlgorithmParameterSpec {
-    method public String getCurveName();
-    method public void setCurveName(String);
+    method @libcore.api.IntraCoreApi public String getCurveName();
+    method @libcore.api.IntraCoreApi public void setCurveName(String);
   }
 
 }
@@ -133,18 +133,18 @@
 
 package sun.security.util {
 
-  public interface DerEncoder {
-    method public void derEncode(java.io.OutputStream) throws java.io.IOException;
+  @libcore.api.IntraCoreApi public interface DerEncoder {
+    method @libcore.api.IntraCoreApi public void derEncode(java.io.OutputStream) throws java.io.IOException;
   }
 
 }
 
 package sun.security.x509 {
 
-  public class AlgorithmId implements sun.security.util.DerEncoder java.io.Serializable {
-    method public void derEncode(java.io.OutputStream) throws java.io.IOException;
-    method public static sun.security.x509.AlgorithmId get(String) throws java.security.NoSuchAlgorithmException;
-    method public String getName();
+  @libcore.api.IntraCoreApi public class AlgorithmId implements sun.security.util.DerEncoder java.io.Serializable {
+    method @libcore.api.IntraCoreApi public void derEncode(java.io.OutputStream) throws java.io.IOException;
+    method @libcore.api.IntraCoreApi public static sun.security.x509.AlgorithmId get(String) throws java.security.NoSuchAlgorithmException;
+    method @libcore.api.IntraCoreApi public String getName();
   }
 
 }