Sfoglia il codice sorgente

Unify lit.cfg.py approach (#2249)

On #2224 @zygoloid pointed out we needed --implicit-check-not to ensure we were correctly matching output. This is the standard way we're writing explorer tests, so I was looking at unifying our lit approaches.

This is one take on it, making more use of substitutions to bring various testing into alignment, as well as symlinks to avoid config skew (maybe I'll eventually figure out a better solution than symlinks).

Makes a couple small fixes in explorer to remove end-of-line whitespace on output.
Jon Ross-Perkins 3 anni fa
parent
commit
b9d3d9a3df
100 ha cambiato i file con 374 aggiunte e 513 eliminazioni
  1. 56 0
      bazel/testing/lit.cfg.py
  2. 3 5
      explorer/README.md
  3. 1 1
      explorer/interpreter/type_checker.cpp
  4. 3 5
      explorer/testdata/addr/fail_method_let.carbon
  5. 3 5
      explorer/testdata/addr/fail_method_me_misspelled.carbon
  6. 3 5
      explorer/testdata/addr/fail_method_me_type.carbon
  7. 3 5
      explorer/testdata/addr/method.carbon
  8. 3 5
      explorer/testdata/addr/nested_method.carbon
  9. 6 8
      explorer/testdata/alias/class_alias.carbon
  10. 3 5
      explorer/testdata/alias/fail_alias_expression.carbon
  11. 3 5
      explorer/testdata/alias/fail_alias_var.carbon
  12. 3 5
      explorer/testdata/alias/fail_self_alias.carbon
  13. 3 5
      explorer/testdata/alias/function_alias.carbon
  14. 3 5
      explorer/testdata/alias/interface_alias.carbon
  15. 3 5
      explorer/testdata/alias/member_name_alias.carbon
  16. 7 9
      explorer/testdata/alias/struct_alias.carbon
  17. 3 5
      explorer/testdata/alias/type_alias.carbon
  18. 3 5
      explorer/testdata/array/fail_index.carbon
  19. 3 5
      explorer/testdata/array/fail_negative_size.carbon
  20. 3 5
      explorer/testdata/array/fail_size_mismatch.carbon
  21. 3 5
      explorer/testdata/array/index.carbon
  22. 3 5
      explorer/testdata/array/nested.carbon
  23. 3 5
      explorer/testdata/as/as_same_type.carbon
  24. 3 5
      explorer/testdata/as/convert.carbon
  25. 3 5
      explorer/testdata/as/fail_destination_not_type.carbon
  26. 4 6
      explorer/testdata/as/fail_no_conversion.carbon
  27. 3 5
      explorer/testdata/as/implicit_as.carbon
  28. 3 5
      explorer/testdata/assert/assert.carbon
  29. 3 5
      explorer/testdata/assign/convert_rhs.carbon
  30. 3 5
      explorer/testdata/assign/destruct_original.carbon
  31. 3 5
      explorer/testdata/assign/reassign_original.carbon
  32. 3 5
      explorer/testdata/assoc_const/fail_anonymous.carbon
  33. 3 5
      explorer/testdata/assoc_const/fail_incomplete_impl_1.carbon
  34. 3 5
      explorer/testdata/assoc_const/fail_incomplete_impl_2.carbon
  35. 3 5
      explorer/testdata/assoc_const/fail_indirectly_equal.carbon
  36. 3 5
      explorer/testdata/assoc_const/fail_match_in_deduction.carbon
  37. 3 5
      explorer/testdata/assoc_const/fail_multi_impl_scoping.carbon
  38. 5 7
      explorer/testdata/assoc_const/fail_multiple_deduction.carbon
  39. 3 5
      explorer/testdata/assoc_const/fail_overspecified_impl.carbon
  40. 3 5
      explorer/testdata/assoc_const/fail_redefined.carbon
  41. 3 5
      explorer/testdata/assoc_const/fail_unknown_value.carbon
  42. 3 5
      explorer/testdata/assoc_const/fail_unknown_value_specified_in_constraint.carbon
  43. 3 5
      explorer/testdata/assoc_const/impl_lookup.carbon
  44. 3 5
      explorer/testdata/assoc_const/implement.carbon
  45. 3 5
      explorer/testdata/assoc_const/simple_constraint.carbon
  46. 3 5
      explorer/testdata/assoc_const/simple_equality.carbon
  47. 3 5
      explorer/testdata/basic_syntax/addition.carbon
  48. 3 5
      explorer/testdata/basic_syntax/choice.carbon
  49. 3 5
      explorer/testdata/basic_syntax/fail_alternative_not_type.carbon
  50. 3 5
      explorer/testdata/basic_syntax/fail_alternative_uses_choice.carbon
  51. 3 5
      explorer/testdata/basic_syntax/fail_assign_to_function.carbon
  52. 3 5
      explorer/testdata/basic_syntax/fail_assign_to_rval.carbon
  53. 3 5
      explorer/testdata/basic_syntax/fail_block.carbon
  54. 5 7
      explorer/testdata/basic_syntax/fail_choice_no_parens.carbon
  55. 3 5
      explorer/testdata/basic_syntax/fail_invalid_char.carbon
  56. 3 5
      explorer/testdata/basic_syntax/fail_invalid_integer.carbon
  57. 3 5
      explorer/testdata/basic_syntax/fail_invalid_integer_type.carbon
  58. 3 5
      explorer/testdata/basic_syntax/fail_invalid_var_expression.carbon
  59. 3 5
      explorer/testdata/basic_syntax/fail_missing_var.carbon
  60. 3 5
      explorer/testdata/basic_syntax/fail_nested_binding.carbon
  61. 3 5
      explorer/testdata/basic_syntax/fail_unimplemented_example.carbon
  62. 3 5
      explorer/testdata/basic_syntax/fail_unknown_intrinsic.carbon
  63. 3 5
      explorer/testdata/basic_syntax/fail_unsupported_integer_type.carbon
  64. 3 5
      explorer/testdata/basic_syntax/fail_var_named_self.carbon
  65. 3 5
      explorer/testdata/basic_syntax/fail_var_type.carbon
  66. 3 5
      explorer/testdata/basic_syntax/next.carbon
  67. 3 5
      explorer/testdata/basic_syntax/not_compare_precedence.carbon
  68. 3 5
      explorer/testdata/basic_syntax/placeholder_variable.carbon
  69. 3 5
      explorer/testdata/basic_syntax/record.carbon
  70. 3 5
      explorer/testdata/basic_syntax/star.carbon
  71. 13 14
      explorer/testdata/basic_syntax/trace.carbon
  72. 3 5
      explorer/testdata/basic_syntax/var_tuple.carbon
  73. 3 5
      explorer/testdata/basic_syntax/zero.carbon
  74. 3 5
      explorer/testdata/block/empty.carbon
  75. 3 5
      explorer/testdata/block/shadowing.carbon
  76. 3 5
      explorer/testdata/choice/generic_choice_multiple_template_arguments.carbon
  77. 4 6
      explorer/testdata/choice/generic_choice_nested_in_template_class.carbon
  78. 3 5
      explorer/testdata/choice/generic_choice_simple_assignment.carbon
  79. 3 5
      explorer/testdata/class/assign.carbon
  80. 3 5
      explorer/testdata/class/assign_member.carbon
  81. 3 5
      explorer/testdata/class/bound_method.carbon
  82. 3 5
      explorer/testdata/class/class_function.carbon
  83. 3 5
      explorer/testdata/class/class_function_from_instance.carbon
  84. 3 5
      explorer/testdata/class/class_function_self.carbon
  85. 3 5
      explorer/testdata/class/class_function_value.carbon
  86. 3 5
      explorer/testdata/class/empty_class.carbon
  87. 3 5
      explorer/testdata/class/fail_abstract_class.carbon
  88. 3 5
      explorer/testdata/class/fail_base_class.carbon
  89. 3 5
      explorer/testdata/class/fail_class_extends.carbon
  90. 3 5
      explorer/testdata/class/fail_class_named_self.carbon
  91. 3 5
      explorer/testdata/class/fail_field_access_mismatch.carbon
  92. 3 5
      explorer/testdata/class/fail_field_mismatch.carbon
  93. 3 5
      explorer/testdata/class/fail_field_missing.carbon
  94. 3 5
      explorer/testdata/class/fail_method_deduced.carbon
  95. 3 5
      explorer/testdata/class/fail_method_from_class.carbon
  96. 3 5
      explorer/testdata/class/fail_method_in_var.carbon
  97. 3 5
      explorer/testdata/class/fail_return_method.carbon
  98. 3 5
      explorer/testdata/class/function_param.carbon
  99. 3 5
      explorer/testdata/class/global_var.carbon
  100. 3 5
      explorer/testdata/class/method.carbon

+ 56 - 0
bazel/testing/lit.cfg.py

@@ -0,0 +1,56 @@
+__copyright__ = """
+Part of the Carbon Language project, under the Apache License v2.0 with LLVM
+Exceptions. See /LICENSE for license information.
+SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+"""
+
+import lit.formats
+import os
+
+
+# This is a provided variable, ignore the undefined name warning.
+config = config  # noqa: F821
+
+
+def fullpath(relative_path):
+    return os.path.join(os.environ["TEST_SRCDIR"], relative_path)
+
+
+config.name = "lit"
+config.suffixes = [".carbon"]
+config.test_format = lit.formats.ShTest()
+
+config.substitutions.append(
+    (
+        "%{carbon}",
+        fullpath("carbon/toolchain/driver/carbon"),
+    )
+)
+_EXPLORER = "%s --prelude=%s" % (
+    fullpath("carbon/explorer/explorer"),
+    fullpath("carbon/explorer/data/prelude.carbon"),
+)
+config.substitutions.append(("%{explorer}", _EXPLORER))
+config.substitutions.append(
+    ("%{explorer-trace}", _EXPLORER + " --parser_debug --trace_file=-")
+)
+
+config.substitutions.append(("%{not}", fullpath("llvm-project/llvm/not")))
+
+_FILE_CHECK = "%s --dump-input-filter=all" % fullpath(
+    "llvm-project/llvm/FileCheck"
+)
+config.substitutions.append(("%{FileCheck}", _FILE_CHECK))
+config.substitutions.append(
+    (
+        "%{FileCheck-allow-unmatched}",
+        _FILE_CHECK + " --match-full-lines --strict-whitespace",
+    )
+)
+config.substitutions.append(
+    (
+        "%{FileCheck-strict}",
+        _FILE_CHECK
+        + " --implicit-check-not={{.}} --match-full-lines --strict-whitespace",
+    )
+)

+ 3 - 5
explorer/README.md

@@ -72,12 +72,10 @@ boilerplate at the top:
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 ```
 ```

+ 1 - 1
explorer/interpreter/type_checker.cpp

@@ -4334,7 +4334,7 @@ auto TypeChecker::CollectMember(Nonnull<const Declaration*> enclosing_decl,
              << enclosing_decl_name
              << enclosing_decl_name
              << " because it clashes with an existing member"
              << " because it clashes with an existing member"
              << " with the same name (declared at " << it->second->source_loc()
              << " with the same name (declared at " << it->second->source_loc()
-             << ") ";
+             << ")";
     }
     }
   }
   }
   return Success();
   return Success();

+ 3 - 5
explorer/testdata/addr/fail_method_let.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -28,7 +26,7 @@ class Point {
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   let p: Point = Point.Origin();
   let p: Point = Point.Origin();
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/addr/fail_method_let.carbon:[[@LINE+1]]: method GetSetX requires its receiver to be an lvalue
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/addr/fail_method_let.carbon:[[@LINE+1]]: method GetSetX requires its receiver to be an lvalue
   var x: auto = p.GetSetX(42);
   var x: auto = p.GetSetX(42);
   if (p.x == 42) {
   if (p.x == 42) {
     return x;
     return x;

+ 3 - 5
explorer/testdata/addr/fail_method_me_misspelled.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 class C {
 class C {
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/addr/fail_method_me_misspelled.carbon:[[@LINE+1]]: illegal binding pattern in implicit parameter list
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/addr/fail_method_me_misspelled.carbon:[[@LINE+1]]: illegal binding pattern in implicit parameter list
   fn F[addr mew: Self*]() {}
   fn F[addr mew: Self*]() {}
 }
 }
 
 

+ 3 - 5
explorer/testdata/addr/fail_method_me_type.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -32,7 +30,7 @@ class Point {
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   var p: Point = Point.Origin();
   var p: Point = Point.Origin();
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/addr/fail_method_me_type.carbon:[[@LINE+1]]: type error in method access, receiver type: 'class Point' is not implicitly convertible to 'class Shape'
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/addr/fail_method_me_type.carbon:[[@LINE+1]]: type error in method access, receiver type: 'class Point' is not implicitly convertible to 'class Shape'
   var x: auto = p.GetSetX(42);
   var x: auto = p.GetSetX(42);
   if (p.x == 42) {
   if (p.x == 42) {
     return x;
     return x;

+ 3 - 5
explorer/testdata/addr/method.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/addr/nested_method.carbon

@@ -3,12 +3,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 6 - 8
explorer/testdata/alias/class_alias.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: b.n: 1
-// CHECK: d.Get(0): 2
-// CHECK: e.Get(1): 3
-// CHECK: result: 0
+// CHECK:b.n: 1
+// CHECK:d.Get(0): 2
+// CHECK:e.Get(1): 3
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/alias/fail_alias_expression.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/alias/fail_alias_expression.carbon:[[@LINE+1]]: invalid target for alias declaration
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/alias/fail_alias_expression.carbon:[[@LINE+1]]: invalid target for alias declaration
 alias A = 5;
 alias A = 5;
 
 
 fn Main() -> i32 { return 0; }
 fn Main() -> i32 { return 0; }

+ 3 - 5
explorer/testdata/alias/fail_alias_var.carbon

@@ -2,17 +2,15 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 var v: i32;
 var v: i32;
 // TODO: This should probably be valid if we allow global variables at all.
 // TODO: This should probably be valid if we allow global variables at all.
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/alias/fail_alias_var.carbon:[[@LINE+1]]: invalid target for alias declaration
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/alias/fail_alias_var.carbon:[[@LINE+1]]: invalid target for alias declaration
 alias A = v;
 alias A = v;
 
 
 fn Main() -> i32 { return 0; }
 fn Main() -> i32 { return 0; }

+ 3 - 5
explorer/testdata/alias/fail_self_alias.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/alias/fail_self_alias.carbon:[[@LINE+1]]: 'a' is not usable until after it has been completely declared
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/alias/fail_self_alias.carbon:[[@LINE+1]]: 'a' is not usable until after it has been completely declared
 alias a = a;
 alias a = a;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {

+ 3 - 5
explorer/testdata/alias/function_alias.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 7
+// CHECK:result: 7
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/alias/interface_alias.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 12345
+// CHECK:result: 12345
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/alias/member_name_alias.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 7 - 9
explorer/testdata/alias/struct_alias.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: ab.a: 2
-// CHECK: ab.b: 1
-// CHECK: ba.a: 2
-// CHECK: ba.b: 1
-// CHECK: result: 0
+// CHECK:ab.a: 2
+// CHECK:ab.b: 1
+// CHECK:ba.a: 2
+// CHECK:ba.b: 1
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/alias/type_alias.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 4
+// CHECK:result: 4
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/array/fail_index.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   var x: [i32; 2] = (0, 1);
   var x: [i32; 2] = (0, 1);
-  // CHECK: RUNTIME ERROR: {{.*}}/explorer/testdata/array/fail_index.carbon:[[@LINE+1]]: index 2 out of range in (0, 1)
+  // CHECK:RUNTIME ERROR: {{.*}}/explorer/testdata/array/fail_index.carbon:[[@LINE+1]]: index 2 out of range in (0, 1)
   return x[2];
   return x[2];
 }
 }

+ 3 - 5
explorer/testdata/array/fail_negative_size.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/array/fail_negative_size.carbon:[[@LINE+1]]: Array size cannot be negative
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/array/fail_negative_size.carbon:[[@LINE+1]]: Array size cannot be negative
   var x: [i32; -1] = ();
   var x: [i32; -1] = ();
   return x[0];
   return x[0];
 }
 }

+ 3 - 5
explorer/testdata/array/fail_size_mismatch.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/array/fail_size_mismatch.carbon:[[@LINE+1]]: type error in name binding: '(i32, i32, i32)' is not implicitly convertible to '[i32; 2]'
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/array/fail_size_mismatch.carbon:[[@LINE+1]]: type error in name binding: '(i32, i32, i32)' is not implicitly convertible to '[i32; 2]'
   var x: [i32; 2] = (0, 1, 2);
   var x: [i32; 2] = (0, 1, 2);
   return x[0];
   return x[0];
 }
 }

+ 3 - 5
explorer/testdata/array/index.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/array/nested.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/as/as_same_type.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 5
+// CHECK:result: 5
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/as/convert.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 5
+// CHECK:result: 5
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/as/fail_destination_not_type.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/as/fail_destination_not_type.carbon:[[@LINE+1]]: Expected a type, but got 7
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/as/fail_destination_not_type.carbon:[[@LINE+1]]: Expected a type, but got 7
   return 4 as 7;
   return 4 as 7;
 }
 }

