diff --git a/test/function-must-be-declared-before-use-fail.wgsl b/test/function-must-be-declared-before-use-fail.wgsl
deleted file mode 100644
index 91cfaef..0000000
--- a/test/function-must-be-declared-before-use-fail.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 The Tint Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-fn main() -> void {
-    var a:f32 = func1();
-    return;
-}
-
-fn func1() -> f32 {
-    var a:i32 = 2.1;
-    return a;
-}
diff --git a/test/switch-case-selector-must-have-the-same-type-as-the-selector-expression-2.fail.wgsl b/test/switch-case-selector-must-have-the-same-type-as-the-selector-expression-2.fail.wgsl
deleted file mode 100644
index aeb7c4b..0000000
--- a/test/switch-case-selector-must-have-the-same-type-as-the-selector-expression-2.fail.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-# v-switch03: line 7: the case selector values must have the same type as the selector expression
-
-[[stage(vertex)]]
-fn main() -> void {
-  var a: i32 = -2;
-  switch (a) {
-    case 2u:{}
-    default: {}
-  }
-  return;
-}
-
diff --git a/test/switch-case-selector-must-have-the-same-type-as-the-selector-expression.fail.wgsl b/test/switch-case-selector-must-have-the-same-type-as-the-selector-expression.fail.wgsl
deleted file mode 100644
index a1abbfd..0000000
--- a/test/switch-case-selector-must-have-the-same-type-as-the-selector-expression.fail.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-# v-switch03: line 7: the case selector values must have the same type as the selector expression
-
-[[stage(vertex)]]
-fn main() -> void {
-  var a: u32 = 2;
-  switch (a) {
-    case -1:{}
-    default: {}
-  }
-  return;
-}
-
diff --git a/test/switch-case-selector-value-must-be-unique.fail.wgsl b/test/switch-case-selector-value-must-be-unique.fail.wgsl
deleted file mode 100644
index a16e800..0000000
--- a/test/switch-case-selector-value-must-be-unique.fail.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-# v-switch04: line 9: a literal value must not appear more than once in the case selectors for a
-# switch statement: '0'
-
-[[stage(vertex)]]
-fn main() -> void {
-  var a: u32 = 2;
-  switch (a) {
-    case 10u: {}
-    case 10u: {}
-    case 10u: {}
-    default: {}
-  }
-  return;
-}
-
diff --git a/test/switch-fallthrough-must-not-be-last-stmt-of-last-clause.fail.wgsl b/test/switch-fallthrough-must-not-be-last-stmt-of-last-clause.fail.wgsl
deleted file mode 100644
index 0867b62..0000000
--- a/test/switch-fallthrough-must-not-be-last-stmt-of-last-clause.fail.wgsl
+++ /dev/null
@@ -1,13 +0,0 @@
-# v-switch05: line 9: a fallthrough statement must not appear as the last statement in last clause
-# of a switch
-
-[[stage(vertex)]]
-fn main() -> void {
-  var a: i32 = -2;
-  switch (a) {
-    default: {
-      fallthrough;
-    }
-  }
-  return;
-}
diff --git a/test/switch-must-have-exactly-one-default-clause-2.fail.wgsl b/test/switch-must-have-exactly-one-default-clause-2.fail.wgsl
deleted file mode 100644
index d6720be..0000000
--- a/test/switch-must-have-exactly-one-default-clause-2.fail.wgsl
+++ /dev/null
@@ -1,13 +0,0 @@
-# v-0008: line 6: switch statement must have exactly one default clause
-
-[[stage(vertex)]]
-fn main() -> void {
-  var a: i32 = 2;
-  switch (a) {
-    case 2: {}
-    default: {}
-    default: {}
-  }
-  return;
-}
-
diff --git a/test/switch-must-have-exactly-one-default-clause.fail.wgsl b/test/switch-must-have-exactly-one-default-clause.fail.wgsl
deleted file mode 100644
index 3d0adf2..0000000
--- a/test/switch-must-have-exactly-one-default-clause.fail.wgsl
+++ /dev/null
@@ -1,11 +0,0 @@
-# v-0008: line 6: switch statement must have exactly one default clause
-
-[[stage(vertex)]]
-fn main() -> void {
-  var a: i32 = 2;
-  switch (a) {
-    case 2: {}
-  }
-  return;
-}
-
diff --git a/test/switch-selector-expression-must-be-scalar-integer-type.fail.wgsl b/test/switch-selector-expression-must-be-scalar-integer-type.fail.wgsl
deleted file mode 100644
index 2fc35a2..0000000
--- a/test/switch-selector-expression-must-be-scalar-integer-type.fail.wgsl
+++ /dev/null
@@ -1,11 +0,0 @@
-# v-switch01: line 6: switch statement selector expression must be of a scalar integer type
-
-[[stage(vertex)]]
-fn main() -> void {
-  var a: f32 = 3.14;
-  switch (a) {
-    default: {}
-  }
-  return;
-}
-
diff --git a/test/undefined-variable-global-scope.wgsl b/test/undefined-variable-global-scope.wgsl
deleted file mode 100644
index 590ec9a..0000000
--- a/test/undefined-variable-global-scope.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 The Tint Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Vertex shader
-var<private> a : i32;
-
-[[stage(vertex)]]
-fn main() -> void {
-  a = 2;
-  return;
-}
-
diff --git a/test/undefined-variable-inner-block.wgsl b/test/undefined-variable-inner-block.wgsl
deleted file mode 100644
index 0e7f509..0000000
--- a/test/undefined-variable-inner-block.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 The Tint Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-[[stage(fragment)]]
-fn main() -> void {
-    var a : f32 = 2.0;
-   { a = 3.14;}
-    return;
-}
