Revert "Add verifier fallback for JVMTI Get/SetLocalVariable"

This reverts commit e48fd0b4780efadc6b3433fe7a56aa5be2a84325.

Reason for revert: Fails libjdwp tests. In particular:
org.apache.harmony.jpda.tests.jdwp.StackFrame_SetValuesTest

Bug: 131711256
Change-Id: Id46da7c0d26769f8f4bd469cdfb8049f6812295a
diff --git a/openjdkjvmti/ti_method.cc b/openjdkjvmti/ti_method.cc
index 4c6ea21..408ce69 100644
--- a/openjdkjvmti/ti_method.cc
+++ b/openjdkjvmti/ti_method.cc
@@ -31,33 +31,22 @@
 
 #include "ti_method.h"
 
-#include <initializer_list>
 #include <type_traits>
-#include <variant>
 
-#include "android-base/macros.h"
 #include "arch/context.h"
 #include "art_jvmti.h"
 #include "art_method-inl.h"
 #include "base/enums.h"
-#include "base/globals.h"
-#include "base/macros.h"
 #include "base/mutex-inl.h"
 #include "deopt_manager.h"
 #include "dex/code_item_accessors-inl.h"
-#include "dex/code_item_accessors.h"
 #include "dex/dex_file_annotations.h"
 #include "dex/dex_file_types.h"
-#include "dex/dex_instruction.h"
-#include "dex/dex_instruction_iterator.h"
 #include "dex/modifiers.h"
-#include "dex/primitive.h"
 #include "events-inl.h"
 #include "gc_root-inl.h"
-#include "handle.h"
 #include "jit/jit.h"
 #include "jni/jni_internal.h"
-#include "jvmti.h"
 #include "mirror/class-inl.h"
 #include "mirror/class_loader.h"
 #include "mirror/object-inl.h"
@@ -67,18 +56,13 @@
 #include "obj_ptr.h"
 #include "runtime_callbacks.h"
 #include "scoped_thread_state_change-inl.h"
-#include "scoped_thread_state_change.h"
 #include "stack.h"
 #include "thread-current-inl.h"
 #include "thread.h"
 #include "thread_list.h"
-#include "ti_logging.h"
 #include "ti_stack.h"
 #include "ti_thread.h"
 #include "ti_phase.h"