+ 4 - 6
explorer/testdata/as/fail_no_conversion.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -14,7 +12,7 @@ class A { var n: i32; }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   var a: A = {.n = 5};
   var a: A = {.n = 5};
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/as/fail_no_conversion.carbon:[[@LINE+2]]: type error in `as`: `class A` is not explicitly convertible to `i32`:
-  // CHECK: could not find implementation of interface As(T = i32) for class A
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/as/fail_no_conversion.carbon:[[@LINE+2]]: type error in `as`: `class A` is not explicitly convertible to `i32`:
+  // CHECK:could not find implementation of interface As(T = i32) for class A
   return a as i32;
   return a as i32;
 }
 }

+ 3 - 5
explorer/testdata/as/implicit_as.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 5
+// CHECK:result: 5
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/assert/assert.carbon

@@ -5,12 +5,10 @@
 // This won't auto-update because it uses a regex for the prelude line number,
 // This won't auto-update because it uses a regex for the prelude line number,
 // so that it doesn't need to be updated on every prelude change.
 // so that it doesn't need to be updated on every prelude change.
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // NOAUTOUPDATE
 // NOAUTOUPDATE
-// CHECK: RUNTIME ERROR: {{.*}}/explorer/data/prelude.carbon:{{.*}}: "HALLO WELT"
+// CHECK:RUNTIME ERROR: {{.*}}/explorer/data/prelude.carbon:{{.*}}: "HALLO WELT"
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/assign/convert_rhs.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 1
+// CHECK:result: 1
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/assign/destruct_original.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/assign/reassign_original.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/assoc_const/fail_anonymous.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 interface Iface {
 interface Iface {
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/assoc_const/fail_anonymous.carbon:[[@LINE+1]]: syntax error, unexpected UNDERSCORE, expecting identifier
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/assoc_const/fail_anonymous.carbon:[[@LINE+1]]: syntax error, unexpected UNDERSCORE, expecting identifier
   let _:! Type;
   let _:! Type;
 }
 }
 
 

