Merge diagnostic tests and single them out in a separate binary.
authorLei Zhang <antiagainst@google.com>
Thu, 8 Sep 2016 21:26:53 +0000 (17:26 -0400)
committerLei Zhang <antiagainst@google.com>
Thu, 8 Sep 2016 21:26:53 +0000 (17:26 -0400)
test/CMakeLists.txt
test/DiagnosticPrint.cpp [deleted file]
test/DiagnosticStream.cpp [deleted file]
test/diagnostic.cpp [moved from test/DiagnosticDestroy.cpp with 51% similarity]

index 5321574..10012b4 100644 (file)
@@ -75,9 +75,6 @@ set(TEST_SOURCES
   ${CMAKE_CURRENT_SOURCE_DIR}/BinaryToText.Literal.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/CapabilitySet.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/Comment.cpp
-  ${CMAKE_CURRENT_SOURCE_DIR}/DiagnosticDestroy.cpp
-  ${CMAKE_CURRENT_SOURCE_DIR}/DiagnosticPrint.cpp
-  ${CMAKE_CURRENT_SOURCE_DIR}/DiagnosticStream.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/ExtInstGLSLstd450.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/ExtInst.OpenCL.std.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/FixWord.cpp
@@ -121,12 +118,18 @@ set(TEST_SOURCES
   ${CMAKE_CURRENT_SOURCE_DIR}/TextWordGet.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/UnitSPIRV.cpp
 )
+
 add_spvtools_unittest(
   TARGET spirv_unit_tests
   SRCS ${TEST_SOURCES}
   LIBS ${SPIRV_TOOLS})
 
 add_spvtools_unittest(
+  TARGET diagnostic
+  SRCS diagnostic.cpp
+  LIBS ${SPIRV_TOOLS})
+
+add_spvtools_unittest(
   TARGET cpp_interface
   SRCS cpp_interface.cpp
   LIBS SPIRV-Tools-opt ${SPIRV_TOOLS})
diff --git a/test/DiagnosticPrint.cpp b/test/DiagnosticPrint.cpp
deleted file mode 100644 (file)
index 40bed7b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (c) 2015-2016 The Khronos Group Inc.
-//
-// 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.
-
-#include "UnitSPIRV.h"
-
-namespace {
-
-TEST(DiagnosticPrint, Default) {
-  char message[] = "Test Diagnostic!";
-  spv_diagnostic_t diagnostic = {{2, 3, 5}, message};
-  // TODO: Redirect stderr
-  ASSERT_EQ(SPV_SUCCESS, spvDiagnosticPrint(&diagnostic));
-  // TODO: Validate the output of spvDiagnosticPrint()
-  // TODO: Remove the redirection of stderr
-}
-
-TEST(DiagnosticPrint, InvalidDiagnostic) {
-  ASSERT_EQ(SPV_ERROR_INVALID_DIAGNOSTIC, spvDiagnosticPrint(nullptr));
-}
-
-// TODO(dneto): We should be able to redirect the diagnostic printing.
-// Once we do that, we can test diagnostic corner cases.
-
-}  // anonymous namespace
diff --git a/test/DiagnosticStream.cpp b/test/DiagnosticStream.cpp
deleted file mode 100644 (file)
index 15e9e60..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (c) 2015-2016 The Khronos Group Inc.
-//
-// 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.
-
-#include "UnitSPIRV.h"
-
-namespace {
-
-using libspirv::DiagnosticStream;
-
-TEST(DiagnosticStream, ConversionToResultType) {
-  // Check after the DiagnosticStream object is destroyed.
-  spv_result_t value;
-  { value = DiagnosticStream({}, 0, SPV_ERROR_INVALID_TEXT); }
-  EXPECT_EQ(SPV_ERROR_INVALID_TEXT, value);
-
-  // Check implicit conversion via plain assignment.
-  value = DiagnosticStream({}, 0, SPV_SUCCESS);
-  EXPECT_EQ(SPV_SUCCESS, value);
-
-  // Check conversion via constructor.
-  EXPECT_EQ(SPV_FAILED_MATCH,
-            spv_result_t(DiagnosticStream({}, 0, SPV_FAILED_MATCH)));
-}
-
-}  // anonymous namespace
similarity index 51%
rename from test/DiagnosticDestroy.cpp
rename to test/diagnostic.cpp
index b8911f2..fa35502 100644 (file)
@@ -16,7 +16,7 @@
 
 namespace {
 
-TEST(DiagnosticDestroy, DestroyNull) { spvDiagnosticDestroy(nullptr); }
+using libspirv::DiagnosticStream;
 
 // Returns a newly created diagnostic value.
 spv_diagnostic MakeValidDiagnostic() {
@@ -26,14 +26,16 @@ spv_diagnostic MakeValidDiagnostic() {
   return diagnostic;
 }
 
-TEST(DiagnosticDestroy, DestroyValidDiagnostic) {
+TEST(Diagnostic, DestroyNull) { spvDiagnosticDestroy(nullptr); }
+
+TEST(Diagnostic, DestroyValidDiagnostic) {
   spv_diagnostic diagnostic = MakeValidDiagnostic();
   spvDiagnosticDestroy(diagnostic);
   // We aren't allowed to use the diagnostic pointer anymore.
   // So we can't test its behaviour.
 }
 
-TEST(DiagnosticDestroy, DestroyValidDiagnosticAfterReassignment) {
+TEST(Diagnostic, DestroyValidDiagnosticAfterReassignment) {
   spv_diagnostic diagnostic = MakeValidDiagnostic();
   spv_diagnostic second_diagnostic = MakeValidDiagnostic();
   EXPECT_TRUE(diagnostic != second_diagnostic);
@@ -42,4 +44,35 @@ TEST(DiagnosticDestroy, DestroyValidDiagnosticAfterReassignment) {
   spvDiagnosticDestroy(diagnostic);
 }
 
+TEST(Diagnostic, PrintDefault) {
+  char message[] = "Test Diagnostic!";
+  spv_diagnostic_t diagnostic = {{2, 3, 5}, message};
+  // TODO: Redirect stderr
+  ASSERT_EQ(SPV_SUCCESS, spvDiagnosticPrint(&diagnostic));
+  // TODO: Validate the output of spvDiagnosticPrint()
+  // TODO: Remove the redirection of stderr
+}
+
+TEST(Diagnostic, PrintInvalidDiagnostic) {
+  ASSERT_EQ(SPV_ERROR_INVALID_DIAGNOSTIC, spvDiagnosticPrint(nullptr));
+}
+
+// TODO(dneto): We should be able to redirect the diagnostic printing.
+// Once we do that, we can test diagnostic corner cases.
+
+TEST(DiagnosticStream, ConversionToResultType) {
+  // Check after the DiagnosticStream object is destroyed.
+  spv_result_t value;
+  { value = DiagnosticStream({}, 0, SPV_ERROR_INVALID_TEXT); }
+  EXPECT_EQ(SPV_ERROR_INVALID_TEXT, value);
+
+  // Check implicit conversion via plain assignment.
+  value = DiagnosticStream({}, 0, SPV_SUCCESS);
+  EXPECT_EQ(SPV_SUCCESS, value);
+
+  // Check conversion via constructor.
+  EXPECT_EQ(SPV_FAILED_MATCH,
+            spv_result_t(DiagnosticStream({}, 0, SPV_FAILED_MATCH)));
+}
+
 }  // anonymous namespace