-#include "verifier/register_line-inl.h"
-#include "verifier/reg_type-inl.h"
-#include "verifier/method_verifier-inl.h"
 
 namespace openjdkjvmti {
 
@@ -542,21 +526,10 @@
 
 class CommonLocalVariableClosure : public art::Closure {
  public:
-  // The verifier isn't always able to be as specific as the local-variable-table. We can only get
-  // 32-bit, 64-bit or reference.
-  enum class VerifierPrimitiveType {
-    k32BitValue,  // float, int, short, char, boolean, byte
-    k64BitValue,  // double, long
-    kReferenceValue,  // Object
-    kZeroValue,  // null or zero constant. Might be either k32BitValue or kReferenceValue
-  };
+  CommonLocalVariableClosure(jint depth, jint slot)
+      : result_(ERR(INTERNAL)), depth_(depth), slot_(slot) {}
 
-  using SlotType = std::variant<art::Primitive::Type, VerifierPrimitiveType>;
-
-  CommonLocalVariableClosure(jvmtiEnv* jvmti, jint depth, jint slot)
-      : jvmti_(jvmti), result_(ERR(INTERNAL)), depth_(depth), slot_(slot) {}
-
-  void Run(art::Thread* self) override REQUIRES_SHARED(art::Locks::mutator_lock_) {
+  void Run(art::Thread* self) override REQUIRES(art::Locks::mutator_lock_) {
     art::Locks::mutator_lock_->AssertSharedHeld(art::Thread::Current());
     bool needs_instrument;
     {
@@ -587,7 +560,7 @@
         return;
       }
       std::string descriptor;
-      SlotType slot_type{ art::Primitive::kPrimVoid };
+      art::Primitive::Type slot_type = art::Primitive::kPrimVoid;
       jvmtiError err = GetSlotType(method, pc, &descriptor, &slot_type);
       if (err != OK) {
         result_ = err;
@@ -614,190 +587,56 @@
   virtual jvmtiError Execute(art::ArtMethod* method, art::StackVisitor& visitor)
       REQUIRES_SHARED(art::Locks::mutator_lock_) = 0;
   virtual jvmtiError GetTypeError(art::ArtMethod* method,
-                                  SlotType type,
+                                  art::Primitive::Type type,
                                   const std::string& descriptor)
       REQUIRES_SHARED(art::Locks::mutator_lock_)  = 0;
 
   jvmtiError GetSlotType(art::ArtMethod* method,
                          uint32_t dex_pc,
                          /*out*/std::string* descriptor,
-                         /*out*/SlotType* type)
-      REQUIRES_SHARED(art::Locks::mutator_lock_);
-
-  jvmtiError InferSlotTypeFromVerifier(art::ArtMethod* method,
-                                       uint32_t dex_pc,
-                                       /*out*/ std::string* descriptor,
-                                       /*out*/ SlotType* type)
-      REQUIRES_SHARED(art::Locks::mutator_lock_) {
-    art::Thread* self = art::Thread::Current();
-    art::StackHandleScope<2> hs(self);
-    std::unique_ptr<art::verifier::MethodVerifier> verifier(
-        art::verifier::MethodVerifier::CalculateVerificationInfo(
-            self,
-            method,
-            hs.NewHandle(method->GetDexCache()),
-            hs.NewHandle(method->GetDeclaringClass()->GetClassLoader())));
-    if (verifier == nullptr) {
-      JVMTI_LOG(WARNING, jvmti_) << "Unable to extract verification information from "
-                                 << method->PrettyMethod() << " due to hard verification failures! "
-                                 << "How did this method even get loaded!";
-      return ERR(INTERNAL);
-    }
-    art::verifier::RegisterLine* line = verifier->GetRegLine(dex_pc);
-    if (line == nullptr) {
-      JVMTI_LOG(WARNING, jvmti_) << "Unable to determine register line at dex-pc " << dex_pc
-                                 << " for method " << method->PrettyMethod();
+                         /*out*/art::Primitive::Type* type)
+      REQUIRES(art::Locks::mutator_lock_) {
+    const art::DexFile* dex_file = method->GetDexFile();
+    if (dex_file == nullptr) {
       return ERR(OPAQUE_FRAME);
     }
-    const art::verifier::RegType& rt = line->GetRegisterType(verifier.get(), slot_);
-    if (rt.IsUndefined()) {
-      return ERR(INVALID_SLOT);
-    } else if (rt.IsNonZeroReferenceTypes() || rt.IsNull()) {
-      *descriptor = (rt.HasClass() ? rt.GetDescriptor() : "Ljava/lang/Object;");
-      *type = VerifierPrimitiveType::kReferenceValue;
-      return OK;
-    } else if (rt.IsZero()) {
-      *descriptor = "I";
-      *type = VerifierPrimitiveType::kZeroValue;
-      return OK;
-    } else if (rt.IsCategory1Types()) {
-      *descriptor = "I";
-      *type = VerifierPrimitiveType::k32BitValue;
-      return OK;
-    } else if (rt.IsCategory2Types() && rt.IsLowHalf()) {
-      *descriptor = "J";
-      *type = VerifierPrimitiveType::k64BitValue;
-      return OK;
-    } else {
-      // The slot doesn't have a type. Must not be valid here.
-      return ERR(INVALID_SLOT);
+    art::CodeItemDebugInfoAccessor accessor(method->DexInstructionDebugInfo());
+    if (!accessor.HasCodeItem()) {
+      return ERR(OPAQUE_FRAME);
     }
-  }
-
-  constexpr VerifierPrimitiveType SquashType(SlotType t) {
-    if (std::holds_alternative<art::Primitive::Type>(t)) {
-      switch (std::get<art::Primitive::Type>(t)) {
-        // 32-bit primitives
-        case art::Primitive::kPrimByte:
-        case art::Primitive::kPrimChar:
-        case art::Primitive::kPrimInt:
-        case art::Primitive::kPrimShort:
-        case art::Primitive::kPrimBoolean:
-        case art::Primitive::kPrimFloat:
-          return VerifierPrimitiveType::k32BitValue;
-        // 64-bit primitives
-        case art::Primitive::kPrimLong:
-        case art::Primitive::kPrimDouble:
-          return VerifierPrimitiveType::k64BitValue;
-        case art::Primitive::kPrimNot:
-          return VerifierPrimitiveType::kReferenceValue;
-        case art::Primitive::kPrimVoid:
-          LOG(FATAL) << "Got kPrimVoid";
-          UNREACHABLE();
+    bool found = false;
+    *type = art::Primitive::kPrimVoid;
+    descriptor->clear();
+    auto visitor = [&](const art::DexFile::LocalInfo& entry) {
+      if (!found &&
+          entry.start_address_ <= dex_pc &&
+          entry.end_address_ > dex_pc &&
+          entry.reg_ == slot_) {
+        found = true;
+        *type = art::Primitive::GetType(entry.descriptor_[0]);
+        *descriptor = entry.descriptor_;
       }
-    } else {
-      return std::get<VerifierPrimitiveType>(t);
+    };
+    if (!accessor.DecodeDebugLocalInfo(method->IsStatic(), method->GetDexMethodIndex(), visitor) ||
+        !found) {
+      // Something went wrong with decoding the debug information. It might as well not be there.
+      return ERR(INVALID_SLOT);
     }
+    return OK;
   }
 
-  jvmtiEnv* jvmti_;
   jvmtiError result_;
   jint depth_;
   jint slot_;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(CommonLocalVariableClosure);
 };
 
-std::ostream& operator<<(std::ostream& os,
-                         CommonLocalVariableClosure::VerifierPrimitiveType state) {
-  switch (state) {
-    case CommonLocalVariableClosure::VerifierPrimitiveType::k32BitValue:
-      return os << "32BitValue";
-    case CommonLocalVariableClosure::VerifierPrimitiveType::k64BitValue:
-      return os << "64BitValue";
-    case CommonLocalVariableClosure::VerifierPrimitiveType::kReferenceValue:
-      return os << "ReferenceValue";
-    case CommonLocalVariableClosure::VerifierPrimitiveType::kZeroValue:
-      return os << "ZeroValue";
-  }
-}
-
-std::ostream& operator<<(std::ostream& os, CommonLocalVariableClosure::SlotType state) {
-  if (std::holds_alternative<art::Primitive::Type>(state)) {
-    return os << "Primitive::Type[" << std::get<art::Primitive::Type>(state) << "]";
-  } else {
-    return os << "VerifierPrimitiveType["
-              << std::get<CommonLocalVariableClosure::VerifierPrimitiveType>(state) << "]";
-  }
-}
-
-jvmtiError CommonLocalVariableClosure::GetSlotType(art::ArtMethod* method,
-                                                   uint32_t dex_pc,
-                                                   /*out*/ std::string* descriptor,
-                                                   /*out*/ SlotType* type) {
-  const art::DexFile* dex_file = method->GetDexFile();
-  if (dex_file == nullptr) {
-    return ERR(OPAQUE_FRAME);
-  }
-  art::CodeItemDebugInfoAccessor accessor(method->DexInstructionDebugInfo());
-  if (!accessor.HasCodeItem()) {
-    return ERR(OPAQUE_FRAME);
-  }
-  bool found = false;
-  *type = art::Primitive::kPrimVoid;
-  descriptor->clear();
-  auto visitor = [&](const art::DexFile::LocalInfo& entry) {
-    if (!found && entry.start_address_ <= dex_pc && entry.end_address_ > dex_pc &&
-        entry.reg_ == slot_) {
-      found = true;
-      *type = art::Primitive::GetType(entry.descriptor_[0]);
-      *descriptor = entry.descriptor_;
-    }
-  };
-  if (!accessor.DecodeDebugLocalInfo(method->IsStatic(), method->GetDexMethodIndex(), visitor) ||
-      !found) {
-    // Something went wrong with decoding the debug information. It might as well not be there.
-    // Try to find the type with the verifier.
-    // TODO This is very slow.
-    return InferSlotTypeFromVerifier(method, dex_pc, descriptor, type);
-  } else if (art::kIsDebugBuild) {
-    std::string type_unused;
-    SlotType verifier_type{ art::Primitive::kPrimVoid };
-    DCHECK_EQ(InferSlotTypeFromVerifier(method, dex_pc, &type_unused, &verifier_type), OK)
-        << method->PrettyMethod() << " failed to verify!";
-    if (*type == SlotType{ art::Primitive::kPrimNot }) {
-      // We cannot distinguish between a constant 0 and a null reference so we return that it is a
-      // 32bit value (Due to the way references are read by the interpreter this is safe even if
-      // it's modified, the value will remain null). This is not ideal since it prevents modifying
-      // locals in some circumstances but generally is not a big deal (since one can just modify it
-      // later once it's been determined to be a reference by a later instruction).
-      DCHECK(verifier_type == SlotType { VerifierPrimitiveType::kZeroValue } ||
-             verifier_type == SlotType { VerifierPrimitiveType::kReferenceValue })
-          << "Verifier disagrees on type of slot! debug: " << *type
-          << " verifier: " << verifier_type;
-    } else if (verifier_type == SlotType { VerifierPrimitiveType::kZeroValue }) {
-      DCHECK(VerifierPrimitiveType::k32BitValue == SquashType(*type) ||
-             VerifierPrimitiveType::kReferenceValue == SquashType(*type))
-          << "Verifier disagrees on type of slot! debug: " << *type
-          << " verifier: " << verifier_type;
-    } else {
-      DCHECK_EQ(SquashType(verifier_type), SquashType(*type))
-          << "Verifier disagrees on type of slot! debug: " << *type
-          << " verifier: " << verifier_type;
-    }
-  }
-  return OK;
-}
-
 class GetLocalVariableClosure : public CommonLocalVariableClosure {
  public:
-  GetLocalVariableClosure(jvmtiEnv* jvmti,
-                          jint depth,
+  GetLocalVariableClosure(jint depth,
                           jint slot,
                           art::Primitive::Type type,
                           jvalue* val)
-      : CommonLocalVariableClosure(jvmti, depth, slot),
+      : CommonLocalVariableClosure(depth, slot),
         type_(type),
         val_(val),
         obj_val_(nullptr) {}
@@ -817,61 +656,22 @@
   }
 
  protected:
-  jvmtiError
-  GetTypeError(art::ArtMethod* method, SlotType slot_type, const std::string& descriptor) override
-      REQUIRES_SHARED(art::Locks::mutator_lock_) {
-    jvmtiError res = GetTypeErrorInner(method, slot_type, descriptor);
-    if (res == ERR(TYPE_MISMATCH)) {
-      JVMTI_LOG(INFO, jvmti_) << "Unable to Get local variable in slot " << slot_ << ". Expected"
-                              << " slot to be of type compatible with " << SlotType { type_ }
-                              << " but slot is " << slot_type;
-    } else if (res != OK) {
-      JVMTI_LOG(INFO, jvmti_) << "Unable to get local variable in slot " << slot_ << ".";
-    }
-    return res;
-  }
-
-  jvmtiError GetTypeErrorInner(art::ArtMethod* method ATTRIBUTE_UNUSED,
-                               SlotType slot_type,
-                               const std::string& descriptor ATTRIBUTE_UNUSED)
-      REQUIRES_SHARED(art::Locks::mutator_lock_) {
-    switch (type_) {
-      case art::Primitive::kPrimFloat:
-      case art::Primitive::kPrimInt: {
-        if (std::holds_alternative<VerifierPrimitiveType>(slot_type)) {
-          return (slot_type == SlotType { VerifierPrimitiveType::k32BitValue } ||
-                  slot_type == SlotType { VerifierPrimitiveType::kZeroValue })
-                     ? OK
-                     : ERR(TYPE_MISMATCH);
-        } else if (type_ == art::Primitive::kPrimFloat ||
-                   slot_type == SlotType { art::Primitive::kPrimFloat }) {
-          // Check that we are actually a float.
-          return (SlotType { type_ } == slot_type) ? OK : ERR(TYPE_MISMATCH);
-        } else {
-          // Some smaller int type.
-          return SquashType(slot_type) == SquashType(SlotType { type_ }) ? OK : ERR(TYPE_MISMATCH);
-        }
-      }
-      case art::Primitive::kPrimLong:
-      case art::Primitive::kPrimDouble: {
-        // todo
-        if (std::holds_alternative<VerifierPrimitiveType>(slot_type)) {
-          return (slot_type == SlotType { VerifierPrimitiveType::k64BitValue })
-                     ? OK
-                     : ERR(TYPE_MISMATCH);
-        } else {
-          return slot_type == SlotType { type_ } ? OK : ERR(TYPE_MISMATCH);
-        }
-      }
-      case art::Primitive::kPrimNot:
-        return (SquashType(slot_type) == VerifierPrimitiveType::kReferenceValue ||
-                SquashType(slot_type) == VerifierPrimitiveType::kZeroValue)
-                   ? OK
-                   : ERR(TYPE_MISMATCH);
-      case art::Primitive::kPrimShort:
-      case art::Primitive::kPrimChar:
+  jvmtiError GetTypeError(art::ArtMethod* method ATTRIBUTE_UNUSED,
+                          art::Primitive::Type slot_type,
+                          const std::string& descriptor ATTRIBUTE_UNUSED)
+      override REQUIRES_SHARED(art::Locks::mutator_lock_) {
+    switch (slot_type) {
       case art::Primitive::kPrimByte:
+      case art::Primitive::kPrimChar:
+      case art::Primitive::kPrimInt:
+      case art::Primitive::kPrimShort:
       case art::Primitive::kPrimBoolean:
+        return type_ == art::Primitive::kPrimInt ? OK : ERR(TYPE_MISMATCH);
+      case art::Primitive::kPrimLong:
+      case art::Primitive::kPrimFloat:
+      case art::Primitive::kPrimDouble:
+      case art::Primitive::kPrimNot:
+        return type_ == slot_type ? OK : ERR(TYPE_MISMATCH);
       case art::Primitive::kPrimVoid:
         LOG(FATAL) << "Unexpected primitive type " << slot_type;
         UNREACHABLE();
@@ -935,7 +735,7 @@
   jobject obj_val_;
 };
 
-jvmtiError MethodUtil::GetLocalVariableGeneric(jvmtiEnv* env,
+jvmtiError MethodUtil::GetLocalVariableGeneric(jvmtiEnv* env ATTRIBUTE_UNUSED,
                                                jthread thread,
                                                jint depth,
                                                jint slot,
@@ -953,7 +753,7 @@
     art::Locks::thread_list_lock_->ExclusiveUnlock(self);
     return err;
   }
-  GetLocalVariableClosure c(env, depth, slot, type, val);
+  GetLocalVariableClosure c(depth, slot, type, val);
   // RequestSynchronousCheckpoint releases the thread_list_lock_ as a part of its execution.
   if (!target->RequestSynchronousCheckpoint(&c)) {
     return ERR(THREAD_NOT_ALIVE);
@@ -964,100 +764,49 @@
 
 class SetLocalVariableClosure : public CommonLocalVariableClosure {
  public:
-  SetLocalVariableClosure(jvmtiEnv* jvmti,
-                          art::Thread* caller,
+  SetLocalVariableClosure(art::Thread* caller,
                           jint depth,
                           jint slot,
                           art::Primitive::Type type,
                           jvalue val)
-      : CommonLocalVariableClosure(jvmti, depth, slot), caller_(caller), type_(type), val_(val) {}
+      : CommonLocalVariableClosure(depth, slot), caller_(caller), type_(type), val_(val) {}
 
  protected:
-  jvmtiError
-  GetTypeError(art::ArtMethod* method, SlotType slot_type, const std::string& descriptor) override
-      REQUIRES_SHARED(art::Locks::mutator_lock_) {
-    jvmtiError res = GetTypeErrorInner(method, slot_type, descriptor);
-    if (res != OK) {
-      if (res == ERR(TYPE_MISMATCH)) {
-        std::ostringstream desc_exp;
-        std::ostringstream desc_set;
-        if (type_ == art::Primitive::kPrimNot) {
-          desc_exp << " (type: " << descriptor << ")";
-          art::ObjPtr<art::mirror::Object> new_val(art::Thread::Current()->DecodeJObject(val_.l));
-          desc_set << " (type: "
-                  << (new_val.IsNull() ? "NULL" : new_val->GetClass()->PrettyDescriptor()) << ")";
-        }
-        JVMTI_LOG(INFO, jvmti_) << "Unable to Set local variable in slot " << slot_ << ". Expected"
-                                << " slot to be of type compatible with " << SlotType{ type_ }
-                                << desc_set.str() << " but slot is " << slot_type << desc_exp.str();
-      } else {
-        JVMTI_LOG(INFO, jvmti_) << "Unable to set local variable in slot " << slot_ << ". "
-                                << err_.str();
-      }
-    }
-    return res;
-  }
-
-  jvmtiError
-  GetTypeErrorInner(art::ArtMethod* method, SlotType slot_type, const std::string& descriptor)
-      REQUIRES_SHARED(art::Locks::mutator_lock_) {
-    switch (SquashType(SlotType{ type_ })) {
-      case VerifierPrimitiveType::k32BitValue: {
-        if (slot_type == SlotType{ VerifierPrimitiveType::kZeroValue }) {
-          if (val_.i == 0) {
-            return OK;
-          } else {
-            err_ << "Cannot determine if slot " << slot_ << " is a null reference or 32bit "
-                 << "constant. Cannot allow writing to slot.";
-            return ERR(INTERNAL);
-          }
-        } else if (SquashType(slot_type) != VerifierPrimitiveType::k32BitValue) {
-          return ERR(TYPE_MISMATCH);
-        } else if (slot_type == SlotType { VerifierPrimitiveType::k32BitValue } ||
-                   slot_type == SlotType { type_ }) {
-          return OK;
-        } else if (type_ == art::Primitive::kPrimFloat ||
-                   slot_type == SlotType { art::Primitive::kPrimFloat }) {
-          // we should have hit the get == type_ above
-          return ERR(TYPE_MISMATCH);
-        } else {
-          // Some smaller type then int.
-          return OK;
-        }
-      }
-      case VerifierPrimitiveType::k64BitValue: {
-        if (slot_type == SlotType { VerifierPrimitiveType::k64BitValue } ||
-            slot_type == SlotType { type_ }) {
-          return OK;
-        } else {
-          return ERR(TYPE_MISMATCH);
-        }
-      }
-      case VerifierPrimitiveType::kReferenceValue: {
-        if (SquashType(slot_type) != VerifierPrimitiveType::kReferenceValue &&
-            SquashType(slot_type) != VerifierPrimitiveType::kZeroValue) {
+  jvmtiError GetTypeError(art::ArtMethod* method,
+                          art::Primitive::Type slot_type,
+                          const std::string& descriptor)
+      override REQUIRES_SHARED(art::Locks::mutator_lock_) {
+    switch (slot_type) {
+      case art::Primitive::kPrimNot: {
+        if (type_ != art::Primitive::kPrimNot) {
           return ERR(TYPE_MISMATCH);
         } else if (val_.l == nullptr) {
           return OK;
-        } else if (slot_type == SlotType { VerifierPrimitiveType::kZeroValue }) {
-          err_ << "Cannot determine if slot " << slot_ << " is a null "
-               << "reference or 32bit constant. Cannot allow writing to slot.";
-          return ERR(INTERNAL);
         } else {
           art::ClassLinker* cl = art::Runtime::Current()->GetClassLinker();
-          art::ObjPtr<art::mirror::Class> set_class = caller_->DecodeJObject(val_.l)->GetClass();
+          art::ObjPtr<art::mirror::Class> set_class =
+              caller_->DecodeJObject(val_.l)->GetClass();
           art::ObjPtr<art::mirror::ClassLoader> loader =
               method->GetDeclaringClass()->GetClassLoader();
           art::ObjPtr<art::mirror::Class> slot_class =
               cl->LookupClass(caller_, descriptor.c_str(), loader);
-          DCHECK(!slot_class.IsNull()) << descriptor << " slot: " << slot_type;
+          DCHECK(!slot_class.IsNull());
           return slot_class->IsAssignableFrom(set_class) ? OK : ERR(TYPE_MISMATCH);
         }
       }
-      case VerifierPrimitiveType::kZeroValue: {
-        LOG(FATAL) << "Illegal result from SquashType of art::Primitive::Type " << type_;
+      case art::Primitive::kPrimByte:
+      case art::Primitive::kPrimChar:
+      case art::Primitive::kPrimInt:
+      case art::Primitive::kPrimShort:
+      case art::Primitive::kPrimBoolean:
+        return type_ == art::Primitive::kPrimInt ? OK : ERR(TYPE_MISMATCH);
+      case art::Primitive::kPrimLong:
+      case art::Primitive::kPrimFloat:
+      case art::Primitive::kPrimDouble:
+        return type_ == slot_type ? OK : ERR(TYPE_MISMATCH);
+      case art::Primitive::kPrimVoid:
+        LOG(FATAL) << "Unexpected primitive type " << slot_type;
         UNREACHABLE();
-      }
     }
   }
 
@@ -1108,10 +857,9 @@
   art::Thread* caller_;
   art::Primitive::Type type_;
   jvalue val_;
-  std::ostringstream err_;
 };
 
-jvmtiError MethodUtil::SetLocalVariableGeneric(jvmtiEnv* env,
+jvmtiError MethodUtil::SetLocalVariableGeneric(jvmtiEnv* env ATTRIBUTE_UNUSED,
                                                jthread thread,
                                                jint depth,
                                                jint slot,
@@ -1132,7 +880,7 @@
     art::Locks::thread_list_lock_->ExclusiveUnlock(self);
     return err;
   }
-  SetLocalVariableClosure c(env, self, depth, slot, type, val);
+  SetLocalVariableClosure c(self, depth, slot, type, val);
   // RequestSynchronousCheckpoint releases the thread_list_lock_ as a part of its execution.
   if (!target->RequestSynchronousCheckpoint(&c)) {
     return ERR(THREAD_NOT_ALIVE);
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index ff44828..73ae8e8 100644
--- a/runtime/verifier/method_verifier.cc
+++ b/runtime/verifier/method_verifier.cc
@@ -63,7 +63,6 @@
 #include "scoped_thread_state_change-inl.h"
 #include "stack.h"
 #include "vdex_file.h"
-#include "verifier/method_verifier.h"
 #include "verifier_compiler_binding.h"
 #include "verifier_deps.h"
 
@@ -153,7 +152,6 @@
                  bool need_precise_constants,
                  bool verify_to_dump,
                  bool allow_thread_suspension,
-                 bool fill_register_lines_,
                  uint32_t api_level)
       REQUIRES_SHARED(Locks::mutator_lock_);
 
@@ -632,9 +630,6 @@
   // Note: this flag is only valid once Verify() has started.
   bool is_constructor_;
 
-  // Whether to attempt to fill all register lines for (ex) debugger use.
-  bool fill_register_lines_;
-
   // API level, for dependent checks. Note: we do not use '0' for unset here, to simplify checks.
   // Instead, unset level should correspond to max().
   const uint32_t api_level_;
@@ -700,7 +695,6 @@
                                                bool need_precise_constants,
                                                bool verify_to_dump,
                                                bool allow_thread_suspension,
-                                               bool fill_register_lines,
                                                uint32_t api_level)
     : art::verifier::MethodVerifier(self,
                                     dex_file,
@@ -722,7 +716,6 @@
       verify_to_dump_(verify_to_dump),
       allow_thread_suspension_(allow_thread_suspension),
       is_constructor_(false),
-      fill_register_lines_(fill_register_lines),
       api_level_(api_level == 0 ? std::numeric_limits<uint32_t>::max() : api_level) {
 }
 
@@ -1585,7 +1578,7 @@
   const uint16_t registers_size = code_item_accessor_.RegistersSize();
 
   /* Create and initialize table holding register status */
-  reg_table_.Init(fill_register_lines_ ? kTrackRegsAll : kTrackCompilerInterestPoints,
+  reg_table_.Init(kTrackCompilerInterestPoints,
                   insn_flags_.get(),
                   code_item_accessor_.InsnsSizeInCodeUnits(),
                   registers_size,
@@ -5207,7 +5200,6 @@
                                                 need_precise_constants,
                                                 /* verify to dump */ false,
                                                 /* allow_thread_suspension= */ true,
-                                                /* fill_register_lines= */ false,
                                                 api_level);
   if (verifier.Verify()) {
     // Verification completed, however failures may be pending that didn't cause the verification
@@ -5330,41 +5322,6 @@
   return result;
 }
 
-MethodVerifier* MethodVerifier::CalculateVerificationInfo(
-      Thread* self,
-      ArtMethod* method,
-      Handle<mirror::DexCache> dex_cache,
-      Handle<mirror::ClassLoader> class_loader) {
-  std::unique_ptr<impl::MethodVerifier<false>> verifier(
-      new impl::MethodVerifier<false>(self,
-                                      method->GetDexFile(),
-                                      dex_cache,
-                                      class_loader,
-                                      *method->GetDeclaringClass()->GetClassDef(),
-                                      method->GetCodeItem(),
-                                      method->GetDexMethodIndex(),
-                                      method,
-                                      method->GetAccessFlags(),
-                                      /* can_load_classes= */ false,
-                                      /* allow_soft_failures= */ true,
-                                      /* need_precise_constants= */ true,
-                                      /* verify_to_dump= */ false,
-                                      /* allow_thread_suspension= */ false,
-                                      /* fill_register_lines= */ true,
-                                      /* api_level = */ 0));
-  verifier->Verify();
-  if (VLOG_IS_ON(verifier)) {
-    verifier->DumpFailures(VLOG_STREAM(verifier));
-    VLOG(verifier) << verifier->info_messages_.str();
-    verifier->Dump(VLOG_STREAM(verifier));
-  }
-  if (verifier->have_pending_hard_failure_) {
-    return nullptr;
-  } else {
-    return verifier.release();
-  }
-}
-
 MethodVerifier* MethodVerifier::VerifyMethodAndDump(Thread* self,
                                                     VariableIndentationOutputStream* vios,
                                                     uint32_t dex_method_idx,
@@ -5391,7 +5348,6 @@
       /* need_precise_constants= */ true,
       /* verify_to_dump= */ true,
       /* allow_thread_suspension= */ true,
-      /* fill_register_lines= */ false,
       api_level);
   verifier->Verify();
   verifier->DumpFailures(vios->Stream());
@@ -5429,7 +5385,6 @@
                                        /* need_precise_constants= */ false,
                                        /* verify_to_dump= */ false,
                                        /* allow_thread_suspension= */ false,
-                                       /* fill_register_lines= */ false,
                                        api_level);
   verifier.interesting_dex_pc_ = dex_pc;
   verifier.monitor_enter_dex_pcs_ = monitor_enter_dex_pcs;
@@ -5465,7 +5420,6 @@
                                          need_precise_constants,
                                          verify_to_dump,
                                          allow_thread_suspension,
-                                         /* fill_register_lines= */ false,
                                          api_level);
 }
 
diff --git a/runtime/verifier/method_verifier.h b/runtime/verifier/method_verifier.h
index bd320ce..0af09c3 100644
--- a/runtime/verifier/method_verifier.h
+++ b/runtime/verifier/method_verifier.h
@@ -118,16 +118,6 @@
                                              uint32_t api_level)
       REQUIRES_SHARED(Locks::mutator_lock_);
 
-  // Calculates the verification information for every instruction of the given method. The given
-  // dex-cache and class-loader will be used for lookups. No classes will be loaded. If verification
-  // fails hard nullptr will be returned. This should only be used if one needs to examine what the
-  // verifier believes about the registers of a given method.
-  static MethodVerifier* CalculateVerificationInfo(Thread* self,
-                                                   ArtMethod* method,
-                                                   Handle<mirror::DexCache> dex_cache,
-                                                   Handle<mirror::ClassLoader> class_loader)
-      REQUIRES_SHARED(Locks::mutator_lock_);
-
   const DexFile& GetDexFile() const {
     DCHECK(dex_file_ != nullptr);
     return *dex_file_;
diff --git a/test/1912-get-set-local-primitive/expected.txt b/test/1912-get-set-local-primitive/expected.txt
index 8a03566..f2c5ce8 100644
--- a/test/1912-get-set-local-primitive/expected.txt
+++ b/test/1912-get-set-local-primitive/expected.txt
@@ -10,9 +10,6 @@
 Running public static void art.Test1912.IntMethod(java.lang.Runnable) with "GetDouble" on remote thread.
 "GetDouble" on public static void art.Test1912.IntMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '42' (class: class java.lang.Integer)
-Running public static void art.Test1912.IntMethod(java.lang.Runnable) with "GetObject" on remote thread.
-"GetObject" on public static void art.Test1912.IntMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
 Running public static void art.Test1912.IntMethod(java.lang.Runnable) with "SetInt" on remote thread.
 "SetInt" on public static void art.Test1912.IntMethod(java.lang.Runnable) set value: 2147483647
 	Value is '2147483647' (class: class java.lang.Integer)
@@ -25,12 +22,6 @@
 Running public static void art.Test1912.IntMethod(java.lang.Runnable) with "SetDouble" on remote thread.
 "SetDouble" on public static void art.Test1912.IntMethod(java.lang.Runnable) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '42' (class: class java.lang.Integer)
-Running public static void art.Test1912.IntMethod(java.lang.Runnable) with "SetObject" on remote thread.
-"SetObject" on public static void art.Test1912.IntMethod(java.lang.Runnable) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art.Test1912.IntMethod(java.lang.Runnable) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art.Test1912.IntMethod(java.lang.Runnable) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
 Running public static void art.Test1912.LongMethod(java.lang.Runnable) with "GetInt" on remote thread.
 "GetInt" on public static void art.Test1912.LongMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '9001' (class: class java.lang.Long)
@@ -43,9 +34,6 @@
 Running public static void art.Test1912.LongMethod(java.lang.Runnable) with "GetDouble" on remote thread.
 "GetDouble" on public static void art.Test1912.LongMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '9001' (class: class java.lang.Long)
-Running public static void art.Test1912.LongMethod(java.lang.Runnable) with "GetObject" on remote thread.
-"GetObject" on public static void art.Test1912.LongMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
 Running public static void art.Test1912.LongMethod(java.lang.Runnable) with "SetInt" on remote thread.
 "SetInt" on public static void art.Test1912.LongMethod(java.lang.Runnable) failed to set value 2147483647 due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '9001' (class: class java.lang.Long)
@@ -58,12 +46,6 @@
 Running public static void art.Test1912.LongMethod(java.lang.Runnable) with "SetDouble" on remote thread.
 "SetDouble" on public static void art.Test1912.LongMethod(java.lang.Runnable) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '9001' (class: class java.lang.Long)
-Running public static void art.Test1912.LongMethod(java.lang.Runnable) with "SetObject" on remote thread.
-"SetObject" on public static void art.Test1912.LongMethod(java.lang.Runnable) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art.Test1912.LongMethod(java.lang.Runnable) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art.Test1912.LongMethod(java.lang.Runnable) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
 Running public static void art.Test1912.FloatMethod(java.lang.Runnable) with "GetInt" on remote thread.
 "GetInt" on public static void art.Test1912.FloatMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '1.618' (class: class java.lang.Float)
@@ -76,9 +58,6 @@
 Running public static void art.Test1912.FloatMethod(java.lang.Runnable) with "GetDouble" on remote thread.
 "GetDouble" on public static void art.Test1912.FloatMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '1.618' (class: class java.lang.Float)
-Running public static void art.Test1912.FloatMethod(java.lang.Runnable) with "GetObject" on remote thread.
-"GetObject" on public static void art.Test1912.FloatMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
 Running public static void art.Test1912.FloatMethod(java.lang.Runnable) with "SetInt" on remote thread.
 "SetInt" on public static void art.Test1912.FloatMethod(java.lang.Runnable) failed to set value 2147483647 due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '1.618' (class: class java.lang.Float)
@@ -91,12 +70,6 @@
 Running public static void art.Test1912.FloatMethod(java.lang.Runnable) with "SetDouble" on remote thread.
 "SetDouble" on public static void art.Test1912.FloatMethod(java.lang.Runnable) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '1.618' (class: class java.lang.Float)
-Running public static void art.Test1912.FloatMethod(java.lang.Runnable) with "SetObject" on remote thread.
-"SetObject" on public static void art.Test1912.FloatMethod(java.lang.Runnable) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art.Test1912.FloatMethod(java.lang.Runnable) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art.Test1912.FloatMethod(java.lang.Runnable) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
 Running public static void art.Test1912.DoubleMethod(java.lang.Runnable) with "GetInt" on remote thread.
 "GetInt" on public static void art.Test1912.DoubleMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '3.1415' (class: class java.lang.Double)
@@ -109,9 +82,6 @@
 Running public static void art.Test1912.DoubleMethod(java.lang.Runnable) with "GetDouble" on remote thread.
 "GetDouble" on public static void art.Test1912.DoubleMethod(java.lang.Runnable) got value: 3.1415
 	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art.Test1912.DoubleMethod(java.lang.Runnable) with "GetObject" on remote thread.
-"GetObject" on public static void art.Test1912.DoubleMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
 Running public static void art.Test1912.DoubleMethod(java.lang.Runnable) with "SetInt" on remote thread.
 "SetInt" on public static void art.Test1912.DoubleMethod(java.lang.Runnable) failed to set value 2147483647 due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '3.1415' (class: class java.lang.Double)
@@ -124,78 +94,6 @@
 Running public static void art.Test1912.DoubleMethod(java.lang.Runnable) with "SetDouble" on remote thread.
 "SetDouble" on public static void art.Test1912.DoubleMethod(java.lang.Runnable) set value: 12.4
 	Value is '12.4' (class: class java.lang.Double)
-Running public static void art.Test1912.DoubleMethod(java.lang.Runnable) with "SetObject" on remote thread.
-"SetObject" on public static void art.Test1912.DoubleMethod(java.lang.Runnable) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art.Test1912.DoubleMethod(java.lang.Runnable) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art.Test1912.DoubleMethod(java.lang.Runnable) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "GetInt" on remote thread.
-"GetInt" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "GetLong" on remote thread.
-"GetLong" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "GetFloat" on remote thread.
-"GetFloat" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "GetDouble" on remote thread.
-"GetDouble" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "GetObject" on remote thread.
-"GetObject" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) got value: TARGET OBJECT
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "SetInt" on remote thread.
-"SetInt" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) failed to set value 2147483647 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "SetLong" on remote thread.
-"SetLong" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) failed to set value 9223372036854775807 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "SetFloat" on remote thread.
-"SetFloat" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) failed to set value 9.2 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "SetDouble" on remote thread.
-"SetDouble" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET OBJECT' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "SetObject" on remote thread.
-"SetObject" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) set value: NEW_VALUE_FOR_SET
-	Value is 'NEW_VALUE_FOR_SET' (class: class java.lang.String)
-Running public static void art.Test1912.ObjectMethod(java.lang.Runnable) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art.Test1912.ObjectMethod(java.lang.Runnable) set value: null
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "GetInt" on remote thread.
-"GetInt" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "GetLong" on remote thread.
-"GetLong" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "GetFloat" on remote thread.
-"GetFloat" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "GetDouble" on remote thread.
-"GetDouble" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "GetObject" on remote thread.
-"GetObject" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) got value: null
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "SetInt" on remote thread.
-"SetInt" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) failed to set value 2147483647 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "SetLong" on remote thread.
-"SetLong" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) failed to set value 9223372036854775807 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "SetFloat" on remote thread.
-"SetFloat" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) failed to set value 9.2 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "SetDouble" on remote thread.
-"SetDouble" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "SetObject" on remote thread.
-"SetObject" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) set value: NEW_VALUE_FOR_SET
-	Value is 'NEW_VALUE_FOR_SET' (class: class java.lang.String)
-Running public static void art.Test1912.NullObjectMethod(java.lang.Runnable) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art.Test1912.NullObjectMethod(java.lang.Runnable) set value: null
-	Value is 'null' (class: null)
 Running public static void art.Test1912.BooleanMethod(java.lang.Runnable) with "SetIntBoolSize" on remote thread.
 "SetIntBoolSize" on public static void art.Test1912.BooleanMethod(java.lang.Runnable) set value: 1
 	Value is 'true' (class: class java.lang.Boolean)
diff --git a/test/1912-get-set-local-primitive/src/art/Test1912.java b/test/1912-get-set-local-primitive/src/art/Test1912.java
index f0a6065..24149f4 100644
--- a/test/1912-get-set-local-primitive/src/art/Test1912.java
+++ b/test/1912-get-set-local-primitive/src/art/Test1912.java
@@ -20,39 +20,29 @@
 import java.lang.reflect.Executable;
 import java.lang.reflect.Method;
 import java.nio.ByteBuffer;
+import java.util.concurrent.Semaphore;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.Semaphore;
-import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.function.Supplier;
+import java.util.function.Consumer;
 
 // TODO Rename test to set-get-local-prim
 
 public class Test1912 {
   public static final String TARGET_VAR = "TARGET";
 
+
   public static void reportValue(Object val) {
     if (val instanceof Character) {
       val = "<Char: " + Character.getNumericValue(((Character)val).charValue()) + ">";
     }
-    System.out.println("\tValue is '" + val +
-                       "' (class: " + (val != null ? val.getClass().toString() : "null") + ")");
+    System.out.println("\tValue is '" + val + "' (class: " + val.getClass() + ")");
   }
 
-  public static void NullObjectMethod(Runnable safepoint) {
-    Object TARGET = null;
-    safepoint.run();
-    reportValue(TARGET);
-  }
-  public static void ObjectMethod(Runnable safepoint) {
-    Object TARGET = "TARGET OBJECT";
-    safepoint.run();
-    reportValue(TARGET);
-  }
   public static void BooleanMethod(Runnable safepoint) {
     boolean TARGET = false;
     safepoint.run();
@@ -95,27 +85,31 @@
   }
 
   public static interface SafepointFunction {
-    public void
-    invoke(Thread thread, Method target, Locals.VariableDescription TARGET_desc, int depth)
-        throws Exception;
+    public void invoke(
+        Thread thread,
+        Method target,
+        Locals.VariableDescription TARGET_desc,
+        int depth) throws Exception;
   }
 
   public static interface SetterFunction {
     public void SetVar(Thread t, int depth, int slot, Object v);
   }
 
-  public static interface GetterFunction { public Object GetVar(Thread t, int depth, int slot); }
+  public static interface GetterFunction {
+    public Object GetVar(Thread t, int depth, int slot);
+  }
 
-  public static SafepointFunction
-  NamedSet(final String type, final SetterFunction get, final Object v) {
+  public static SafepointFunction NamedSet(
+      final String type, final SetterFunction get, final Object v) {
     return new SafepointFunction() {
       public void invoke(Thread t, Method method, Locals.VariableDescription desc, int depth) {
         try {
           get.SetVar(t, depth, desc.slot, v);
           System.out.println(this + " on " + method + " set value: " + v);
         } catch (Exception e) {
-          System.out.println(this + " on " + method + " failed to set value " + v + " due to " +
-                             e.getMessage());
+          System.out.println(
+              this + " on " + method + " failed to set value " + v + " due to " + e.getMessage());
         }
       }
       public String toString() {
@@ -177,13 +171,15 @@
     public void exec(final SafepointFunction safepoint) throws Exception {
       System.out.println("Running " + target + " with " + safepoint + " on remote thread.");
       final ThreadPauser pause = new ThreadPauser();
-      Thread remote = new Thread(() -> {
-        try {
-          target.invoke(null, pause);
-        } catch (Exception e) {
-          throw new Error("Error invoking remote thread " + Thread.currentThread(), e);
-        }
-      }, "remote thread for " + target + " with " + safepoint);
+      Thread remote = new Thread(
+          () -> {
+            try {
+              target.invoke(null, pause);
+            } catch (Exception e) {
+              throw new Error("Error invoking remote thread " + Thread.currentThread(), e);
+            }
+          },
+          "remote thread for " + target + " with " + safepoint);
       remote.start();
       pause.waitForOtherThreadToPause();
       try {
@@ -200,12 +196,14 @@
 
     private Locals.VariableDescription findTargetVar(long loc) {
       for (Locals.VariableDescription var : Locals.GetLocalVariableTable(target)) {
-        if (var.start_location <= loc && var.length + var.start_location > loc &&
+        if (var.start_location <= loc &&
+            var.length + var.start_location > loc &&
             var.name.equals(TARGET_VAR)) {
           return var;
         }
       }
-      throw new Error("Unable to find variable " + TARGET_VAR + " in " + target + " at loc " + loc);
+      throw new Error(
+          "Unable to find variable " + TARGET_VAR + " in " + target + " at loc " + loc);
     }
 
     private StackTrace.StackFrameData findStackFrame(Thread thr) {
@@ -224,9 +222,10 @@
   public static void run() throws Exception {
     Locals.EnableLocalVariableAccess();
     final TestCase[] MAIN_TEST_CASES = new TestCase[] {
-      new TestCase(getMethod("IntMethod")),    new TestCase(getMethod("LongMethod")),
-      new TestCase(getMethod("FloatMethod")),  new TestCase(getMethod("DoubleMethod")),
-      new TestCase(getMethod("ObjectMethod")), new TestCase(getMethod("NullObjectMethod")),
+      new TestCase(getMethod("IntMethod")),
+      new TestCase(getMethod("LongMethod")),
+      new TestCase(getMethod("FloatMethod")),
+      new TestCase(getMethod("DoubleMethod")),
     };
 
     final SafepointFunction[] SAFEPOINTS = new SafepointFunction[] {
@@ -234,30 +233,28 @@
       NamedGet("Long", Locals::GetLocalVariableLong),
       NamedGet("Float", Locals::GetLocalVariableFloat),
       NamedGet("Double", Locals::GetLocalVariableDouble),
-      NamedGet("Object", Locals::GetLocalVariableObject),
       NamedSet("Int", Locals::SetLocalVariableInt, Integer.MAX_VALUE),
       NamedSet("Long", Locals::SetLocalVariableLong, Long.MAX_VALUE),
       NamedSet("Float", Locals::SetLocalVariableFloat, 9.2f),
       NamedSet("Double", Locals::SetLocalVariableDouble, 12.4d),
-      NamedSet("Object", Locals::SetLocalVariableObject, "NEW_VALUE_FOR_SET"),
-      NamedSet("NullObject", Locals::SetLocalVariableObject, null),
     };
 
-    for (TestCase t : MAIN_TEST_CASES) {
+    for (TestCase t: MAIN_TEST_CASES) {
       for (SafepointFunction s : SAFEPOINTS) {
         t.exec(s);
       }
     }
 
     // Test int for small values.
-    new TestCase(getMethod("BooleanMethod"))
-        .exec(NamedSet("IntBoolSize", Locals::SetLocalVariableInt, 1));
-    new TestCase(getMethod("ByteMethod"))
-        .exec(NamedSet("IntByteSize", Locals::SetLocalVariableInt, Byte.MAX_VALUE - 1));
+    new TestCase(getMethod("BooleanMethod")).exec(
+        NamedSet("IntBoolSize", Locals::SetLocalVariableInt, 1));
+    new TestCase(getMethod("ByteMethod")).exec(
+      NamedSet("IntByteSize", Locals::SetLocalVariableInt, Byte.MAX_VALUE - 1));
 
-    new TestCase(getMethod("CharMethod"))
-        .exec(NamedSet("IntCharSize", Locals::SetLocalVariableInt, Character.MAX_VALUE - 1));
-    new TestCase(getMethod("ShortMethod"))
-        .exec(NamedSet("IntShortSize", Locals::SetLocalVariableInt, Short.MAX_VALUE - 1));
+    new TestCase(getMethod("CharMethod")).exec(
+      NamedSet("IntCharSize", Locals::SetLocalVariableInt, Character.MAX_VALUE - 1));
+    new TestCase(getMethod("ShortMethod")).exec(
+      NamedSet("IntShortSize", Locals::SetLocalVariableInt, Short.MAX_VALUE - 1));
   }
 }
+
diff --git a/test/1913-get-set-local-objects/expected.txt b/test/1913-get-set-local-objects/expected.txt
index 2338915..23f4992 100644
--- a/test/1913-get-set-local-objects/expected.txt
+++ b/test/1913-get-set-local-objects/expected.txt
@@ -70,57 +70,3 @@
 Running public static void art.Test1913.PrimitiveMethod(java.lang.Runnable) with "SetTestClass2impl" on remote thread.
 "SetTestClass2impl" on public static void art.Test1913.PrimitiveMethod(java.lang.Runnable) failed to set value TestClass2impl("TestClass2("Set TestClass2impl")") due to JVMTI_ERROR_TYPE_MISMATCH
 	Value is '42' (class: class java.lang.Integer)
-Running public static void art.Test1913.NullObjectMethod(java.lang.Runnable) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art.Test1913.NullObjectMethod(java.lang.Runnable) got value: null
-	Value is 'null' (class: NULL)
-Running public static void art.Test1913.NullObjectMethod(java.lang.Runnable) with "SetNull" on remote thread.
-"SetNull" on public static void art.Test1913.NullObjectMethod(java.lang.Runnable) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art.Test1913.NullObjectMethod(java.lang.Runnable) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art.Test1913.NullObjectMethod(java.lang.Runnable) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1913$TestClass1)
-Running public static void art.Test1913.NullObjectMethod(java.lang.Runnable) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art.Test1913.NullObjectMethod(java.lang.Runnable) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1913$TestClass1ext)
-Running public static void art.Test1913.NullObjectMethod(java.lang.Runnable) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art.Test1913.NullObjectMethod(java.lang.Runnable) set value: TestClass2("Set TestClass2")
-	Value is 'TestClass2("Set TestClass2")' (class: class art.Test1913$TestClass2)
-Running public static void art.Test1913.NullObjectMethod(java.lang.Runnable) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art.Test1913.NullObjectMethod(java.lang.Runnable) set value: TestClass2impl("TestClass2("Set TestClass2impl")")
-	Value is 'TestClass2impl("TestClass2("Set TestClass2impl")")' (class: class art.Test1913$TestClass2impl)
-Running public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) got value: null
-	Value is 'null' (class: NULL)
-Running public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) with "SetNull" on remote thread.
-"SetNull" on public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1913$TestClass1)
-Running public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1913$TestClass1ext)
-Running public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: NULL)
-Running public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art.Test1913.NullInterfaceMethod(java.lang.Runnable) set value: TestClass2impl("TestClass2("Set TestClass2impl")")
-	Value is 'TestClass2impl("TestClass2("Set TestClass2impl")")' (class: class art.Test1913$TestClass2impl)
-Running public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) got value: null
-	Value is 'null' (class: NULL)
-Running public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) with "SetNull" on remote thread.
-"SetNull" on public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1913$TestClass1)
-Running public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1913$TestClass1ext)
-Running public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: NULL)
-Running public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art.Test1913.NullSpecificClassMethod(java.lang.Runnable) failed to set value TestClass2impl("TestClass2("Set TestClass2impl")") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: NULL)
diff --git a/test/1913-get-set-local-objects/src/art/Test1913.java b/test/1913-get-set-local-objects/src/art/Test1913.java
index df86493..417138a 100644
--- a/test/1913-get-set-local-objects/src/art/Test1913.java
+++ b/test/1913-get-set-local-objects/src/art/Test1913.java
@@ -20,15 +20,15 @@
 import java.lang.reflect.Executable;
 import java.lang.reflect.Method;
 import java.nio.ByteBuffer;
+import java.util.concurrent.Semaphore;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.Semaphore;
-import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.function.Supplier;
+import java.util.function.Consumer;
 
 public class Test1913 {
   public static final String TARGET_VAR = "TARGET";
@@ -38,43 +38,27 @@
   }
   public static class TestClass1 implements TestInterface {
     public String id;
-    public TestClass1(String id) {
-      this.id = id;
-    }
-    public String toString() {
-      return String.format("TestClass1(\"%s\")", id);
-    }
+    public TestClass1(String id) { this.id = id; }
+    public String toString() { return String.format("TestClass1(\"%s\")", id); }
   }
 
   public static class TestClass1ext extends TestClass1 {
-    public TestClass1ext(String id) {
-      super(id);
-    }
-    public String toString() {
-      return String.format("TestClass1ext(\"%s\")", super.toString());
-    }
+    public TestClass1ext(String id) { super(id); }
+    public String toString() { return String.format("TestClass1ext(\"%s\")", super.toString()); }
   }
   public static class TestClass2 {
     public String id;
-    public TestClass2(String id) {
-      this.id = id;
-    }
-    public String toString() {
-      return String.format("TestClass2(\"%s\")", id);
-    }
+    public TestClass2(String id) { this.id = id; }
+    public String toString() { return String.format("TestClass2(\"%s\")", id); }
   }
   public static class TestClass2impl extends TestClass2 implements TestInterface {
-    public TestClass2impl(String id) {
-      super(id);
-    }
-    public String toString() {
-      return String.format("TestClass2impl(\"%s\")", super.toString());
-    }
+    public TestClass2impl(String id) { super(id); }
+    public String toString() { return String.format("TestClass2impl(\"%s\")", super.toString()); }
   }
 
   public static void reportValue(Object val) {
-    System.out.println("\tValue is '" + val +
-                       "' (class: " + (val != null ? val.getClass() : "NULL") + ")");
+    System.out.println("\tValue is '" + val + "' (class: "
+        + (val != null ? val.getClass() : "NULL") + ")");
   }
 
   public static void PrimitiveMethod(Runnable safepoint) {
@@ -84,28 +68,7 @@
   }
 
   // b/64115302: Needed to make sure that DX doesn't change the type of TARGET to TestClass1.
-  private static Object AsObject(Object o) {
-    return o;
-  }
-
-  public static void NullObjectMethod(Runnable safepoint) {
-    Object TARGET = null;
-    safepoint.run();
-    reportValue(TARGET);
-  }
-
-  public static void NullInterfaceMethod(Runnable safepoint) {
-    TestInterface TARGET = null;
-    safepoint.run();
-    reportValue(TARGET);
-  }
-
-  public static void NullSpecificClassMethod(Runnable safepoint) {
-    TestClass1 TARGET = null;
-    safepoint.run();
-    reportValue(TARGET);
-  }
-
+  private static Object AsObject(Object o) { return o; }
   public static void ObjectMethod(Runnable safepoint) {
     Object TARGET = AsObject(new TestClass1("ObjectMethod"));
     safepoint.run();
@@ -125,27 +88,31 @@
   }
 
   public static interface SafepointFunction {
-    public void
-    invoke(Thread thread, Method target, Locals.VariableDescription TARGET_desc, int depth)
-        throws Exception;
+    public void invoke(
+        Thread thread,
+        Method target,
+        Locals.VariableDescription TARGET_desc,
+        int depth) throws Exception;
   }
 
   public static interface SetterFunction {
     public void SetVar(Thread t, int depth, int slot, Object v);
   }
 
-  public static interface GetterFunction { public Object GetVar(Thread t, int depth, int slot); }
+  public static interface GetterFunction {
+    public Object GetVar(Thread t, int depth, int slot);
+  }
 
-  public static SafepointFunction
-  NamedSet(final String type, final SetterFunction get, final Object v) {
+  public static SafepointFunction NamedSet(
+      final String type, final SetterFunction get, final Object v) {
     return new SafepointFunction() {
       public void invoke(Thread t, Method method, Locals.VariableDescription desc, int depth) {
         try {
           get.SetVar(t, depth, desc.slot, v);
           System.out.println(this + " on " + method + " set value: " + v);
         } catch (Exception e) {
-          System.out.println(this + " on " + method + " failed to set value " + v + " due to " +
-                             e.getMessage());
+          System.out.println(
+              this + " on " + method + " failed to set value " + v + " due to " + e.getMessage());
         }
       }
       public String toString() {
@@ -207,13 +174,15 @@
     public void exec(final SafepointFunction safepoint) throws Exception {
       System.out.println("Running " + target + " with " + safepoint + " on remote thread.");
       final ThreadPauser pause = new ThreadPauser();
-      Thread remote = new Thread(() -> {
-        try {
-          target.invoke(null, pause);
-        } catch (Exception e) {
-          throw new Error("Error invoking remote thread " + Thread.currentThread(), e);
-        }
-      }, "remote thread for " + target + " with " + safepoint);
+      Thread remote = new Thread(
+          () -> {
+            try {
+              target.invoke(null, pause);
+            } catch (Exception e) {
+              throw new Error("Error invoking remote thread " + Thread.currentThread(), e);
+            }
+          },
+          "remote thread for " + target + " with " + safepoint);
       remote.start();
       pause.waitForOtherThreadToPause();
       try {
@@ -230,12 +199,14 @@
 
     private Locals.VariableDescription findTargetVar(long loc) {
       for (Locals.VariableDescription var : Locals.GetLocalVariableTable(target)) {
-        if (var.start_location <= loc && var.length + var.start_location > loc &&
+        if (var.start_location <= loc &&
+            var.length + var.start_location > loc &&
             var.name.equals(TARGET_VAR)) {
           return var;
         }
       }
-      throw new Error("Unable to find variable " + TARGET_VAR + " in " + target + " at loc " + loc);
+      throw new Error(
+          "Unable to find variable " + TARGET_VAR + " in " + target + " at loc " + loc);
     }
 
     private StackTrace.StackFrameData findStackFrame(Thread thr) {
@@ -254,27 +225,27 @@
   public static void run() throws Exception {
     Locals.EnableLocalVariableAccess();
     final TestCase[] MAIN_TEST_CASES = new TestCase[] {
-      new TestCase(getMethod("ObjectMethod")),        new TestCase(getMethod("InterfaceMethod")),
-      new TestCase(getMethod("SpecificClassMethod")), new TestCase(getMethod("PrimitiveMethod")),
-      new TestCase(getMethod("NullObjectMethod")),
-      new TestCase(getMethod("NullInterfaceMethod")),
-      new TestCase(getMethod("NullSpecificClassMethod")),
+      new TestCase(getMethod("ObjectMethod")),
+      new TestCase(getMethod("InterfaceMethod")),
+      new TestCase(getMethod("SpecificClassMethod")),
+      new TestCase(getMethod("PrimitiveMethod")),
     };
 
     final SetterFunction set_obj = Locals::SetLocalVariableObject;
     final SafepointFunction[] SAFEPOINTS = new SafepointFunction[] {
-      NamedGet("GetObject", Locals::GetLocalVariableObject),
-      NamedSet("Null", set_obj, null),
-      NamedSet("TestClass1", set_obj, new TestClass1("Set TestClass1")),
-      NamedSet("TestClass1ext", set_obj, new TestClass1ext("Set TestClass1ext")),
-      NamedSet("TestClass2", set_obj, new TestClass2("Set TestClass2")),
+      NamedGet("GetObject",      Locals::GetLocalVariableObject),
+      NamedSet("Null",           set_obj, null),
+      NamedSet("TestClass1",     set_obj, new TestClass1("Set TestClass1")),
+      NamedSet("TestClass1ext",  set_obj, new TestClass1ext("Set TestClass1ext")),
+      NamedSet("TestClass2",     set_obj, new TestClass2("Set TestClass2")),
       NamedSet("TestClass2impl", set_obj, new TestClass2impl("Set TestClass2impl")),
     };
 
-    for (TestCase t : MAIN_TEST_CASES) {
+    for (TestCase t: MAIN_TEST_CASES) {
       for (SafepointFunction s : SAFEPOINTS) {
         t.exec(s);
       }
     }
   }
 }
+
diff --git a/test/1965-get-set-local-primitive-no-tables/build b/test/1965-get-set-local-primitive-no-tables/build
deleted file mode 100644
index 6631df9..0000000
--- a/test/1965-get-set-local-primitive-no-tables/build
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2019 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.
-
-# make us exit on a failure
-set -e
-
-if [[ $@ != *"--jvm"* ]]; then
-  mv jasmin jasmin-unused
-else
-  mv smali smali-unused
-fi
-./default-build "$@" 
diff --git a/test/1965-get-set-local-primitive-no-tables/expected.txt b/test/1965-get-set-local-primitive-no-tables/expected.txt
deleted file mode 100644
index 97f8ab0..0000000
--- a/test/1965-get-set-local-primitive-no-tables/expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetInt" on remote thread.
-"GetInt" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 42
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetLong" on remote thread.
-"GetLong" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetFloat" on remote thread.
-"GetFloat" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 5.9E-44
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetDouble" on remote thread.
-"GetDouble" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetObject" on remote thread.
-"GetObject" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetInt" on remote thread.
-"SetInt" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 2147483647
-	Value is '2147483647' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetLong" on remote thread.
-"SetLong" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 9223372036854775807 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetFloat" on remote thread.
-"SetFloat" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 9.2
-	Value is '1091777331' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetDouble" on remote thread.
-"SetDouble" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetObject" on remote thread.
-"SetObject" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art_test.TestCases1965.IntMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetInt" on remote thread.
-"GetInt" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetLong" on remote thread.
-"GetLong" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 9001
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetFloat" on remote thread.
-"GetFloat" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetDouble" on remote thread.
-"GetDouble" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 4.447E-320
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetObject" on remote thread.
-"GetObject" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetInt" on remote thread.
-"SetInt" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 2147483647 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetLong" on remote thread.
-"SetLong" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 9223372036854775807
-	Value is '9223372036854775807' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetFloat" on remote thread.
-"SetFloat" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 9.2 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetDouble" on remote thread.
-"SetDouble" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 12.4
-	Value is '4623170197477182669' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetObject" on remote thread.
-"SetObject" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art_test.TestCases1965.LongMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '9001' (class: class java.lang.Long)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetInt" on remote thread.
-"GetInt" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 1070537376
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetLong" on remote thread.
-"GetLong" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetFloat" on remote thread.
-"GetFloat" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 1.618
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetDouble" on remote thread.
-"GetDouble" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetObject" on remote thread.
-"GetObject" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetInt" on remote thread.
-"SetInt" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 2147483647
-	Value is 'NaN' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetLong" on remote thread.
-"SetLong" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 9223372036854775807 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetFloat" on remote thread.
-"SetFloat" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 9.2
-	Value is '9.2' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetDouble" on remote thread.
-"SetDouble" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetObject" on remote thread.
-"SetObject" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art_test.TestCases1965.FloatMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '1.618' (class: class java.lang.Float)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetInt" on remote thread.
-"GetInt" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetLong" on remote thread.
-"GetLong" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 4614256447914709615
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetFloat" on remote thread.
-"GetFloat" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetDouble" on remote thread.
-"GetDouble" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 3.1415
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetObject" on remote thread.
-"GetObject" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetInt" on remote thread.
-"SetInt" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 2147483647 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetLong" on remote thread.
-"SetLong" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 9223372036854775807
-	Value is 'NaN' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetFloat" on remote thread.
-"SetFloat" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 9.2 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetDouble" on remote thread.
-"SetDouble" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 12.4
-	Value is '12.4' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetObject" on remote thread.
-"SetObject" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art_test.TestCases1965.DoubleMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '3.1415' (class: class java.lang.Double)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetInt" on remote thread.
-"GetInt" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetLong" on remote thread.
-"GetLong" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetFloat" on remote thread.
-"GetFloat" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetDouble" on remote thread.
-"GetDouble" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetObject" on remote thread.
-"GetObject" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: TARGET_VALUE
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetInt" on remote thread.
-"SetInt" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 2147483647 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetLong" on remote thread.
-"SetLong" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 9223372036854775807 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetFloat" on remote thread.
-"SetFloat" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 9.2 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetDouble" on remote thread.
-"SetDouble" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TARGET_VALUE' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetObject" on remote thread.
-"SetObject" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: NEW_VALUE_FOR_SET
-	Value is 'NEW_VALUE_FOR_SET' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art_test.TestCases1965.ObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: null
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetInt" on remote thread.
-"GetInt" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 0
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetLong" on remote thread.
-"GetLong" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetFloat" on remote thread.
-"GetFloat" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: 0.0
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetDouble" on remote thread.
-"GetDouble" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "GetObject" on remote thread.
-"GetObject" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) got value: null
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetInt" on remote thread.
-"SetInt" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 2147483647 due to JVMTI_ERROR_INTERNAL
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetLong" on remote thread.
-"SetLong" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 9223372036854775807 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetFloat" on remote thread.
-"SetFloat" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 9.2 due to JVMTI_ERROR_INTERNAL
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetDouble" on remote thread.
-"SetDouble" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 12.4 due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetObject" on remote thread.
-"SetObject" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value NEW_VALUE_FOR_SET due to JVMTI_ERROR_INTERNAL
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetNullObject" on remote thread.
-"SetNullObject" on public static void art_test.TestCases1965.NullObjectMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: null
-	Value is 'null' (class: null)
-Running public static void art_test.TestCases1965.BooleanMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetIntBoolSize" on remote thread.
-"SetIntBoolSize" on public static void art_test.TestCases1965.BooleanMethod(java.util.function.IntConsumer,java.util.function.Consumer) failed to set value 1 due to JVMTI_ERROR_INTERNAL
-	Value is 'false' (class: class java.lang.Boolean)
-Running public static void art_test.TestCases1965.ByteMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetIntByteSize" on remote thread.
-"SetIntByteSize" on public static void art_test.TestCases1965.ByteMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 126
-	Value is '126' (class: class java.lang.Byte)
-Running public static void art_test.TestCases1965.CharMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetIntCharSize" on remote thread.
-"SetIntCharSize" on public static void art_test.TestCases1965.CharMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 65534
-	Value is '<Char: -1>' (class: class java.lang.String)
-Running public static void art_test.TestCases1965.ShortMethod(java.util.function.IntConsumer,java.util.function.Consumer) with "SetIntShortSize" on remote thread.
-"SetIntShortSize" on public static void art_test.TestCases1965.ShortMethod(java.util.function.IntConsumer,java.util.function.Consumer) set value: 32766
-	Value is '32766' (class: class java.lang.Short)
diff --git a/test/1965-get-set-local-primitive-no-tables/info.txt b/test/1965-get-set-local-primitive-no-tables/info.txt
deleted file mode 100644
index 87a7b35..0000000
--- a/test/1965-get-set-local-primitive-no-tables/info.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Tests for jvmti get/set Local variable primitives.
-
diff --git a/test/1965-get-set-local-primitive-no-tables/jasmin/TestCases1965.j b/test/1965-get-set-local-primitive-no-tables/jasmin/TestCases1965.j
deleted file mode 100644
index 6374262..0000000
--- a/test/1965-get-set-local-primitive-no-tables/jasmin/TestCases1965.j
+++ /dev/null
@@ -1,173 +0,0 @@
-; Copyright (C) 2019 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.
-
-.class public final art_test/TestCases1965
-.super java/lang/Object
-
-.method public <init>()V
-  .limit stack 1
-  .limit locals 1
-  0: aload_0
-  1: invokespecial java/lang/Object/<init>()V
-  4: return
-.end method
-
-; NB We limit locals 4 so that every method has space to fit a long/double in it.
-.method public static NullObjectMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 2
-  .limit locals 4
-  0: aconst_null
-  1: astore_2
-  2: aload_0
-  3: sipush 2
-  6: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  11: aload_1
-  12: aload_2
-  13: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  18: return
-.end method
-
-.method public static ObjectMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 2
-  .limit locals 4
-  0: ldc "TARGET_VALUE"
-  2: astore_2
-  3: aload_0
-  4: sipush 2
-  7: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  12: aload_1
-  13: aload_2
-  14: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  19: return
-.end method
-
-.method public static BooleanMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 2
-  .limit locals 4
-  0: iconst_0
-  1: istore_2
-  2: aload_0
-  3: sipush 2
-  6: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  11: aload_1
-  12: iload_2
-  13: invokestatic java/lang/Boolean/valueOf(Z)Ljava/lang/Boolean;
-  16: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  21: return
-.end method
-
-.method public static ByteMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 2
-  .limit locals 4
-  0: bipush 8
-  2: istore_2
-  3: aload_0
-  4: sipush 2
-  7: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  12: aload_1
-  13: iload_2
-  14: invokestatic java/lang/Byte/valueOf(B)Ljava/lang/Byte;
-  17: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  22: return
-.end method
-
-.method public static CharMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 2
-  .limit locals 4
-  0: bipush 113
-  2: istore_2
-  3: aload_0
-  4: sipush 2
-  7: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  12: aload_1
-  13: iload_2
-  14: invokestatic java/lang/Character/valueOf(C)Ljava/lang/Character;
-  17: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  22: return
-.end method
-
-.method public static ShortMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 2
-  .limit locals 4
-  0: sipush 321
-  3: istore_2
-  4: aload_0
-  5: sipush 2
-  8: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  13: aload_1
-  14: iload_2
-  15: invokestatic java/lang/Short/valueOf(S)Ljava/lang/Short;
-  18: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  23: return
-.end method
-
-.method public static IntMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 2
-  .limit locals 4
-  0: bipush 42
-  2: istore_2
-  3: aload_0
-  4: sipush 2
-  7: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  12: aload_1
-  13: iload_2
-  14: invokestatic java/lang/Integer/valueOf(I)Ljava/lang/Integer;
-  17: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  22: return
-.end method
-
-.method public static LongMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 3
-  .limit locals 4
-  0: ldc2_w 9001
-  3: lstore_2
-  4: aload_0
-  5: sipush 2
-  8: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  13: aload_1
-  14: lload_2
-  15: invokestatic java/lang/Long/valueOf(J)Ljava/lang/Long;
-  18: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  23: return
-.end method
-
-.method public static FloatMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 2
-  .limit locals 4
-  0: ldc 1.618
-  2: fstore_2
-  3: aload_0
-  4: sipush 2
-  7: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  12: aload_1
-  13: fload_2
-  14: invokestatic java/lang/Float/valueOf(F)Ljava/lang/Float;
-  17: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  22: return
-.end method
-
-.method public static DoubleMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-  .limit stack 3
-  .limit locals 4
-  0: ldc2_w 3.1415
-  3: dstore_2
-  4: aload_0
-  5: sipush 2
-  8: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  13: aload_1
-  14: dload_2
-  15: invokestatic java/lang/Double/valueOf(D)Ljava/lang/Double;
-  18: invokeinterface java/util/function/Consumer/accept(Ljava/lang/Object;)V 2
-  23: return
-.end method
diff --git a/test/1965-get-set-local-primitive-no-tables/run b/test/1965-get-set-local-primitive-no-tables/run
deleted file mode 100755
index 9b741ee..0000000
--- a/test/1965-get-set-local-primitive-no-tables/run
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2019 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.
-
-# If we compile the .oat files non-debuggable we could end up with dex2dex running over the files
-# which will cause some instructions to be removed from smali/TestCases1966.smali. This test relies
-# on the instructions being exactly as written so pass --debuggable to 'dex2oat' only to prevent
-# this from happening.
-./default-run "$@" --jvmti --compiler-only-option --debuggable
diff --git a/test/1965-get-set-local-primitive-no-tables/smali/TestCases1965.smali b/test/1965-get-set-local-primitive-no-tables/smali/TestCases1965.smali
deleted file mode 100644
index 29aa08c..0000000
--- a/test/1965-get-set-local-primitive-no-tables/smali/TestCases1965.smali
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (C) 2019 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.
-
-.class public final Lart_test/TestCases1965;
-.super Ljava/lang/Object;
-
-
-# direct methods
-.method public constructor <init>()V
-    .registers 1
-    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
-    return-void
-.end method
-
-.method public static BooleanMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 4
-    const/4 v0, 0x0
-    # Slot for value.
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
-    move-result-object v1
-    invoke-interface {p1, v1}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static ByteMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 4
-    const/16 v0, 0x8
-    # Slot for value.
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
-    move-result-object v1
-    invoke-interface {p1, v1}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static CharMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 4
-    const/16 v0, 0x71
-    # Slot for value
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;
-    move-result-object v1
-    invoke-interface {p1, v1}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static DoubleMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 5
-    const-wide v0, 0x400921cac083126fL    # 3.1415
-    # Slot for value
-    const/16 v2, 0x0
-    invoke-interface {p0, v2}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
-    move-result-object v2
-    invoke-interface {p1, v2}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static FloatMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 4
-    const v0, 0x3fcf1aa0    # 1.618f
-    # Slot for value
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
-    move-result-object v1
-    invoke-interface {p1, v1}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static IntMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 4
-    const/16 v0, 0x2a
-    # Slot for value
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
-    move-result-object v1
-    invoke-interface {p1, v1}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static LongMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 5
-    const-wide/16 v0, 0x2329
-    # Slot for value
-    const/16 v2, 0x0
-    invoke-interface {p0, v2}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
-    move-result-object v2
-    invoke-interface {p1, v2}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static NullObjectMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 4
-    const/4 v0, 0x0
-    # Slot for value
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-interface {p1, v0}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static ObjectMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 4
-    const-string v0, "TARGET_VALUE"
-    # Slot for value
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-interface {p1, v0}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static ShortMethod(Ljava/util/function/IntConsumer;Ljava/util/function/Consumer;)V
-    .registers 4
-    const/16 v0, 0x141
-    # slot for value
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
-    move-result-object v1
-    invoke-interface {p1, v1}, Ljava/util/function/Consumer;->accept(Ljava/lang/Object;)V
-    return-void
-.end method
diff --git a/test/1965-get-set-local-primitive-no-tables/src/Main.java b/test/1965-get-set-local-primitive-no-tables/src/Main.java
deleted file mode 100644
index 73ce85f..0000000
--- a/test/1965-get-set-local-primitive-no-tables/src/Main.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2017 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) throws Exception {
-    art.Test1965.run();
-  }
-}
diff --git a/test/1965-get-set-local-primitive-no-tables/src/art/Breakpoint.java b/test/1965-get-set-local-primitive-no-tables/src/art/Breakpoint.java
deleted file mode 120000
index 3673916..0000000
--- a/test/1965-get-set-local-primitive-no-tables/src/art/Breakpoint.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/Breakpoint.java
\ No newline at end of file
diff --git a/test/1965-get-set-local-primitive-no-tables/src/art/Locals.java b/test/1965-get-set-local-primitive-no-tables/src/art/Locals.java
deleted file mode 120000
index 2998386..0000000
--- a/test/1965-get-set-local-primitive-no-tables/src/art/Locals.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/Locals.java
\ No newline at end of file
diff --git a/test/1965-get-set-local-primitive-no-tables/src/art/StackTrace.java b/test/1965-get-set-local-primitive-no-tables/src/art/StackTrace.java
deleted file mode 120000
index e1a08aa..0000000
--- a/test/1965-get-set-local-primitive-no-tables/src/art/StackTrace.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/StackTrace.java
\ No newline at end of file
diff --git a/test/1965-get-set-local-primitive-no-tables/src/art/Suspension.java b/test/1965-get-set-local-primitive-no-tables/src/art/Suspension.java
deleted file mode 120000
index bcef96f..0000000
--- a/test/1965-get-set-local-primitive-no-tables/src/art/Suspension.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/Suspension.java
\ No newline at end of file
diff --git a/test/1965-get-set-local-primitive-no-tables/src/art/Test1965.java b/test/1965-get-set-local-primitive-no-tables/src/art/Test1965.java
deleted file mode 100644
index f516d18..0000000
--- a/test/1965-get-set-local-primitive-no-tables/src/art/Test1965.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package art;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Executable;
-import java.lang.reflect.Method;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.Semaphore;
-import java.util.function.Consumer;
-import java.util.function.Function;
-import java.util.function.IntConsumer;
-import java.util.function.IntFunction;
-import java.util.function.Predicate;
-import java.util.function.Supplier;
-
-public class Test1965 {
-  public static final String TARGET_VAR = "TARGET";
-
-  public static void reportValue(Object val) {
-    if (val instanceof Character) {
-      val = "<Char: " + Character.getNumericValue(((Character)val).charValue()) + ">";
-    }
-    System.out.println("\tValue is '" + val +
-                       "' (class: " + (val != null ? val.getClass().toString() : "null") + ")");
-  }
-
-  public static interface SafepointFunction {
-    public void invoke(Thread thread, Method target, int slot, int depth) throws Exception;
-  }
-
-  public static interface SetterFunction {
-    public void SetVar(Thread t, int depth, int slot, Object v);
-  }
-
-  public static interface GetterFunction { public Object GetVar(Thread t, int depth, int slot); }
-
-  public static SafepointFunction
-  NamedSet(final String type, final SetterFunction get, final Object v) {
-    return new SafepointFunction() {
-      public void invoke(Thread t, Method method, int slot, int depth) {
-        try {
-          get.SetVar(t, depth, slot, v);
-          System.out.println(this + " on " + method + " set value: " + v);
-        } catch (Exception e) {
-          System.out.println(this + " on " + method + " failed to set value " + v + " due to " +
-                             e.getMessage());
-        }
-      }
-      public String toString() {
-        return "\"Set" + type + "\"";
-      }
-    };
-  }
-
-  public static SafepointFunction NamedGet(final String type, final GetterFunction get) {
-    return new SafepointFunction() {
-      public void invoke(Thread t, Method method, int slot, int depth) {
-        try {
-          Object res = get.GetVar(t, depth, slot);
-          System.out.println(this + " on " + method + " got value: " + res);
-        } catch (Exception e) {
-          System.out.println(this + " on " + method + " failed due to " + e.getMessage());
-        }
-      }
-      public String toString() {
-        return "\"Get" + type + "\"";
-      }
-    };
-  }
-
-  public static class TestCase {
-    public final Method target;
-
-    public TestCase(Method target) {
-      this.target = target;
-    }
-
-    public static class ThreadPauser implements IntConsumer {
-      public final Semaphore sem_wakeup_main;
-      public final Semaphore sem_wait;
-      public int slot = -1;
-
-      public ThreadPauser() {
-        sem_wakeup_main = new Semaphore(0);
-        sem_wait = new Semaphore(0);
-      }
-
-      public void accept(int v) {
-        try {
-          slot = v;
-          sem_wakeup_main.release();
-          sem_wait.acquire();
-        } catch (Exception e) {
-          throw new Error("Error with semaphores!", e);
-        }
-      }
-
-      public void waitForOtherThreadToPause() throws Exception {
-        sem_wakeup_main.acquire();
-      }
-
-      public void wakeupOtherThread() throws Exception {
-        sem_wait.release();
-      }
-    }
-
-    public void exec(final SafepointFunction safepoint) throws Exception {
-      System.out.println("Running " + target + " with " + safepoint + " on remote thread.");
-      final ThreadPauser pause = new ThreadPauser();
-      final Consumer<?> reporter = Test1965::reportValue;
-      Thread remote = new Thread(() -> {
-        try {
-          target.invoke(null, pause, reporter);
-        } catch (Exception e) {
-          throw new Error("Error invoking remote thread " + Thread.currentThread(), e);
-        }
-      }, "remote thread for " + target + " with " + safepoint);
-      remote.start();
-      pause.waitForOtherThreadToPause();
-      try {
-        Suspension.suspend(remote);
-        StackTrace.StackFrameData frame = findStackFrame(remote);
-        safepoint.invoke(remote, target, pause.slot, frame.depth);
-      } finally {
-        Suspension.resume(remote);
-        pause.wakeupOtherThread();
-        remote.join();
-      }
-    }
-
-    private Locals.VariableDescription findTargetVar(long loc) {
-      for (Locals.VariableDescription var : Locals.GetLocalVariableTable(target)) {
-        if (var.start_location <= loc && var.length + var.start_location > loc &&
-            var.name.equals(TARGET_VAR)) {
-          return var;
-        }
-      }
-      throw new Error("Unable to find variable " + TARGET_VAR + " in " + target + " at loc " + loc);
-    }
-
-    private StackTrace.StackFrameData findStackFrame(Thread thr) {
-      for (StackTrace.StackFrameData frame : StackTrace.GetStackTrace(thr)) {
-        if (frame.method.equals(target)) {
-          return frame;
-        }
-      }
-      throw new Error("Unable to find stack frame in method " + target + " on thread " + thr);
-    }
-  }
-  public static Method getMethod(String name) throws Exception {
-    return Class.forName("art_test.TestCases1965")
-        .getDeclaredMethod(name, IntConsumer.class, Consumer.class);
-  }
-
-  public static void run() throws Exception {
-    Locals.EnableLocalVariableAccess();
-    final TestCase[] MAIN_TEST_CASES = new TestCase[] {
-      new TestCase(getMethod("IntMethod")),    new TestCase(getMethod("LongMethod")),
-      new TestCase(getMethod("FloatMethod")),  new TestCase(getMethod("DoubleMethod")),
-      new TestCase(getMethod("ObjectMethod")), new TestCase(getMethod("NullObjectMethod")),
-    };
-
-    final SafepointFunction[] SAFEPOINTS = new SafepointFunction[] {
-      NamedGet("Int", Locals::GetLocalVariableInt),
-      NamedGet("Long", Locals::GetLocalVariableLong),
-      NamedGet("Float", Locals::GetLocalVariableFloat),
-      NamedGet("Double", Locals::GetLocalVariableDouble),
-      NamedGet("Object", Locals::GetLocalVariableObject),
-      NamedSet("Int", Locals::SetLocalVariableInt, Integer.MAX_VALUE),
-      NamedSet("Long", Locals::SetLocalVariableLong, Long.MAX_VALUE),
-      NamedSet("Float", Locals::SetLocalVariableFloat, 9.2f),
-      NamedSet("Double", Locals::SetLocalVariableDouble, 12.4d),
-      NamedSet("Object", Locals::SetLocalVariableObject, "NEW_VALUE_FOR_SET"),
-      NamedSet("NullObject", Locals::SetLocalVariableObject, null),
-    };
-
-    for (TestCase t : MAIN_TEST_CASES) {
-      for (SafepointFunction s : SAFEPOINTS) {
-        t.exec(s);
-      }
-    }
-
-    // Test int for small values.
-    new TestCase(getMethod("BooleanMethod"))
-        .exec(NamedSet("IntBoolSize", Locals::SetLocalVariableInt, 1));
-    new TestCase(getMethod("ByteMethod"))
-        .exec(NamedSet("IntByteSize", Locals::SetLocalVariableInt, Byte.MAX_VALUE - 1));
-
-    new TestCase(getMethod("CharMethod"))
-        .exec(NamedSet("IntCharSize", Locals::SetLocalVariableInt, Character.MAX_VALUE - 1));
-    new TestCase(getMethod("ShortMethod"))
-        .exec(NamedSet("IntShortSize", Locals::SetLocalVariableInt, Short.MAX_VALUE - 1));
-  }
-}
diff --git a/test/1966-get-set-local-objects-no-table/build b/test/1966-get-set-local-objects-no-table/build
deleted file mode 100644
index 6631df9..0000000
--- a/test/1966-get-set-local-objects-no-table/build
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2019 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.
-
-# make us exit on a failure
-set -e
-
-if [[ $@ != *"--jvm"* ]]; then
-  mv jasmin jasmin-unused
-else
-  mv smali smali-unused
-fi
-./default-build "$@" 
diff --git a/test/1966-get-set-local-objects-no-table/expected.txt b/test/1966-get-set-local-objects-no-table/expected.txt
deleted file mode 100644
index f24dfe7..0000000
--- a/test/1966-get-set-local-objects-no-table/expected.txt
+++ /dev/null
@@ -1,162 +0,0 @@
-Running public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) got value: TestClass1("ObjectMethod")
-	Value is 'TestClass1("ObjectMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1966$TestClass1ext)
-Running public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) set value: TestClass2("Set TestClass2")
-	Value is 'TestClass2("Set TestClass2")' (class: class art.Test1966$TestClass2)
-Running public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.ObjectMethod(java.util.function.IntConsumer) set value: TestClass2impl("TestClass2("Set TestClass2impl")")
-	Value is 'TestClass2impl("TestClass2("Set TestClass2impl")")' (class: class art.Test1966$TestClass2impl)
-Running public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) got value: TestClass1("ObjectMethod")
-	Value is 'TestClass1("ObjectMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1966$TestClass1ext)
-Running public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TestClass1("ObjectMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.CastInterfaceMethod(java.util.function.IntConsumer) failed to set value TestClass2impl("TestClass2("Set TestClass2impl")") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TestClass1("ObjectMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) got value: TestClass1("ObjectMethod")
-	Value is 'TestClass1("ObjectMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1966$TestClass1ext)
-Running public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TestClass1("ObjectMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.CastExactMethod(java.util.function.IntConsumer) failed to set value TestClass2impl("TestClass2("Set TestClass2impl")") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TestClass1("ObjectMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) got value: TestClass1("InterfaceMethod")
-	Value is 'TestClass1("InterfaceMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1966$TestClass1ext)
-Running public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TestClass1("InterfaceMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.InterfaceMethod(java.util.function.IntConsumer) set value: TestClass2impl("TestClass2("Set TestClass2impl")")
-	Value is 'TestClass2impl("TestClass2("Set TestClass2impl")")' (class: class art.Test1966$TestClass2impl)
-Running public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) got value: TestClass1("SpecificClassMethod")
-	Value is 'TestClass1("SpecificClassMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1966$TestClass1ext)
-Running public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TestClass1("SpecificClassMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.ExactClassMethod(java.util.function.IntConsumer) failed to set value TestClass2impl("TestClass2("Set TestClass2impl")") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'TestClass1("SpecificClassMethod")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) failed due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) failed to set value null due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) failed to set value TestClass1("Set TestClass1") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) failed to set value TestClass1ext("TestClass1("Set TestClass1ext")") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.PrimitiveMethod(java.util.function.IntConsumer) failed to set value TestClass2impl("TestClass2("Set TestClass2impl")") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is '42' (class: class java.lang.Integer)
-Running public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) got value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) failed to set value TestClass1("Set TestClass1") due to JVMTI_ERROR_INTERNAL
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) failed to set value TestClass1ext("TestClass1("Set TestClass1ext")") due to JVMTI_ERROR_INTERNAL
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_INTERNAL
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.NullMethod(java.util.function.IntConsumer) failed to set value TestClass2impl("TestClass2("Set TestClass2impl")") due to JVMTI_ERROR_INTERNAL
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) got value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1966$TestClass1ext)
-Running public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.CastExactNullMethod(java.util.function.IntConsumer) failed to set value TestClass2impl("TestClass2("Set TestClass2impl")") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) with "GetGetObject" on remote thread.
-"GetGetObject" on public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) got value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) with "SetNull" on remote thread.
-"SetNull" on public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) set value: null
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) with "SetTestClass1" on remote thread.
-"SetTestClass1" on public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) set value: TestClass1("Set TestClass1")
-	Value is 'TestClass1("Set TestClass1")' (class: class art.Test1966$TestClass1)
-Running public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) with "SetTestClass1ext" on remote thread.
-"SetTestClass1ext" on public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) set value: TestClass1ext("TestClass1("Set TestClass1ext")")
-	Value is 'TestClass1ext("TestClass1("Set TestClass1ext")")' (class: class art.Test1966$TestClass1ext)
-Running public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) with "SetTestClass2" on remote thread.
-"SetTestClass2" on public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) failed to set value TestClass2("Set TestClass2") due to JVMTI_ERROR_TYPE_MISMATCH
-	Value is 'null' (class: NULL)
-Running public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) with "SetTestClass2impl" on remote thread.
-"SetTestClass2impl" on public static void art_test.TestCases1966.CastInterfaceNullMethod(java.util.function.IntConsumer) set value: TestClass2impl("TestClass2("Set TestClass2impl")")
-	Value is 'TestClass2impl("TestClass2("Set TestClass2impl")")' (class: class art.Test1966$TestClass2impl)
diff --git a/test/1966-get-set-local-objects-no-table/info.txt b/test/1966-get-set-local-objects-no-table/info.txt
deleted file mode 100644
index 86ac743..0000000
--- a/test/1966-get-set-local-objects-no-table/info.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Tests for jvmti get and set local variable object.
-
diff --git a/test/1966-get-set-local-objects-no-table/jasmin/TestCases1966.j b/test/1966-get-set-local-objects-no-table/jasmin/TestCases1966.j
deleted file mode 100644
index 721f7ce..0000000
--- a/test/1966-get-set-local-objects-no-table/jasmin/TestCases1966.j
+++ /dev/null
@@ -1,161 +0,0 @@
-; Copyright (C) 2019 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.
-
-.class public art_test/TestCases1966
-.super java/lang/Object
-.inner class public static TestClass1 inner art/Test1966$TestClass1 outer art/Test1966
-.inner interface public static abstract TestInterface inner art/Test1966$TestInterface outer art/Test1966
-
-.method public <init>()V
-  .limit stack 1
-  .limit locals 1
-  0: aload_0
-  1: invokespecial java/lang/Object/<init>()V
-  4: return
-.end method
-
-.method public static PrimitiveMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 2
-  0: bipush 42
-  2: istore_1
-  3: aload_0
-  4: sipush 1
-  7: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  12: iload_1
-  13: invokestatic java/lang/Integer/valueOf(I)Ljava/lang/Integer;
-  16: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  19: return
-.end method
-
-.method public static CastInterfaceMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 3
-  0: ldc "ObjectMethod"
-  2: invokestatic art/Test1966$TestClass1/create(Ljava/lang/String;)Ljava/lang/Object;
-  5: astore_1
-  6: aload_1
-  7: checkcast art/Test1966$TestClass1
-  10: astore_2
-  11: aload_0
-  12: sipush 2
-  15: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  20: aload_2
-  21: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  24: return
-.end method
-
-.method public static CastExactMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 3
-  0: ldc "ObjectMethod"
-  2: invokestatic art/Test1966$TestClass1/create(Ljava/lang/String;)Ljava/lang/Object;
-  5: astore_1
-  6: aload_1
-  7: checkcast art/Test1966$TestClass1
-  10: astore_2
-  11: aload_0
-  12: sipush 2
-  15: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  20: aload_2
-  21: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  24: return
-.end method
-
-.method public static ObjectMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 2
-  0: ldc "ObjectMethod"
-  2: invokestatic art/Test1966$TestClass1/create(Ljava/lang/String;)Ljava/lang/Object;
-  5: astore_1
-  6: aload_0
-  7: sipush 1
-  10: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  15: aload_1
-  16: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  19: return
-.end method
-
-.method public static InterfaceMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 2
-  0: ldc "InterfaceMethod"
-  2: invokestatic art/Test1966$TestClass1/createInterface(Ljava/lang/String;)Lart/Test1966$TestInterface;
-  5: astore_1
-  6: aload_0
-  7: sipush 1
-  10: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  15: aload_1
-  16: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  19: return
-.end method
-
-.method public static ExactClassMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 2
-  0: ldc "SpecificClassMethod"
-  2: invokestatic art/Test1966$TestClass1/createExact(Ljava/lang/String;)Lart/Test1966$TestClass1;
-  5: astore_1
-  6: aload_0
-  7: sipush 1
-  10: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  15: aload_1
-  16: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  19: return
-.end method
-
-.method public static CastExactNullMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 3
-  0: aconst_null
-  1: astore_1
-  2: aload_1
-  3: checkcast art/Test1966$TestClass1
-  6: astore_2
-  7: aload_0
-  8: sipush 2
-  11: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  16: aload_2
-  17: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  20: return
-.end method
-
-.method public static CastInterfaceNullMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 3
-  0: aconst_null
-  1: astore_1
-  2: aload_1
-  3: checkcast art/Test1966$TestInterface
-  6: astore_2
-  7: aload_0
-  8: sipush 2
-  11: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  16: aload_2
-  17: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  20: return
-.end method
-
-.method public static NullMethod(Ljava/util/function/IntConsumer;)V
-  .limit stack 2
-  .limit locals 2
-  0: aconst_null
-  1: astore_1
-  2: aload_0
-  3: sipush 1
-  6: invokeinterface java/util/function/IntConsumer/accept(I)V 2
-  11: aload_1
-  12: invokestatic art/Test1966/reportValue(Ljava/lang/Object;)V
-  15: return
-.end method
diff --git a/test/1966-get-set-local-objects-no-table/run b/test/1966-get-set-local-objects-no-table/run
deleted file mode 100755
index 9b741ee..0000000
--- a/test/1966-get-set-local-objects-no-table/run
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2019 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.
-
-# If we compile the .oat files non-debuggable we could end up with dex2dex running over the files
-# which will cause some instructions to be removed from smali/TestCases1966.smali. This test relies
-# on the instructions being exactly as written so pass --debuggable to 'dex2oat' only to prevent
-# this from happening.
-./default-run "$@" --jvmti --compiler-only-option --debuggable
diff --git a/test/1966-get-set-local-objects-no-table/smali/TestCases1966.smali b/test/1966-get-set-local-objects-no-table/smali/TestCases1966.smali
deleted file mode 100644
index d460dcd..0000000
--- a/test/1966-get-set-local-objects-no-table/smali/TestCases1966.smali
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (C) 2019 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.
-
-
-.class public Lart_test/TestCases1966;
-.super Ljava/lang/Object;
-
-# direct methods
-.method public constructor <init>()V
-    .registers 1
-    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
-    return-void
-.end method
-
-.method public static CastExactMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const-string v0, "ObjectMethod"
-    invoke-static {v0}, Lart/Test1966$TestClass1;->create(Ljava/lang/String;)Ljava/lang/Object;
-    move-result-object v0
-    check-cast v0, Lart/Test1966$TestClass1;
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static CastInterfaceMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const-string v0, "ObjectMethod"
-    invoke-static {v0}, Lart/Test1966$TestClass1;->create(Ljava/lang/String;)Ljava/lang/Object;
-    move-result-object v0
-    check-cast v0, Lart/Test1966$TestClass1;
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static ExactClassMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const-string v0, "SpecificClassMethod"
-    invoke-static {v0}, Lart/Test1966$TestClass1;->createExact(Ljava/lang/String;)Lart/Test1966$TestClass1;
-    move-result-object v0
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static InterfaceMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const-string v0, "InterfaceMethod"
-    invoke-static {v0}, Lart/Test1966$TestClass1;->createInterface(Ljava/lang/String;)Lart/Test1966$TestInterface;
-    move-result-object v0
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static ObjectMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const-string v0, "ObjectMethod"
-    invoke-static {v0}, Lart/Test1966$TestClass1;->create(Ljava/lang/String;)Ljava/lang/Object;
-    move-result-object v0
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static PrimitiveMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const/16 v0, 0x2a
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
-    move-result-object p0
-    invoke-static {p0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static NullMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const/4 v0, 0x0
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static CastInterfaceNullMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const/4 v0, 0x0
-    check-cast v0, Lart/Test1966$TestInterface;
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
-
-.method public static CastExactNullMethod(Ljava/util/function/IntConsumer;)V
-    .registers 3
-    const/4 v0, 0x0
-    check-cast v0, Lart/Test1966$TestClass1;
-    const/16 v1, 0x0
-    invoke-interface {p0, v1}, Ljava/util/function/IntConsumer;->accept(I)V
-    invoke-static {v0}, Lart/Test1966;->reportValue(Ljava/lang/Object;)V
-    return-void
-.end method
\ No newline at end of file
diff --git a/test/1966-get-set-local-objects-no-table/src/Main.java b/test/1966-get-set-local-objects-no-table/src/Main.java
deleted file mode 100644
index 198f319..0000000
--- a/test/1966-get-set-local-objects-no-table/src/Main.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2017 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) throws Exception {
-    art.Test1966.run();
-  }
-}
diff --git a/test/1966-get-set-local-objects-no-table/src/art/Breakpoint.java b/test/1966-get-set-local-objects-no-table/src/art/Breakpoint.java
deleted file mode 120000
index 3673916..0000000
--- a/test/1966-get-set-local-objects-no-table/src/art/Breakpoint.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/Breakpoint.java
\ No newline at end of file
diff --git a/test/1966-get-set-local-objects-no-table/src/art/Locals.java b/test/1966-get-set-local-objects-no-table/src/art/Locals.java
deleted file mode 120000
index 2998386..0000000
--- a/test/1966-get-set-local-objects-no-table/src/art/Locals.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/Locals.java
\ No newline at end of file
diff --git a/test/1966-get-set-local-objects-no-table/src/art/StackTrace.java b/test/1966-get-set-local-objects-no-table/src/art/StackTrace.java
deleted file mode 120000
index e1a08aa..0000000
--- a/test/1966-get-set-local-objects-no-table/src/art/StackTrace.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/StackTrace.java
\ No newline at end of file
diff --git a/test/1966-get-set-local-objects-no-table/src/art/Suspension.java b/test/1966-get-set-local-objects-no-table/src/art/Suspension.java
deleted file mode 120000
index bcef96f..0000000
--- a/test/1966-get-set-local-objects-no-table/src/art/Suspension.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/Suspension.java
\ No newline at end of file
diff --git a/test/1966-get-set-local-objects-no-table/src/art/Test1966.java b/test/1966-get-set-local-objects-no-table/src/art/Test1966.java
deleted file mode 100644
index 00f3c4e..0000000
--- a/test/1966-get-set-local-objects-no-table/src/art/Test1966.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package art;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Executable;
-import java.lang.reflect.Method;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.Semaphore;
-import java.util.function.Consumer;
-import java.util.function.Function;
-import java.util.function.IntConsumer;
-import java.util.function.Predicate;
-import java.util.function.Supplier;
-
-public class Test1966 {
-  public static final String TARGET_VAR = "TARGET";
-
-  public static interface TestInterface {
-    public default void doNothing() {}
-  }
-  public static class TestClass1 implements TestInterface {
-    public String id;
-    public TestClass1(String id) {
-      this.id = id;
-    }
-    public String toString() {
-      return String.format("TestClass1(\"%s\")", id);
-    }
-
-    public static TestInterface createInterface(String id) {
-      return new TestClass1(id);
-    }
-    public static TestClass1 createExact(String id) {
-      return new TestClass1(id);
-    }
-    public static Object create(String id) {
-      return new TestClass1(id);
-    }
-  }
-
-  public static class TestClass1ext extends TestClass1 {
-    public TestClass1ext(String id) {
-      super(id);
-    }
-    public String toString() {
-      return String.format("TestClass1ext(\"%s\")", super.toString());
-    }
-  }
-  public static class TestClass2 {
-    public String id;
-    public TestClass2(String id) {
-      this.id = id;
-    }
-    public String toString() {
-      return String.format("TestClass2(\"%s\")", id);
-    }
-  }
-  public static class TestClass2impl extends TestClass2 implements TestInterface {
-    public TestClass2impl(String id) {
-      super(id);
-    }
-    public String toString() {
-      return String.format("TestClass2impl(\"%s\")", super.toString());
-    }
-  }
-
-  public static void reportValue(Object val) {
-    System.out.println("\tValue is '" + val +
-                       "' (class: " + (val != null ? val.getClass() : "NULL") + ")");
-  }
-
-  public static interface SafepointFunction {
-    public void invoke(Thread thread, Method target, int slot, int depth) throws Exception;
-  }
-
-  public static interface SetterFunction {
-    public void SetVar(Thread t, int depth, int slot, Object v);
-  }
-
-  public static interface GetterFunction { public Object GetVar(Thread t, int depth, int slot); }
-
-  public static SafepointFunction
-  NamedSet(final String type, final SetterFunction get, final Object v) {
-    return new SafepointFunction() {
-      public void invoke(Thread t, Method method, int slot, int depth) {
-        try {
-          get.SetVar(t, depth, slot, v);
-          System.out.println(this + " on " + method + " set value: " + v);
-        } catch (Exception e) {
-          System.out.println(this + " on " + method + " failed to set value " + v + " due to " +
-                             e.getMessage());
-        }
-      }
-      public String toString() {
-        return "\"Set" + type + "\"";
-      }
-    };
-  }
-
-  public static SafepointFunction NamedGet(final String type, final GetterFunction get) {
-    return new SafepointFunction() {
-      public void invoke(Thread t, Method method, int slot, int depth) {
-        try {
-          Object res = get.GetVar(t, depth, slot);
-          System.out.println(this + " on " + method + " got value: " + res);
-        } catch (Exception e) {
-          System.out.println(this + " on " + method + " failed due to " + e.getMessage());
-        }
-      }
-      public String toString() {
-        return "\"Get" + type + "\"";
-      }
-    };
-  }
-
-  public static class TestCase {
-    public final Method target;
-
-    public TestCase(Method target) {
-      this.target = target;
-    }
-
-    public static class ThreadPauser implements IntConsumer {
-      public final Semaphore sem_wakeup_main;
-      public final Semaphore sem_wait;
-      public int slot = -1;
-
-      public ThreadPauser() {
-        sem_wakeup_main = new Semaphore(0);
-        sem_wait = new Semaphore(0);
-      }
-
-      public void accept(int i) {
-        try {
-          slot = i;
-          sem_wakeup_main.release();
-          sem_wait.acquire();
-        } catch (Exception e) {
-          throw new Error("Error with semaphores!", e);
-        }
-      }
-
-      public void waitForOtherThreadToPause() throws Exception {
-        sem_wakeup_main.acquire();
-      }
-
-      public void wakeupOtherThread() throws Exception {
-        sem_wait.release();
-      }
-    }
-
-    public void exec(final SafepointFunction safepoint) throws Exception {
-      System.out.println("Running " + target + " with " + safepoint + " on remote thread.");
-      final ThreadPauser pause = new ThreadPauser();
-      Thread remote = new Thread(() -> {
-        try {
-          target.invoke(null, pause);
-        } catch (Exception e) {
-          throw new Error("Error invoking remote thread " + Thread.currentThread(), e);
-        }
-      }, "remote thread for " + target + " with " + safepoint);
-      remote.start();
-      pause.waitForOtherThreadToPause();
-      try {
-        Suspension.suspend(remote);
-        StackTrace.StackFrameData frame = findStackFrame(remote);
-        safepoint.invoke(remote, target, pause.slot, frame.depth);
-      } finally {
-        Suspension.resume(remote);
-        pause.wakeupOtherThread();
-        remote.join();
-      }
-    }
-
-    private StackTrace.StackFrameData findStackFrame(Thread thr) {
-      for (StackTrace.StackFrameData frame : StackTrace.GetStackTrace(thr)) {
-        if (frame.method.equals(target)) {
-          return frame;
-        }
-      }
-      throw new Error("Unable to find stack frame in method " + target + " on thread " + thr);
-    }
-  }
-  public static Method getMethod(String name) throws Exception {
-    return Class.forName("art_test.TestCases1966").getDeclaredMethod(name, IntConsumer.class);
-  }
-
-  public static void run() throws Exception {
-    Locals.EnableLocalVariableAccess();
-    final TestCase[] MAIN_TEST_CASES = new TestCase[] {
-      new TestCase(getMethod("ObjectMethod")),
-      new TestCase(getMethod("CastInterfaceMethod")),
-      new TestCase(getMethod("CastExactMethod")),
-      new TestCase(getMethod("InterfaceMethod")),
-      new TestCase(getMethod("ExactClassMethod")),
-      new TestCase(getMethod("PrimitiveMethod")),
-      new TestCase(getMethod("NullMethod")),
-      new TestCase(getMethod("CastExactNullMethod")),
-      new TestCase(getMethod("CastInterfaceNullMethod")),
-    };
-
-    final SetterFunction set_obj = Locals::SetLocalVariableObject;
-    final SafepointFunction[] SAFEPOINTS = new SafepointFunction[] {
-      NamedGet("GetObject", Locals::GetLocalVariableObject),
-      NamedSet("Null", set_obj, null),
-      NamedSet("TestClass1", set_obj, new TestClass1("Set TestClass1")),
-      NamedSet("TestClass1ext", set_obj, new TestClass1ext("Set TestClass1ext")),
-      NamedSet("TestClass2", set_obj, new TestClass2("Set TestClass2")),
-      NamedSet("TestClass2impl", set_obj, new TestClass2impl("Set TestClass2impl")),
-    };
-
-    for (TestCase t : MAIN_TEST_CASES) {
-      for (SafepointFunction s : SAFEPOINTS) {
-        t.exec(s);
-      }
-    }
-  }
-}
diff --git a/test/etc/run-test-jar b/test/etc/run-test-jar
index 6804091..bcd35e6 100755
--- a/test/etc/run-test-jar
+++ b/test/etc/run-test-jar
@@ -157,11 +157,6 @@
         fi
         ARGS="${ARGS} $1"
         shift
-    elif [ "x$1" = "x--compiler-only-option" ]; then
-        shift
-        option="$1"
-        COMPILE_FLAGS="${COMPILE_FLAGS} $option"
-        shift
     elif [ "x$1" = "x-Xcompiler-option" ]; then
         shift
         option="$1"
diff --git a/test/knownfailures.json b/test/knownfailures.json
index ad0cbe8..963d335 100644
--- a/test/knownfailures.json
+++ b/test/knownfailures.json
@@ -777,18 +777,6 @@
         "description": ["Requires zip, which isn't available on device"]
     },
     {
-        "tests": [
-          "1965-get-set-local-primitive-no-tables",
-          "1966-get-set-local-objects-no-table"
-        ],
-        "variant": "jvm",
-        "bug": "133241695",
-        "description": [
-          "The RI is wildly inconsistent about how it handles Get/SetLocalVariable when classes ",
-          "lack debug info."
-        ]
-    },
-    {
         "tests": ["683-clinit-inline-static-invoke"],
         "variant": "jvm",
         "description": ["Uses android-specific boot image class."]