+ 3 - 5
explorer/testdata/assoc_const/fail_incomplete_impl_1.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -16,7 +14,7 @@ interface HasThreeTypes {
   let C:! Type;
   let C:! Type;
 }
 }
 
 
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_incomplete_impl_1.carbon:[[@LINE+1]]: implementation missing (.Self:! HasThreeTypes).B
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_incomplete_impl_1.carbon:[[@LINE+1]]: implementation missing (.Self:! HasThreeTypes).B
 external impl i32 as HasThreeTypes where .A == i32 and .C == i32 {}
 external impl i32 as HasThreeTypes where .A == i32 and .C == i32 {}
 
 
 fn Main() -> i32 { return 0; }
 fn Main() -> i32 { return 0; }

+ 3 - 5
explorer/testdata/assoc_const/fail_incomplete_impl_2.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -16,7 +14,7 @@ interface HasThreeTypes {
   let C:! Type;
   let C:! Type;
 }
 }
 
 
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_incomplete_impl_2.carbon:[[@LINE+1]]: implementation doesn't provide a concrete value for (.Self:! HasThreeTypes).B
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_incomplete_impl_2.carbon:[[@LINE+1]]: implementation doesn't provide a concrete value for (.Self:! HasThreeTypes).B
 external impl i32 as HasThreeTypes where .A == i32 and .B == .C {}
 external impl i32 as HasThreeTypes where .A == i32 and .B == .C {}
 
 
 fn Main() -> i32 { return 0; }
 fn Main() -> i32 { return 0; }

+ 3 - 5
explorer/testdata/assoc_const/fail_indirectly_equal.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -25,7 +23,7 @@ fn F2[U:! A where .T == i32](x: i32) -> U.T {
 }
 }
 
 
 fn F3[T:! A where .T == i32, U:! A where .T == i32](x: T.T) -> U.T {
 fn F3[T:! A where .T == i32, U:! A where .T == i32](x: T.T) -> U.T {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_indirectly_equal.carbon:[[@LINE+1]]: type error in return value: '(T:! A where .Self.T == i32).T' is not implicitly convertible to '(U:! A where .Self.T == i32).T'
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_indirectly_equal.carbon:[[@LINE+1]]: type error in return value: '(T:! A where .Self.T == i32).T' is not implicitly convertible to '(U:! A where .Self.T == i32).T'
   return x;
   return x;
 }
 }
 
 

+ 3 - 5
explorer/testdata/assoc_const/fail_match_in_deduction.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 // TODO: Should this work?
 // TODO: Should this work?
