diff --git a/test/knownfailures.json b/test/knownfailures.json
index 3cfff43..98d56d4 100644
--- a/test/knownfailures.json
+++ b/test/knownfailures.json
@@ -94,7 +94,7 @@
     },
     {
         "test" : "629-vdex-speed",
-        "variant": "interp-ac | no-dex2oat | interpreter | jit",
+        "variant": "interp-ac | no-dex2oat | interpreter | jit | relocate-npatchoat",
         "description": "629 requires compilation."
     },
     {
@@ -162,7 +162,7 @@
     },
     {
         "test": "147-stripped-dex-fallback",
-        "variant": "no-dex2oat | no-image",
+        "variant": "no-dex2oat | no-image | relocate-npatchoat",
         "description": ["147-stripped-dex-fallback is disabled because it",
                         "requires --prebuild."]
     },
@@ -179,7 +179,7 @@
                   "119-noimage-patchoat",
                   "137-cfi",
                   "138-duplicate-classes-check2"],
-        "variant": "no-dex2oat | no-image",
+        "variant": "no-dex2oat | no-image | relocate-npatchoat",
         "description": ["All these tests check that we have sane behavior if we",
                         "don't have a patchoat or dex2oat. Therefore we",
                         "shouldn't run them in situations where we actually",
@@ -311,6 +311,12 @@
         "description": "Tests that check semantics for a non-debuggable app."
     },
     {
+        "test": "137-cfi",
+        "variant": "debuggable",
+        "description": ["The test relies on AOT code and debuggable makes us",
+                        "JIT always."]
+    },
+    {
         "tests": ["000-nop",
                   "134-nodex2oat-nofallback",
                   "147-stripped-dex-fallback",
diff --git a/test/testrunner/testrunner.py b/test/testrunner/testrunner.py
index f237268..faa0c6e 100755
--- a/test/testrunner/testrunner.py
+++ b/test/testrunner/testrunner.py
@@ -166,82 +166,79 @@
     TARGET_TYPES.add('host')
     TARGET_TYPES.add('target')
 
-  if not PREBUILD_TYPES:
-    if env.ART_TEST_RUN_TEST_PREBUILD:
-      PREBUILD_TYPES.add('prebuild')
-    if env.ART_TEST_RUN_TEST_NO_PREBUILD:
-      PREBUILD_TYPES.add('no-prebuild')
-    if env.ART_TEST_RUN_TEST_NO_DEX2OAT:
-      PREBUILD_TYPES.add('no-dex2oat')
+  if env.ART_TEST_RUN_TEST_PREBUILD:
+    PREBUILD_TYPES.add('prebuild')
+  if env.ART_TEST_RUN_TEST_NO_PREBUILD:
+    PREBUILD_TYPES.add('no-prebuild')
+  if env.ART_TEST_RUN_TEST_NO_DEX2OAT:
+    PREBUILD_TYPES.add('no-dex2oat')
 
-  if not COMPILER_TYPES:
-    if env.ART_TEST_INTERPRETER_ACCESS_CHECKS:
-      COMPILER_TYPES.add('interp-ac')
-    if env.ART_TEST_INTERPRETER:
-      COMPILER_TYPES.add('interpreter')
-    if env.ART_TEST_JIT:
-      COMPILER_TYPES.add('jit')
+  if env.ART_TEST_INTERPRETER_ACCESS_CHECKS:
+    COMPILER_TYPES.add('interp-ac')
+  if env.ART_TEST_INTERPRETER:
+    COMPILER_TYPES.add('interpreter')
+  if env.ART_TEST_JIT:
+    COMPILER_TYPES.add('jit')
 
-    if env.ART_TEST_OPTIMIZING:
-      COMPILER_TYPES.add('optimizing')
-      OPTIMIZING_COMPILER_TYPES.add('optimizing')
-    if env.ART_TEST_OPTIMIZING_GRAPH_COLOR:
-      COMPILER_TYPES.add('regalloc_gc')
-      OPTIMIZING_COMPILER_TYPES.add('regalloc_gc')
+  if env.ART_TEST_OPTIMIZING:
+    COMPILER_TYPES.add('optimizing')
+    OPTIMIZING_COMPILER_TYPES.add('optimizing')
+  if env.ART_TEST_OPTIMIZING_GRAPH_COLOR:
+    COMPILER_TYPES.add('regalloc_gc')
+    OPTIMIZING_COMPILER_TYPES.add('regalloc_gc')
 
   if not RELOCATE_TYPES:
     RELOCATE_TYPES.add('no-relocate')
-    if env.ART_TEST_RUN_TEST_RELOCATE:
-      RELOCATE_TYPES.add('relocate')
-    if env.ART_TEST_RUN_TEST_RELOCATE_NO_PATCHOAT:
-      RELOCATE_TYPES.add('relocate-npatchoat')
+  if env.ART_TEST_RUN_TEST_RELOCATE:
+    RELOCATE_TYPES.add('relocate')
+  if env.ART_TEST_RUN_TEST_RELOCATE_NO_PATCHOAT:
+    RELOCATE_TYPES.add('relocate-npatchoat')
 
   if not TRACE_TYPES:
     TRACE_TYPES.add('ntrace')
-    if env.ART_TEST_TRACE:
-      TRACE_TYPES.add('trace')
-    if env.ART_TEST_TRACE_STREAM:
-      TRACE_TYPES.add('stream')
+  if env.ART_TEST_TRACE:
+    TRACE_TYPES.add('trace')
+  if env.ART_TEST_TRACE_STREAM:
+    TRACE_TYPES.add('stream')
 
   if not GC_TYPES:
     GC_TYPES.add('cms')
-    if env.ART_TEST_GC_STRESS:
-      GC_TYPES.add('gcstress')
-    if env.ART_TEST_GC_VERIFY:
-      GC_TYPES.add('gcverify')
+  if env.ART_TEST_GC_STRESS:
+    GC_TYPES.add('gcstress')
+  if env.ART_TEST_GC_VERIFY:
+    GC_TYPES.add('gcverify')
 
   if not JNI_TYPES:
     JNI_TYPES.add('checkjni')
-    if env.ART_TEST_JNI_FORCECOPY:
-      JNI_TYPES.add('forcecopy')
+  if env.ART_TEST_JNI_FORCECOPY:
+    JNI_TYPES.add('forcecopy')
 
-  if not IMAGE_TYPES:
+  if env.ART_TEST_RUN_TEST_IMAGE:
     IMAGE_TYPES.add('picimage')
-    if env.ART_TEST_RUN_TEST_NO_IMAGE:
-      IMAGE_TYPES.add('no-image')
-    if env.ART_TEST_RUN_TEST_MULTI_IMAGE:
-      IMAGE_TYPES.add('multipicimage')
-    if env.ART_TEST_NPIC_IMAGE:
-      IMAGE_TYPES.add('npicimage')
-    if env.ART_TEST_RUN_TEST_MULTI_IMAGE:
-      IMAGE_TYPES.add('multinpicimage')
+  if env.ART_TEST_RUN_TEST_NO_IMAGE:
+    IMAGE_TYPES.add('no-image')
+  if env.ART_TEST_RUN_TEST_MULTI_IMAGE:
+    IMAGE_TYPES.add('multipicimage')
+  if env.ART_TEST_NPIC_IMAGE:
+    IMAGE_TYPES.add('npicimage')
+  if env.ART_TEST_RUN_TEST_MULTI_IMAGE:
+    IMAGE_TYPES.add('multinpicimage')
 
   if not PICTEST_TYPES:
     PICTEST_TYPES.add('npictest')
-    if env.ART_TEST_PIC_TEST:
-      PICTEST_TYPES.add('pictest')
+  if env.ART_TEST_PIC_TEST:
+    PICTEST_TYPES.add('pictest')
 
-  if not RUN_TYPES:
-    if env.ART_TEST_RUN_TEST_DEBUG:
-      RUN_TYPES.add('debug')
-    if env.ART_TEST_RUN_TEST_NDEBUG:
-      RUN_TYPES.add('ndebug')
+  if env.ART_TEST_RUN_TEST_DEBUG:
+    RUN_TYPES.add('debug')
+  if env.ART_TEST_RUN_TEST_NDEBUG:
+    RUN_TYPES.add('ndebug')
 
   if not DEBUGGABLE_TYPES:
     DEBUGGABLE_TYPES.add('ndebuggable')
 
-    if env.ART_TEST_RUN_TEST_DEBUGGABLE:
-      DEBUGGABLE_TYPES.add('debuggable')
+  if env.ART_TEST_RUN_TEST_DEBUGGABLE:
+    DEBUGGABLE_TYPES.add('debuggable')
 
   if not ADDRESS_SIZES:
     ADDRESS_SIZES_TARGET['target'].add(env.ART_PHONY_TEST_TARGET_SUFFIX)
@@ -584,11 +581,9 @@
     variant_list.add(frozenset(variant))
   return variant_list
 
-
 def print_text(output):
-    sys.stdout.write(output)
-    sys.stdout.flush()
-
+  sys.stdout.write(output)
+  sys.stdout.flush()
 
 def print_analysis():
   if not verbose:
