Use gtest for testing Subzero.

Change-Id: If2a5c51991bd60e1b6545799cd50f9520c85f21e
Reviewed-on: https://swiftshader-review.googlesource.com/7570
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Reactor/Main.cpp b/src/Reactor/Main.cpp
index e1887b5..f12b9ac 100644
--- a/src/Reactor/Main.cpp
+++ b/src/Reactor/Main.cpp
@@ -14,7 +14,7 @@
 
 #include "Reactor.hpp"
 
-#include <cassert>
+#include "gtest/gtest.h"
 
 using namespace sw;
 
@@ -29,11 +29,11 @@
 	}
 
 	int sum = x + y + z;
-   
+
 	return sum;
 }
 
-int main()
+TEST(SubzeroReactorSample, SubzeroReactor)
 {
 	Routine *routine = nullptr;
 
@@ -66,11 +66,15 @@
 			int (*callable)(int*, int) = (int(*)(int*,int))routine->getEntry();
 			int one[2] = {1, 0};
 			int result = callable(&one[1], 2);
-			assert(result == reference(&one[1], 2));
+			EXPECT_EQ(result, reference(&one[1], 2));
 		}
 	}
 
 	delete routine;
+}
 
-	return 0;
+int main(int argc, char **argv)
+{
+	::testing::InitGoogleTest(&argc, argv);
+	return RUN_ALL_TESTS();
 }
diff --git a/src/Reactor/SubmoduleCheck/gtest/gtest.h b/src/Reactor/SubmoduleCheck/gtest/gtest.h
new file mode 100644
index 0000000..4861ef3
--- /dev/null
+++ b/src/Reactor/SubmoduleCheck/gtest/gtest.h
@@ -0,0 +1,2 @@
+// These are not the headers you're looking for

+#error "Missing googletest submodule. Run git submodule update --init"
\ No newline at end of file
diff --git a/src/Reactor/SubzeroTest.vcxproj b/src/Reactor/SubzeroTest.vcxproj
index ba02fc8..a64f454 100644
--- a/src/Reactor/SubzeroTest.vcxproj
+++ b/src/Reactor/SubzeroTest.vcxproj
@@ -93,6 +93,8 @@
       <Optimization>Disabled</Optimization>

       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <ForcedIncludeFiles>gtest/gtest.h</ForcedIncludeFiles>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

@@ -107,6 +109,8 @@
       <Optimization>Disabled</Optimization>

       <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <ForcedIncludeFiles>gtest/gtest.h</ForcedIncludeFiles>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

@@ -123,6 +127,8 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>

       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <ForcedIncludeFiles>gtest/gtest.h</ForcedIncludeFiles>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

@@ -141,6 +147,8 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>

       <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <ForcedIncludeFiles>gtest/gtest.h</ForcedIncludeFiles>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

@@ -158,6 +166,7 @@
     </ProjectReference>

   </ItemGroup>

   <ItemGroup>

+    <ClCompile Include="..\..\third_party\googletest\googletest\src\gtest-all.cc" />

     <ClCompile Include="Main.cpp" />

   </ItemGroup>

   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

diff --git a/src/Reactor/SubzeroTest.vcxproj.filters b/src/Reactor/SubzeroTest.vcxproj.filters
index 661f3fb..7c19272 100644
--- a/src/Reactor/SubzeroTest.vcxproj.filters
+++ b/src/Reactor/SubzeroTest.vcxproj.filters
@@ -18,5 +18,8 @@
     <ClCompile Include="Main.cpp">

       <Filter>Source Files</Filter>

     </ClCompile>

+    <ClCompile Include="..\..\third_party\googletest\googletest\src\gtest-all.cc">

+      <Filter>Source Files</Filter>

+    </ClCompile>

   </ItemGroup>

 </Project>
\ No newline at end of file