@@ -24,7 +22,7 @@ fn F[Scalar:! Type, V:! Vector where .Dim == 3](p: Point(Scalar, V.Dim), v: V) {
 fn G[Scalar:! Type](p: Point(Scalar, 3)) {}
 fn G[Scalar:! Type](p: Point(Scalar, 3)) {}
 fn H[V:! Vector where .Dim == 3](v: V) {
 fn H[V:! Vector where .Dim == 3](v: V) {
   var p: Point(i32, V.Dim) = {};
   var p: Point(i32, V.Dim) = {};
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_match_in_deduction.carbon:[[@LINE+1]]: mismatch in non-type values, `(V:! Vector where .Self.Dim == 3).Dim` != `3`
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_match_in_deduction.carbon:[[@LINE+1]]: mismatch in non-type values, `(V:! Vector where .Self.Dim == 3).Dim` != `3`
   G(p);
   G(p);
 }
 }
 
 

+ 3 - 5
explorer/testdata/assoc_const/fail_multi_impl_scoping.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -40,7 +38,7 @@ class C(T:! Type) {
 
 
 external impl C(i32) as B where .TB == () {
 external impl C(i32) as B where .TB == () {
   fn FB() -> () { return (); }
   fn FB() -> () { return (); }
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_multi_impl_scoping.carbon:[[@LINE+1]]: ambiguous implementations of interface B for class C(T = i32)
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_multi_impl_scoping.carbon:[[@LINE+1]]: ambiguous implementations of interface B for class C(T = i32)
 }
 }
 
 
 fn Main() -> i32 { return C(i32).FB(); }
 fn Main() -> i32 { return C(i32).FB(); }

+ 5 - 7
explorer/testdata/assoc_const/fail_multiple_deduction.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -18,9 +16,9 @@ interface HasThreeTypes {
 }
 }
 fn F[T:! Type](x: (T, T, T));
 fn F[T:! Type](x: (T, T, T));
 fn G[X:! HasThreeTypes where .A == .B and .B == .C and .C == .A](x: X) {
 fn G[X:! HasThreeTypes where .A == .B and .B == .C and .C == .A](x: X) {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_multiple_deduction.carbon:[[@LINE+3]]: deduced multiple different values for T:! Type:
-  // CHECK:   (X:! HasThreeTypes where .Self.A == .Self.B and .Self.B == .Self.C and .Self.C == .Self.A).A
-  // CHECK:   (X:! HasThreeTypes where .Self.A == .Self.B and .Self.B == .Self.C and .Self.C == .Self.A).B
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_multiple_deduction.carbon:[[@LINE+3]]: deduced multiple different values for T:! Type:
+  // CHECK:  (X:! HasThreeTypes where .Self.A == .Self.B and .Self.B == .Self.C and .Self.C == .Self.A).A
+  // CHECK:  (X:! HasThreeTypes where .Self.A == .Self.B and .Self.B == .Self.C and .Self.C == .Self.A).B
   F(x.Make());
   F(x.Make());
 }
 }
 
 

+ 3 - 5
explorer/testdata/assoc_const/fail_overspecified_impl.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -14,7 +12,7 @@ interface HasType {
   let T:! Type;
   let T:! Type;
 }
 }
 
 
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_overspecified_impl.carbon:[[@LINE+1]]: implementation provides multiple values for (.Self:! HasType).T: i32 and {.a: i32}
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_overspecified_impl.carbon:[[@LINE+1]]: implementation provides multiple values for (.Self:! HasType).T: i32 and {.a: i32}
 external impl i32 as HasType where .T == i32 and .T == {.a: i32} {}
 external impl i32 as HasType where .T == i32 and .T == {.a: i32} {}
 
 
 fn Main() -> i32 { return 0; }
 fn Main() -> i32 { return 0; }

+ 3 - 5
explorer/testdata/assoc_const/fail_redefined.carbon

@@ -2,17 +2,15 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 interface Iface {
 interface Iface {
   let T:! Type;
   let T:! Type;
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_redefined.carbon:[[@LINE+1]]: Duplicate name `T` also found at {{.*}}/explorer/testdata/assoc_const/fail_redefined.carbon:14
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_redefined.carbon:[[@LINE+1]]: Duplicate name `T` also found at {{.*}}/explorer/testdata/assoc_const/fail_redefined.carbon:12
   let T:! Type;
   let T:! Type;
 }
 }
 
 

+ 3 - 5
explorer/testdata/assoc_const/fail_unknown_value.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -15,7 +13,7 @@ interface Iface { let N:! i32; }
 fn PickType(N: i32) -> Type { return i32; }
 fn PickType(N: i32) -> Type { return i32; }
 
 
 fn F[T:! Iface](x: T) -> i32 {
 fn F[T:! Iface](x: T) -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_unknown_value.carbon:[[@LINE+1]]: value of associated constant (T:! Iface).N is not known
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_unknown_value.carbon:[[@LINE+1]]: value of associated constant (T:! Iface).N is not known
   var x: PickType(T.N) = 0;
   var x: PickType(T.N) = 0;
   return x;
   return x;
 }
 }

+ 3 - 5
explorer/testdata/assoc_const/fail_unknown_value_specified_in_constraint.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -16,7 +14,7 @@ fn PickType(N: i32) -> Type { return i32; }
 
 
 fn F[T:! Iface where .N == 5](x: T) -> i32 {
 fn F[T:! Iface where .N == 5](x: T) -> i32 {
   // TODO: This should be valid: the value of T.N is known to be 5 here.
   // TODO: This should be valid: the value of T.N is known to be 5 here.
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_unknown_value_specified_in_constraint.carbon:[[@LINE+1]]: value of associated constant (T:! Iface where .Self.N == 5).N is not known
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/assoc_const/fail_unknown_value_specified_in_constraint.carbon:[[@LINE+1]]: value of associated constant (T:! Iface where .Self.N == 5).N is not known
   var x: PickType(T.N) = 0;
   var x: PickType(T.N) = 0;
   return x;
   return x;
 }
 }

