Revert^2 "Throw ClassFormatError for unsupported default methods."

This reverts commit 09261a8c5cd36a8c7a1ae5107da554dd35008b97.

Fixed redefine-stress failures. Worked around CTS failures
by reducing the cases where we throw the ClassFormatError.

Test: 180-native-default-method.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: aosp_taimen-userdebug boots.
Test: testrunner.py --host --optimizing --redefine-stress \
      --debug --debugggable --cdex-fast
Test: cts-tradefed run cts --m vm-tests-tf
Bug: 157170505
Bug: 157718952
Change-Id: I95264af9041836fd6bc54e85263e2a405e877d30
diff --git a/test/180-native-default-method/src/Main.java b/test/180-native-default-method/src/Main.java
new file mode 100644
index 0000000..4b2704b
--- /dev/null
+++ b/test/180-native-default-method/src/Main.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed 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.
+ */
+
+public class Main {
+  public static void main(String args[]) {
+    try {
+      // Regression test for default native methods that should cause ClassFormatException
+      // if they pass the dex file verification, i.e. for old dex file versions.
+      // We previously did not handle this case properly and failed a DCHECK() for
+      // a non-interface class creating a copied method that was native. b/157170505
+      Class.forName("TestClass");
+      throw new Error("UNREACHABLE");
+    } catch (ClassFormatError expected) {
+      System.out.println("passed");
+    } catch (Throwable unexpected) {
+      unexpected.printStackTrace();
+    }
+  }
+}