diff --git a/tests/BUILD.gn b/tests/BUILD.gn
index 47f900a..a3b78cc 100644
--- a/tests/BUILD.gn
+++ b/tests/BUILD.gn
@@ -31,9 +31,7 @@
 
 config("validation_tests_include_config") {
   defines = [ "GTEST_HAS_PTHREAD=1" ]
-  cflags_cc = [
-    "-Wno-missing-field-initializers"
-  ]
+  cflags_cc = [ "-Wno-missing-field-initializers" ]
   include_dirs = [
     "../common",
     "../layers",
@@ -46,30 +44,28 @@
 
 source_set("validation_tests_common") {
   testonly = true
-  public_configs = [ ":validation_tests_include_config", ]
+  public_configs = [ ":validation_tests_include_config" ]
   defines = [ "VK_USE_PLATFORM_MAGMA_KHR" ]
   sources = [
     "../layers/vk_format_utils.cpp",
+    "gtest-1.7.0/src/gtest-all.cc",
+    "test_environment.cpp",
     "vkrenderframework.cpp",
     "vktestbinding.cpp",
     "vktestframework.cpp",
-    "test_environment.cpp",
-    "gtest-1.7.0/src/gtest-all.cc",
   ]
   public_deps = [
-    "//third_party/shaderc/third_party/glslang",
-    "//third_party/shaderc/third_party/glslang:SPVRemapper",
-    "//third_party/shaderc/third_party/glslang:SPIRV",
-    "../:vulkan",
     "../:extra_vulkan_headers",
+    "../:vulkan",
+    "//third_party/shaderc/third_party/glslang",
+    "//third_party/shaderc/third_party/glslang:SPIRV",
+    "//third_party/shaderc/third_party/glslang:SPVRemapper",
   ]
 }
 
 executable("loader_validation_tests") {
   testonly = true
-  cflags_cc = [
-    "-Wno-missing-field-initializers",
-  ]
+  cflags_cc = [ "-Wno-missing-field-initializers" ]
   sources = [
     "loader_validation_tests.cpp",
   ]
@@ -80,10 +76,11 @@
 
 executable("layer_validation_tests") {
   testonly = true
-  defines = [ "SKIP_TESTS_CRASHING_ON_MAGMA" ]
-  cflags_cc = [
-    "-Wno-missing-field-initializers",
+  defines = [
+    "SKIP_TESTS_CRASHING_ON_MAGMA",
+    "SKIP_TESTS_FAILING_ON_MAGMA",
   ]
+  cflags_cc = [ "-Wno-missing-field-initializers" ]
   sources = [
     "layer_validation_tests.cpp",
   ]
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index a56a4af..3054032 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -34,13 +34,13 @@
 
 #include "icd-spv.h"
 #include "test_common.h"
-#include "vk_layer_config.h"
 #include "vk_format_utils.h"
+#include "vk_layer_config.h"
 #include "vk_validation_error_messages.h"
 #include "vkrenderframework.h"
 
-#include <algorithm>
 #include <limits.h>
+#include <algorithm>
 #include <unordered_set>
 
 #define GLM_FORCE_RADIANS
@@ -10066,6 +10066,7 @@
     vkDestroyDescriptorPool(m_device->device(), ds_pool, NULL);
 }
 
+#ifndef SKIP_TESTS_CRASHING_ON_MAGMA
 TEST_F(VkLayerTest, DSBufferLimitErrors) {
     TEST_DESCRIPTION(
         "Attempt to update buffer descriptor set that has VkDescriptorBufferInfo values that violate device limits.\n"
@@ -10234,6 +10235,7 @@
     vkDestroyBuffer(m_device->device(), storage_buffer, NULL);
     vkDestroyDescriptorPool(m_device->device(), ds_pool, NULL);
 }
+#endif  // SKIP_TESTS_CRASHING_ON_MAGMA
 
 TEST_F(VkLayerTest, DSAspectBitsErrors) {
     // TODO : Initially only catching case where DEPTH & STENCIL aspect bits
@@ -10715,7 +10717,7 @@
     vkDestroyDescriptorSetLayout(m_device->device(), ds_layout, NULL);
     vkDestroyDescriptorPool(m_device->device(), ds_pool, NULL);
 }
-#endif // SKIP_TESTS_CRASHING_ON_MAGMA
+#endif  // SKIP_TESTS_CRASHING_ON_MAGMA
 
 TEST_F(VkLayerTest, InvalidDSUpdateStruct) {
     // Call UpdateDS w/ struct type other than valid VK_STRUCTUR_TYPE_UPDATE_*
@@ -12452,7 +12454,7 @@
 
     m_errorMonitor->SetUnexpectedError("All elements of pCommandBuffers must not be in the pending state");
 }
-#endif // SKIP_TESTS_CRASHING_ON_MAGMA
+#endif  // SKIP_TESTS_CRASHING_ON_MAGMA
 
 TEST_F(VkLayerTest, SimultaneousUseOneShot) {
     TEST_DESCRIPTION(
@@ -14209,6 +14211,7 @@
     vkDestroyPipelineLayout(test_device.device(), pipeline_layout, nullptr);
 }
 
+#ifndef SKIP_TESTS_FAILING_ON_MAGMA
 TEST_F(VkLayerTest, CreateShaderModuleCheckBadCapability) {
     TEST_DESCRIPTION("Create a shader in which a capability declared by the shader is not supported.");
     // Note that this failure message comes from spirv-tools, specifically the validator.
@@ -14243,6 +14246,7 @@
 
     m_errorMonitor->VerifyFound();
 }
+#endif  // SKIP_TESTS_FAILING_ON_MAGMA
 
 TEST_F(VkLayerTest, CreatePipelineFragmentInputNotProvided) {
     TEST_DESCRIPTION(
@@ -19433,7 +19437,7 @@
     vkDestroyBuffer(m_device->device(), buffer, NULL);
     vkDestroyDescriptorPool(m_device->device(), ds_pool, NULL);
 }
-#endif // SKIP_TESTS_CRASHING_ON_MAGMA
+#endif  // SKIP_TESTS_CRASHING_ON_MAGMA
 
 // This is a positive test. No failures are expected.
 TEST_F(VkPositiveLayerTest, TestAliasedMemoryTracking) {
@@ -20201,7 +20205,7 @@
     m_errorMonitor->VerifyNotFound();
     vkDestroyImageView(m_device->device(), imageView, NULL);
 }
-#endif // SKIP_TESTS_CRASHING_ON_MAGMA
+#endif  // SKIP_TESTS_CRASHING_ON_MAGMA
 
 // This is a positive test. No failures are expected.
 TEST_F(VkPositiveLayerTest, BindSparse) {
@@ -20703,7 +20707,7 @@
     vkDestroyFramebuffer(m_device->device(), fb, nullptr);
     vkDestroyRenderPass(m_device->device(), rp, nullptr);
 }
-#endif // SKIP_TESTS_CRASHING_ON_MAGMA
+#endif  // SKIP_TESTS_CRASHING_ON_MAGMA
 
 // This is a positive test. No errors are expected.
 TEST_F(VkPositiveLayerTest, StencilLoadOp) {
@@ -22958,7 +22962,7 @@
     vkDestroyPipelineLayout(m_device->device(), pl, nullptr);
     vkDestroyDescriptorSetLayout(m_device->device(), dsl, nullptr);
 }
-#endif // SKIP_TESTS_CRASHING_ON_MAGMA
+#endif  // SKIP_TESTS_CRASHING_ON_MAGMA
 
 TEST_F(VkPositiveLayerTest, CreateComputePipelineMissingDescriptorUnusedPositive) {
     TEST_DESCRIPTION(