+ 3 - 5
explorer/testdata/assoc_const/impl_lookup.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 1
+// CHECK:result: 1
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/assoc_const/implement.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 2
+// CHECK:result: 2
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/assoc_const/simple_constraint.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 3
+// CHECK:result: 3
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/assoc_const/simple_equality.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/basic_syntax/addition.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 7
+// CHECK:result: 7
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/basic_syntax/choice.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/basic_syntax/fail_alternative_not_type.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_alternative_not_type.carbon:[[@LINE+1]]: Expected a type, but got (42)
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_alternative_not_type.carbon:[[@LINE+1]]: Expected a type, but got (42)
 choice C { X(42) }
 choice C { X(42) }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {

+ 3 - 5
explorer/testdata/basic_syntax/fail_alternative_uses_choice.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 choice Ch {
 choice Ch {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_alternative_uses_choice.carbon:[[@LINE+1]]: 'Ch' is not usable until after it has been completely declared
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_alternative_uses_choice.carbon:[[@LINE+1]]: 'Ch' is not usable until after it has been completely declared
   Opt(Ch)
   Opt(Ch)
 }
 }
 
 

+ 3 - 5
explorer/testdata/basic_syntax/fail_assign_to_function.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -14,7 +12,7 @@ fn F() {}
 fn G() {}
 fn G() {}
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_assign_to_function.carbon:[[@LINE+1]]: Cannot assign to rvalue 'F'
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_assign_to_function.carbon:[[@LINE+1]]: Cannot assign to rvalue 'F'
   F = G;
   F = G;
   return 0;
   return 0;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_assign_to_rval.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_assign_to_rval.carbon:[[@LINE+1]]: Cannot assign to rvalue '1'
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_assign_to_rval.carbon:[[@LINE+1]]: Cannot assign to rvalue '1'
   1 = 0;
   1 = 0;
   return 0;
   return 0;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_block.carbon

@@ -2,17 +2,15 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   {
   {
-    // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_block.carbon:[[@LINE+1]]: syntax error, unexpected RETURN, expecting PERIOD or RIGHT_CURLY_BRACE
+    // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_block.carbon:[[@LINE+1]]: syntax error, unexpected RETURN, expecting PERIOD or RIGHT_CURLY_BRACE
     return 0;
     return 0;
   }
   }
 }
 }

+ 5 - 7
explorer/testdata/basic_syntax/fail_choice_no_parens.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -19,9 +17,9 @@ choice Ints {
 fn Main() -> i32 {
 fn Main() -> i32 {
   match (Ints.None()) {
   match (Ints.None()) {
     case Ints.None => { return 0; }
     case Ints.None => { return 0; }
-    // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_choice_no_parens.carbon:[[@LINE+3]]: type error in `match` pattern type
-    // CHECK: expected: fn () -> choice Ints
-    // CHECK: actual: choice Ints
+    // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_choice_no_parens.carbon:[[@LINE+3]]: type error in `match` pattern type
+    // CHECK:expected: fn () -> choice Ints
+    // CHECK:actual: choice Ints
     default => { return 1; }
     default => { return 1; }
   }
   }
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_invalid_char.carbon

@@ -2,11 +2,9 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
-// CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_invalid_char.carbon:[[@LINE+1]]: invalid character '\xEF' in source file.
+// CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_invalid_char.carbon:[[@LINE+1]]: invalid character '\xEF' in source file.

+ 3 - 5
explorer/testdata/basic_syntax/fail_invalid_integer.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_invalid_integer.carbon:[[@LINE+1]]: Invalid integer literal: 11111111111111111111111111
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_invalid_integer.carbon:[[@LINE+1]]: Invalid integer literal: 11111111111111111111111111
   return 11111111111111111111111111;
   return 11111111111111111111111111;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_invalid_integer_type.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_invalid_integer_type.carbon:[[@LINE+1]]: Invalid type literal: i11111111111111111111111111
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_invalid_integer_type.carbon:[[@LINE+1]]: Invalid type literal: i11111111111111111111111111
   var x: i11111111111111111111111111 = 1;
   var x: i11111111111111111111111111 = 1;
   return 0;
   return 0;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_invalid_var_expression.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_invalid_var_expression.carbon:[[@LINE+1]]: Expected expression for variable type
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_invalid_var_expression.carbon:[[@LINE+1]]: Expected expression for variable type
 var a: auto;
 var a: auto;
 
 
 fn Main() -> i32 { return 0; }
 fn Main() -> i32 { return 0; }

+ 3 - 5
explorer/testdata/basic_syntax/fail_missing_var.carbon

@@ -2,17 +2,15 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   // error
   // error
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_missing_var.carbon:[[@LINE+1]]: syntax error, unexpected COLON, expecting SLASH or binary *
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_missing_var.carbon:[[@LINE+1]]: syntax error, unexpected COLON, expecting SLASH or binary *
   x : i32;
   x : i32;
   return 1;
   return 1;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_nested_binding.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_nested_binding.carbon:[[@LINE+1]]: The type of a binding pattern cannot contain bindings.
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_nested_binding.carbon:[[@LINE+1]]: The type of a binding pattern cannot contain bindings.
   var x: (T: Type) = 1;
   var x: (T: Type) = 1;
   return 1;
   return 1;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_unimplemented_example.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_unimplemented_example.carbon:[[@LINE+1]]: Unimplemented
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_unimplemented_example.carbon:[[@LINE+1]]: Unimplemented
   return 1 __unimplemented_example_infix 2;
   return 1 __unimplemented_example_infix 2;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_unknown_intrinsic.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_unknown_intrinsic.carbon:[[@LINE+1]]: Unknown intrinsic 'nonexistent'
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_unknown_intrinsic.carbon:[[@LINE+1]]: Unknown intrinsic 'nonexistent'
   return __intrinsic_nonexistent();
   return __intrinsic_nonexistent();
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_unsupported_integer_type.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_unsupported_integer_type.carbon:[[@LINE+1]]: Only i32 is supported for now: i64
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_unsupported_integer_type.carbon:[[@LINE+1]]: Only i32 is supported for now: i64
   var x: i64 = 1;
   var x: i64 = 1;
   return 0;
   return 0;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_var_named_self.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -14,7 +12,7 @@ fn Main() -> i32 {
   // Error: can't use keyword `Self` as the name of a variable.
   // Error: can't use keyword `Self` as the name of a variable.
   // TODO: Current error message is unclear, better would be to say
   // TODO: Current error message is unclear, better would be to say
   // something like: unexpected `Self`, expecting identifier
   // something like: unexpected `Self`, expecting identifier
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_var_named_self.carbon:[[@LINE+1]]: syntax error, unexpected COLON, expecting SLASH or binary *
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_var_named_self.carbon:[[@LINE+1]]: syntax error, unexpected COLON, expecting SLASH or binary *
   var Self : i32 = 0;
   var Self : i32 = 0;
   return Self;
   return Self;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/fail_var_type.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -13,7 +11,7 @@ package ExplorerTest api;
 fn Main () -> i32
 fn Main () -> i32
 {
 {
   // 42 cannot be used as the type of a variable.
   // 42 cannot be used as the type of a variable.
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_var_type.carbon:[[@LINE+1]]: Expected a type, but got 42
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/basic_syntax/fail_var_type.carbon:[[@LINE+1]]: Expected a type, but got 42
   var x: 42 = 0;
   var x: 42 = 0;
   return x;
   return x;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/next.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/basic_syntax/not_compare_precedence.carbon

@@ -2,15 +2,13 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 fn CompareBools(a: bool, b: bool) -> bool {
 fn CompareBools(a: bool, b: bool) -> bool {
-  // CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/not_compare_precedence.carbon:[[@LINE+1]]: syntax error, unexpected EQUAL_EQUAL, expecting SEMICOLON
+  // CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/basic_syntax/not_compare_precedence.carbon:[[@LINE+1]]: syntax error, unexpected EQUAL_EQUAL, expecting SEMICOLON
   return not a == b;
   return not a == b;
 }
 }

+ 3 - 5
explorer/testdata/basic_syntax/placeholder_variable.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/basic_syntax/record.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/basic_syntax/star.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 13 - 14
explorer/testdata/basic_syntax/trace.carbon

@@ -2,25 +2,24 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 //
 //
 // A lot of output is elided: this is only checking for a few things for simple
 // A lot of output is elided: this is only checking for a few things for simple
 // sanity checking on --parser_debug --trace_file=- output.
 // sanity checking on --parser_debug --trace_file=- output.
 //
 //
 // NOAUTOUPDATE
 // NOAUTOUPDATE
-// CHECK: ********** source program **********
-// CHECK: interface ImplicitAs {
-// CHECK: ********** type checking **********
-// CHECK: ** declaring interface ImplicitAs
-// CHECK: ********** resolving unformed variables **********
-// CHECK: ********** printing declarations **********
-// CHECK: interface ImplicitAs {
-// CHECK: ********** starting execution **********
-// CHECK: ********** initializing globals **********
-// CHECK: ********** calling main function **********
-// CHECK: --- step exp Main() .0. (<Main()>:0) --->
-// CHECK: result: 0
+// CHECK:********** source program **********
+// CHECK:interface ImplicitAs {
+// CHECK:********** type checking **********
+// CHECK:** declaring interface ImplicitAs
+// CHECK:********** resolving unformed variables **********
+// CHECK:********** printing declarations **********
+// CHECK:interface ImplicitAs {
+// CHECK:********** starting execution **********
+// CHECK:********** initializing globals **********
+// CHECK:********** calling main function **********
+// CHECK:--- step exp Main() .0. (<Main()>:0) --->
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/basic_syntax/var_tuple.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/basic_syntax/zero.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/block/empty.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/block/shadowing.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/choice/generic_choice_multiple_template_arguments.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 22
+// CHECK:result: 22
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 4 - 6
explorer/testdata/choice/generic_choice_nested_in_template_class.carbon

@@ -2,13 +2,11 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: H 22
-// CHECK: result: 0
+// CHECK:H 22
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/choice/generic_choice_simple_assignment.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 22
+// CHECK:result: 22
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/assign.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/assign_member.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/bound_method.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/class_function.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/class_function_from_instance.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/class_function_self.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/class_function_value.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/empty_class.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/fail_abstract_class.carbon

@@ -2,17 +2,15 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 abstract class C {
 abstract class C {
   fn F() {}
   fn F() {}
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_abstract_class.carbon:[[@LINE+1]]: Class prefixes `base` and `abstract` are not supported yet
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_abstract_class.carbon:[[@LINE+1]]: Class prefixes `base` and `abstract` are not supported yet
 }
 }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {

+ 3 - 5
explorer/testdata/class/fail_base_class.carbon

@@ -2,17 +2,15 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 base class C {
 base class C {
   fn F() {}
   fn F() {}
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_base_class.carbon:[[@LINE+1]]: Class prefixes `base` and `abstract` are not supported yet
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_base_class.carbon:[[@LINE+1]]: Class prefixes `base` and `abstract` are not supported yet
 }
 }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {

+ 3 - 5
explorer/testdata/class/fail_class_extends.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -16,7 +14,7 @@ class A {
 
 
 class B extends A {
 class B extends A {
   fn F() {}
   fn F() {}
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_class_extends.carbon:[[@LINE+1]]: Class extension with `extends` is not supported yet
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_class_extends.carbon:[[@LINE+1]]: Class extension with `extends` is not supported yet
 }
 }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {

+ 3 - 5
explorer/testdata/class/fail_class_named_self.carbon

@@ -2,16 +2,14 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 
 // Error: Can't use keyword `Self` as the name of a class.
 // Error: Can't use keyword `Self` as the name of a class.
-// CHECK: SYNTAX ERROR: {{.*}}/explorer/testdata/class/fail_class_named_self.carbon:[[@LINE+1]]: syntax error, unexpected SELF, expecting identifier
+// CHECK:SYNTAX ERROR: {{.*}}/explorer/testdata/class/fail_class_named_self.carbon:[[@LINE+1]]: syntax error, unexpected SELF, expecting identifier
 class Self {
 class Self {
   var x: i32;
   var x: i32;
   var y: i32;
   var y: i32;

+ 3 - 5
explorer/testdata/class/fail_field_access_mismatch.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -17,6 +15,6 @@ class Point {
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   var p: Point = {.x = 1, .y = 2};
   var p: Point = {.x = 1, .y = 2};
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_field_access_mismatch.carbon:[[@LINE+1]]: class Point does not have a field named z
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_field_access_mismatch.carbon:[[@LINE+1]]: class Point does not have a field named z
   return p.z - 1;
   return p.z - 1;
 }
 }

+ 3 - 5
explorer/testdata/class/fail_field_mismatch.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -16,7 +14,7 @@ class Point {
 }
 }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_field_mismatch.carbon:[[@LINE+1]]: type error in name binding: '{.x: i32, .z: i32}' is not implicitly convertible to 'class Point'
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_field_mismatch.carbon:[[@LINE+1]]: type error in name binding: '{.x: i32, .z: i32}' is not implicitly convertible to 'class Point'
   var p: Point = {.x = 1, .z = 2};
   var p: Point = {.x = 1, .z = 2};
   return p.x - 1;
   return p.x - 1;
 }
 }

+ 3 - 5
explorer/testdata/class/fail_field_missing.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -16,7 +14,7 @@ class Point {
 }
 }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_field_missing.carbon:[[@LINE+1]]: type error in name binding: '{.x: i32}' is not implicitly convertible to 'class Point'
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_field_missing.carbon:[[@LINE+1]]: type error in name binding: '{.x: i32}' is not implicitly convertible to 'class Point'
   var p: Point = {.x = 1};
   var p: Point = {.x = 1};
   return p.x - 1;
   return p.x - 1;
 }
 }

+ 3 - 5
explorer/testdata/class/fail_method_deduced.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -19,7 +17,7 @@ fn H[T:! Type](x: T) {}
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   H(C.F);
   H(C.F);
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_method_deduced.carbon:[[@LINE+1]]: Expected a type, but got member name G
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_method_deduced.carbon:[[@LINE+1]]: Expected a type, but got member name G
   H(C.G);
   H(C.G);
   return 0;
   return 0;
 }
 }

+ 3 - 5
explorer/testdata/class/fail_method_from_class.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -24,6 +22,6 @@ class Point {
 }
 }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_method_from_class.carbon:[[@LINE+1]]: in call `Point.GetX()`, expected callee to be a function, found `member name GetX`
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_method_from_class.carbon:[[@LINE+1]]: in call `Point.GetX()`, expected callee to be a function, found `member name GetX`
   return Point.GetX();
   return Point.GetX();
 }
 }

+ 3 - 5
explorer/testdata/class/fail_method_in_var.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -17,7 +15,7 @@ class C {
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {
   var f: auto = C.F;
   var f: auto = C.F;
-  // CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_method_in_var.carbon:[[@LINE+1]]: Expected a type, but got member name G
+  // CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_method_in_var.carbon:[[@LINE+1]]: Expected a type, but got member name G
   var g: auto = C.G;
   var g: auto = C.G;
 
 
   return 0;
   return 0;

+ 3 - 5
explorer/testdata/class/fail_return_method.carbon

@@ -2,10 +2,8 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{not} %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{not} %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{not} %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{not} %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
 
 
 package ExplorerTest api;
 package ExplorerTest api;
@@ -16,7 +14,7 @@ class C {
 }
 }
 
 
 fn ReturnF() -> auto { return C.F; }
 fn ReturnF() -> auto { return C.F; }
-// CHECK: COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_return_method.carbon:[[@LINE+1]]: Expected a type, but got member name G
+// CHECK:COMPILATION ERROR: {{.*}}/explorer/testdata/class/fail_return_method.carbon:[[@LINE+1]]: Expected a type, but got member name G
 fn ReturnG() -> auto { return C.G; }
 fn ReturnG() -> auto { return C.G; }
 
 
 fn Main() -> i32 {
 fn Main() -> i32 {

+ 3 - 5
explorer/testdata/class/function_param.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/global_var.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

+ 3 - 5
explorer/testdata/class/method.carbon

@@ -2,12 +2,10 @@
 // Exceptions. See /LICENSE for license information.
 // Exceptions. See /LICENSE for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 //
 //
-// RUN: %{explorer} %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes=false %s
-// RUN: %{explorer} --parser_debug --trace_file=- %s 2>&1 | \
-// RUN:   %{FileCheck} --match-full-lines --allow-unused-prefixes %s
+// RUN: %{explorer} %s 2>&1 | %{FileCheck-strict} %s
+// RUN: %{explorer-trace} %s 2>&1 | %{FileCheck-allow-unmatched} %s
 // AUTOUPDATE: %{explorer} %s
 // AUTOUPDATE: %{explorer} %s
-// CHECK: result: 0
+// CHECK:result: 0
 
 
 package ExplorerTest api;
 package ExplorerTest api;
 
 

Some files were not shown because too many files changed in this diff