diff options
| author | Yong He <yonghe@outlook.com> | 2021-09-24 11:33:44 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-24 11:33:44 -0700 |
| commit | bec8e6aec85b6e3f875c58bdd59eb15613978358 (patch) | |
| tree | 0791fb2ce1be786c17e5a6ee489ed3065fc07332 | |
| parent | f2a3c933bc11a498c622fa18694c84beca8ca031 (diff) | |
Move existing unit tests to a standalone dll. (#1945)
31 files changed, 951 insertions, 264 deletions
diff --git a/build/visual-studio/core-test-tool/core-test-tool.vcxproj b/build/visual-studio/core-test-tool/core-test-tool.vcxproj new file mode 100644 index 000000000..3c44ba9f3 --- /dev/null +++ b/build/visual-studio/core-test-tool/core-test-tool.vcxproj @@ -0,0 +1,194 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{0162864E-7651-4B5E-9105-C571105276EA}</ProjectGuid> + <IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename> + <Keyword>Win32Proj</Keyword> + <RootNamespace>core-test-tool</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\windows-x86\debug\</OutDir> + <IntDir>..\..\..\intermediate\windows-x86\debug\core-test-tool\</IntDir> + <TargetName>core-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\windows-x64\debug\</OutDir> + <IntDir>..\..\..\intermediate\windows-x64\debug\core-test-tool\</IntDir> + <TargetName>core-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\windows-x86\release\</OutDir> + <IntDir>..\..\..\intermediate\windows-x86\release\core-test-tool\</IntDir> + <TargetName>core-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\windows-x64\release\</OutDir> + <IntDir>..\..\..\intermediate\windows-x64\release\core-test-tool\</IntDir> + <TargetName>core-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>_DEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ImportLibrary>..\..\..\bin\windows-x86\debug\core-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>_DEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ImportLibrary>..\..\..\bin\windows-x64\debug\core-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ImportLibrary>..\..\..\bin\windows-x86\release\core-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ImportLibrary>..\..\..\bin\windows-x64\release\core-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="..\..\..\tools\unit-test\slang-unit-test.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\tools\core-test\unit-offset-container.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-byte-encode.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-command-line-args.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-compression.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-find-type-by-name.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-free-list.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-json.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-memory-arena.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-path.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-riff.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-short-list.cpp" /> + <ClCompile Include="..\..\..\tools\core-test\unit-test-string.cpp" /> + <ClCompile Include="..\..\..\tools\unit-test\slang-unit-test.cpp" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\core\core.vcxproj"> + <Project>{F9BE7957-8399-899E-0C49-E714FDDD4B65}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/build/visual-studio/core-test-tool/core-test-tool.vcxproj.filters b/build/visual-studio/core-test-tool/core-test-tool.vcxproj.filters new file mode 100644 index 000000000..8cf814b3b --- /dev/null +++ b/build/visual-studio/core-test-tool/core-test-tool.vcxproj.filters @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Header Files"> + <UniqueIdentifier>{21EB8090-0D4E-1035-B6D3-48EBA215DCB7}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{E9C7FDCE-D52A-8D73-7EB0-C5296AF258F6}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\tools\unit-test\slang-unit-test.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\tools\core-test\unit-offset-container.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-byte-encode.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-command-line-args.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-compression.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-find-type-by-name.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-free-list.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-json.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-memory-arena.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-path.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-riff.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-short-list.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\core-test\unit-test-string.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\unit-test\slang-unit-test.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/build/visual-studio/gfx-unit-test-tool/gfx-unit-test-tool.vcxproj b/build/visual-studio/gfx-unit-test-tool/gfx-unit-test-tool.vcxproj new file mode 100644 index 000000000..4938b4ef7 --- /dev/null +++ b/build/visual-studio/gfx-unit-test-tool/gfx-unit-test-tool.vcxproj @@ -0,0 +1,197 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{092DAB9F-1DA5-4538-ADD7-1A8D1DBFD519}</ProjectGuid> + <IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename> + <Keyword>Win32Proj</Keyword> + <RootNamespace>gfx-unit-test-tool</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\windows-x86\debug\</OutDir> + <IntDir>..\..\..\intermediate\windows-x86\debug\gfx-unit-test-tool\</IntDir> + <TargetName>gfx-unit-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\windows-x64\debug\</OutDir> + <IntDir>..\..\..\intermediate\windows-x64\debug\gfx-unit-test-tool\</IntDir> + <TargetName>gfx-unit-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\windows-x86\release\</OutDir> + <IntDir>..\..\..\intermediate\windows-x86\release\gfx-unit-test-tool\</IntDir> + <TargetName>gfx-unit-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\windows-x64\release\</OutDir> + <IntDir>..\..\..\intermediate\windows-x64\release\gfx-unit-test-tool\</IntDir> + <TargetName>gfx-unit-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>_DEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ImportLibrary>..\..\..\bin\windows-x86\debug\gfx-unit-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>_DEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ImportLibrary>..\..\..\bin\windows-x64\debug\gfx-unit-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ImportLibrary>..\..\..\bin\windows-x86\release\gfx-unit-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ImportLibrary>..\..\..\bin\windows-x64\release\gfx-unit-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="..\..\..\tools\gfx-unit-test\gfx-test-util.h" /> + <ClInclude Include="..\..\..\tools\unit-test\slang-unit-test.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\tools\gfx-unit-test\compute-smoke.cpp" /> + <ClCompile Include="..\..\..\tools\gfx-unit-test\gfx-test-util.cpp" /> + <ClCompile Include="..\..\..\tools\unit-test\slang-unit-test.cpp" /> + </ItemGroup> + <ItemGroup> + <None Include="..\..\..\tools\gfx-unit-test\compute-smoke.slang" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\core\core.vcxproj"> + <Project>{F9BE7957-8399-899E-0C49-E714FDDD4B65}</Project> + </ProjectReference> + <ProjectReference Include="..\slang\slang.vcxproj"> + <Project>{DB00DA62-0533-4AFD-B59F-A67D5B3A0808}</Project> + </ProjectReference> + <ProjectReference Include="..\gfx\gfx.vcxproj"> + <Project>{222F7498-B40C-4F3F-A704-DDEB91A4484A}</Project> + </ProjectReference> + <ProjectReference Include="..\gfx-util\gfx-util.vcxproj"> + <Project>{F5ADB74E-02A7-44FB-AA3B-FC02F8AC7A4B}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/build/visual-studio/gfx-unit-test-tool/gfx-unit-test-tool.vcxproj.filters b/build/visual-studio/gfx-unit-test-tool/gfx-unit-test-tool.vcxproj.filters new file mode 100644 index 000000000..fcea7e877 --- /dev/null +++ b/build/visual-studio/gfx-unit-test-tool/gfx-unit-test-tool.vcxproj.filters @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Header Files"> + <UniqueIdentifier>{21EB8090-0D4E-1035-B6D3-48EBA215DCB7}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{E9C7FDCE-D52A-8D73-7EB0-C5296AF258F6}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\tools\gfx-unit-test\gfx-test-util.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\tools\unit-test\slang-unit-test.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\tools\gfx-unit-test\compute-smoke.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\gfx-unit-test\gfx-test-util.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\unit-test\slang-unit-test.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="..\..\..\tools\gfx-unit-test\compute-smoke.slang"> + <Filter>Source Files</Filter> + </None> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/build/visual-studio/slang-test/slang-test.vcxproj b/build/visual-studio/slang-test/slang-test.vcxproj index 707ecbe2e..b1d5f0b0a 100644 --- a/build/visual-studio/slang-test/slang-test.vcxproj +++ b/build/visual-studio/slang-test/slang-test.vcxproj @@ -177,29 +177,17 @@ <ClCompile Include="..\..\..\tools\slang-test\slangc-tool.cpp" /> <ClCompile Include="..\..\..\tools\slang-test\test-context.cpp" /> <ClCompile Include="..\..\..\tools\slang-test\test-reporter.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-offset-container.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-byte-encode.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-command-line-args.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-compression.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-find-type-by-name.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-free-list.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-json.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-memory-arena.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-path.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-riff.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-short-list.cpp" /> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-string.cpp" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\core\core.vcxproj"> - <Project>{F9BE7957-8399-899E-0C49-E714FDDD4B65}</Project> - </ProjectReference> <ProjectReference Include="..\compiler-core\compiler-core.vcxproj"> <Project>{12C1E89D-F5D0-41D3-8E8D-FB3F358F8126}</Project> </ProjectReference> <ProjectReference Include="..\slang\slang.vcxproj"> <Project>{DB00DA62-0533-4AFD-B59F-A67D5B3A0808}</Project> </ProjectReference> + <ProjectReference Include="..\core\core.vcxproj"> + <Project>{F9BE7957-8399-899E-0C49-E714FDDD4B65}</Project> + </ProjectReference> <ProjectReference Include="..\miniz\miniz.vcxproj"> <Project>{E76ACB11-4A12-4F0A-BE1E-CE0B8836EB7F}</Project> </ProjectReference> diff --git a/build/visual-studio/slang-test/slang-test.vcxproj.filters b/build/visual-studio/slang-test/slang-test.vcxproj.filters index 1e5b6e4af..4b11f896b 100644 --- a/build/visual-studio/slang-test/slang-test.vcxproj.filters +++ b/build/visual-studio/slang-test/slang-test.vcxproj.filters @@ -50,41 +50,5 @@ <ClCompile Include="..\..\..\tools\slang-test\test-reporter.cpp"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-offset-container.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-byte-encode.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-command-line-args.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-compression.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-find-type-by-name.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-free-list.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-json.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-memory-arena.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-path.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-riff.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-short-list.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\tools\slang-test\unit-test-string.cpp"> - <Filter>Source Files</Filter> - </ClCompile> </ItemGroup> </Project>
\ No newline at end of file diff --git a/build/visual-studio/slang-unit-test-tool/slang-unit-test-tool.vcxproj b/build/visual-studio/slang-unit-test-tool/slang-unit-test-tool.vcxproj new file mode 100644 index 000000000..5b5c0674e --- /dev/null +++ b/build/visual-studio/slang-unit-test-tool/slang-unit-test-tool.vcxproj @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{0162864E-7651-4B5E-9105-C571105276EA}</ProjectGuid> + <IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename> + <Keyword>Win32Proj</Keyword> + <RootNamespace>slang-unit-test-tool</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\windows-x86\debug\</OutDir> + <IntDir>..\..\..\intermediate\windows-x86\debug\slang-unit-test-tool\</IntDir> + <TargetName>slang-unit-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\windows-x64\debug\</OutDir> + <IntDir>..\..\..\intermediate\windows-x64\debug\slang-unit-test-tool\</IntDir> + <TargetName>slang-unit-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\windows-x86\release\</OutDir> + <IntDir>..\..\..\intermediate\windows-x86\release\slang-unit-test-tool\</IntDir> + <TargetName>slang-unit-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\windows-x64\release\</OutDir> + <IntDir>..\..\..\intermediate\windows-x64\release\slang-unit-test-tool\</IntDir> + <TargetName>slang-unit-test-tool</TargetName> + <TargetExt>.dll</TargetExt> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>_DEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ImportLibrary>..\..\..\bin\windows-x86\debug\slang-unit-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>_DEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ImportLibrary>..\..\..\bin\windows-x64\debug\slang-unit-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ImportLibrary>..\..\..\bin\windows-x86\release\slang-unit-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ImportLibrary>..\..\..\bin\windows-x64\release\slang-unit-test-tool.lib</ImportLibrary> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="..\..\..\tools\unit-test\slang-unit-test.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-offset-container.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-byte-encode.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-command-line-args.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-compression.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-find-type-by-name.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-free-list.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-json.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-memory-arena.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-path.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-riff.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-short-list.cpp" /> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-string.cpp" /> + <ClCompile Include="..\..\..\tools\unit-test\slang-unit-test.cpp" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\lz4\lz4.vcxproj"> + <Project>{E1EC8075-823E-46E5-BC38-C124CCCDF878}</Project> + </ProjectReference> + <ProjectReference Include="..\miniz\miniz.vcxproj"> + <Project>{E76ACB11-4A12-4F0A-BE1E-CE0B8836EB7F}</Project> + </ProjectReference> + <ProjectReference Include="..\core\core.vcxproj"> + <Project>{F9BE7957-8399-899E-0C49-E714FDDD4B65}</Project> + </ProjectReference> + <ProjectReference Include="..\compiler-core\compiler-core.vcxproj"> + <Project>{12C1E89D-F5D0-41D3-8E8D-FB3F358F8126}</Project> + </ProjectReference> + <ProjectReference Include="..\slang\slang.vcxproj"> + <Project>{DB00DA62-0533-4AFD-B59F-A67D5B3A0808}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/build/visual-studio/slang-unit-test-tool/slang-unit-test-tool.vcxproj.filters b/build/visual-studio/slang-unit-test-tool/slang-unit-test-tool.vcxproj.filters new file mode 100644 index 000000000..909229ed2 --- /dev/null +++ b/build/visual-studio/slang-unit-test-tool/slang-unit-test-tool.vcxproj.filters @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Header Files"> + <UniqueIdentifier>{21EB8090-0D4E-1035-B6D3-48EBA215DCB7}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{E9C7FDCE-D52A-8D73-7EB0-C5296AF258F6}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\tools\unit-test\slang-unit-test.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-offset-container.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-byte-encode.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-command-line-args.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-compression.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-find-type-by-name.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-free-list.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-json.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-memory-arena.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-path.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-riff.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-short-list.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\slang-unit-test\unit-test-string.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\tools\unit-test\slang-unit-test.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/premake5.lua b/premake5.lua index 02f8f3600..c5efe1885 100644 --- a/premake5.lua +++ b/premake5.lua @@ -755,7 +755,7 @@ tool "slang-embed" tool "slang-test" uuid "0C768A18-1D25-4000-9F37-DA5FE99E3B64" includedirs { "." } - links { "core", "compiler-core", "slang", "miniz", "lz4" } + links { "compiler-core", "slang", "core", "miniz", "lz4" } -- We want to set to the root of the project, but that doesn't seem to work with '.'. -- So set a path that resolves to the same place. @@ -1251,11 +1251,17 @@ standardProject("slang", "source/slang") defines { "SLANG_ENABLE_IR_BREAK_ALLOC=1" } filter {} -toolSharedLibrary "gfx-test" +toolSharedLibrary "gfx-unit-test" uuid "092DAB9F-1DA5-4538-ADD7-1A8D1DBFD519" includedirs { "." } addSourceDir "tools/unit-test" - links { "gfx", "gfx-util", "slang", "core" } + links { "core", "slang", "gfx", "gfx-util" } + +toolSharedLibrary "slang-unit-test" + uuid "0162864E-7651-4B5E-9105-C571105276EA" + includedirs { "." } + addSourceDir "tools/unit-test" + links { "lz4", "miniz", "core", "compiler-core", "slang" } if enableProfile then tool "slang-profile" @@ -67,12 +67,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slangc", "build\visual-stud EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test-tool", "test-tool", "{57B5AA5E-C340-1823-CC51-9B17385C7423}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gfx-test-tool", "build\visual-studio\gfx-test-tool\gfx-test-tool.vcxproj", "{092DAB9F-1DA5-4538-ADD7-1A8D1DBFD519}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gfx-unit-test-tool", "build\visual-studio\gfx-unit-test-tool\gfx-unit-test-tool.vcxproj", "{092DAB9F-1DA5-4538-ADD7-1A8D1DBFD519}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "render-test-tool", "build\visual-studio\render-test-tool\render-test-tool.vcxproj", "{61F7EB00-7281-4BF3-9470-7C2EA92620C3}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang-reflection-test-tool", "build\visual-studio\slang-reflection-test-tool\slang-reflection-test-tool.vcxproj", "{C5ACCA6E-C04D-4B36-8516-3752B3C13C2F}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang-unit-test-tool", "build\visual-studio\slang-unit-test-tool\slang-unit-test-tool.vcxproj", "{0162864E-7651-4B5E-9105-C571105276EA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -305,6 +307,14 @@ Global {C5ACCA6E-C04D-4B36-8516-3752B3C13C2F}.Release|Win32.Build.0 = Release|Win32 {C5ACCA6E-C04D-4B36-8516-3752B3C13C2F}.Release|x64.ActiveCfg = Release|x64 {C5ACCA6E-C04D-4B36-8516-3752B3C13C2F}.Release|x64.Build.0 = Release|x64 + {0162864E-7651-4B5E-9105-C571105276EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {0162864E-7651-4B5E-9105-C571105276EA}.Debug|Win32.Build.0 = Debug|Win32 + {0162864E-7651-4B5E-9105-C571105276EA}.Debug|x64.ActiveCfg = Debug|x64 + {0162864E-7651-4B5E-9105-C571105276EA}.Debug|x64.Build.0 = Debug|x64 + {0162864E-7651-4B5E-9105-C571105276EA}.Release|Win32.ActiveCfg = Release|Win32 + {0162864E-7651-4B5E-9105-C571105276EA}.Release|Win32.Build.0 = Release|Win32 + {0162864E-7651-4B5E-9105-C571105276EA}.Release|x64.ActiveCfg = Release|x64 + {0162864E-7651-4B5E-9105-C571105276EA}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -332,5 +342,6 @@ Global {092DAB9F-1DA5-4538-ADD7-1A8D1DBFD519} = {57B5AA5E-C340-1823-CC51-9B17385C7423} {61F7EB00-7281-4BF3-9470-7C2EA92620C3} = {57B5AA5E-C340-1823-CC51-9B17385C7423} {C5ACCA6E-C04D-4B36-8516-3752B3C13C2F} = {57B5AA5E-C340-1823-CC51-9B17385C7423} + {0162864E-7651-4B5E-9105-C571105276EA} = {57B5AA5E-C340-1823-CC51-9B17385C7423} EndGlobalSection EndGlobal diff --git a/tools/gfx-test/compute-smoke.cpp b/tools/gfx-unit-test/compute-smoke.cpp index bbba72348..b8e027b65 100644 --- a/tools/gfx-test/compute-smoke.cpp +++ b/tools/gfx-unit-test/compute-smoke.cpp @@ -9,22 +9,22 @@ using namespace gfx; namespace gfx_test { - SlangResult computeSmokeTestImpl(IDevice* device, slang::UnitTestContext* context) + void computeSmokeTestImpl(IDevice* device, UnitTestContext* context) { Slang::ComPtr<ITransientResourceHeap> transientHeap; ITransientResourceHeap::Desc transientHeapDesc = {}; transientHeapDesc.constantBufferSize = 4096; - SLANG_RETURN_ON_FAIL( + GFX_CHECK_CALL_ABORT( device->createTransientResourceHeap(transientHeapDesc, transientHeap.writeRef())); ComPtr<IShaderProgram> shaderProgram; slang::ProgramLayout* slangReflection; - SLANG_RETURN_ON_FAIL(loadShaderProgram(device, shaderProgram, context->outputWriter, "compute-smoke", slangReflection)); + GFX_CHECK_CALL_ABORT(loadShaderProgram(device, shaderProgram, "compute-smoke", slangReflection)); ComputePipelineStateDesc pipelineDesc = {}; pipelineDesc.program = shaderProgram.get(); ComPtr<gfx::IPipelineState> pipelineState; - SLANG_RETURN_ON_FAIL( + GFX_CHECK_CALL_ABORT( device->createComputePipelineState(pipelineDesc, pipelineState.writeRef())); const int numberCount = 4; @@ -42,7 +42,7 @@ namespace gfx_test bufferDesc.cpuAccessFlags = AccessFlag::Write | AccessFlag::Read; ComPtr<IBufferResource> numbersBuffer; - SLANG_RETURN_ON_FAIL(device->createBufferResource( + GFX_CHECK_CALL_ABORT(device->createBufferResource( bufferDesc, (void*)initialData, numbersBuffer.writeRef())); @@ -51,7 +51,7 @@ namespace gfx_test IResourceView::Desc viewDesc = {}; viewDesc.type = IResourceView::Type::UnorderedAccess; viewDesc.format = Format::Unknown; - SLANG_RETURN_ON_FAIL(device->createBufferView(numbersBuffer, viewDesc, bufferView.writeRef())); + GFX_CHECK_CALL_ABORT(device->createBufferView(numbersBuffer, viewDesc, bufferView.writeRef())); // We have done all the set up work, now it is time to start recording a command buffer for // GPU execution. @@ -69,7 +69,7 @@ namespace gfx_test // Now we can use this type to create a shader object that can be bound to the root object. ComPtr<IShaderObject> transformer; - SLANG_RETURN_ON_FAIL(device->createShaderObject( + GFX_CHECK_CALL_ABORT(device->createShaderObject( addTransformerType, ShaderObjectContainerType::None, transformer.writeRef())); // Set the `c` field of the `AddTransformer`. float c = 1.0f; @@ -90,17 +90,17 @@ namespace gfx_test queue->wait(); } - return compareComputeResult( + compareComputeResult( device, numbersBuffer, Slang::makeArray<float>(11.0f, 12.0f, 13.0f, 14.0f)); } - SlangResult computeSmokeTestAPI(slang::UnitTestContext* context, Slang::RenderApiFlag::Enum api) + void computeSmokeTestAPI(UnitTestContext* context, Slang::RenderApiFlag::Enum api) { if ((api & context->enabledApis) == 0) { - return SLANG_E_NOT_AVAILABLE; + SLANG_IGNORE_TEST } Slang::ComPtr<IDevice> device; IDevice::Desc deviceDesc = {}; @@ -116,30 +116,29 @@ namespace gfx_test deviceDesc.deviceType = gfx::DeviceType::Vulkan; break; default: - return SLANG_E_NOT_AVAILABLE; + SLANG_IGNORE_TEST } deviceDesc.slang.slangGlobalSession = context->slangGlobalSession; - const char* searchPaths[] = { "", "../../tools/gfx-test", "tools/gfx-test" }; + const char* searchPaths[] = { "", "../../tools/gfx-unit-test", "tools/gfx-unit-test" }; deviceDesc.slang.searchPathCount = (SlangInt)SLANG_COUNT_OF(searchPaths); deviceDesc.slang.searchPaths = searchPaths; auto createDeviceResult = gfxCreateDevice(&deviceDesc, device.writeRef()); if (SLANG_FAILED(createDeviceResult)) { - return SLANG_E_NOT_AVAILABLE; + SLANG_IGNORE_TEST } - SLANG_RETURN_ON_FAIL(computeSmokeTestImpl(device, context)); - return SLANG_OK; + computeSmokeTestImpl(device, context); } SLANG_UNIT_TEST(computeSmokeD3D11) { - return computeSmokeTestAPI(context, Slang::RenderApiFlag::D3D11); + computeSmokeTestAPI(unitTestContext, Slang::RenderApiFlag::D3D11); } SLANG_UNIT_TEST(computeSmokeVulkan) { - return computeSmokeTestAPI(context, Slang::RenderApiFlag::Vulkan); + computeSmokeTestAPI(unitTestContext, Slang::RenderApiFlag::Vulkan); } } diff --git a/tools/gfx-test/compute-smoke.slang b/tools/gfx-unit-test/compute-smoke.slang index 7ecdb4177..7ecdb4177 100644 --- a/tools/gfx-test/compute-smoke.slang +++ b/tools/gfx-unit-test/compute-smoke.slang diff --git a/tools/gfx-test/gfx-test-util.cpp b/tools/gfx-unit-test/gfx-test-util.cpp index 5e77879a9..d01fcdca3 100644 --- a/tools/gfx-test/gfx-test-util.cpp +++ b/tools/gfx-unit-test/gfx-test-util.cpp @@ -1,4 +1,5 @@ #include "gfx-test-util.h" +#include "tools/unit-test/slang-unit-test.h" #include <slang-com-ptr.h> @@ -6,18 +7,17 @@ using Slang::ComPtr; namespace gfx_test { - void diagnoseIfNeeded(ISlangWriter* diagnosticWriter, slang::IBlob* diagnosticsBlob) + void diagnoseIfNeeded(slang::IBlob* diagnosticsBlob) { if (diagnosticsBlob != nullptr) { - diagnosticWriter->write((const char*)diagnosticsBlob->getBufferPointer(), diagnosticsBlob->getBufferSize()); + getTestReporter()->message(TestMessageType::Info, (const char*)diagnosticsBlob->getBufferPointer()); } } Slang::Result loadShaderProgram( gfx::IDevice* device, Slang::ComPtr<gfx::IShaderProgram>& outShaderProgram, - ISlangWriter* diagnosticWriter, const char* shaderModuleName, slang::ProgramLayout*& slangReflection) { @@ -25,7 +25,7 @@ namespace gfx_test SLANG_RETURN_ON_FAIL(device->getSlangSession(slangSession.writeRef())); Slang::ComPtr<slang::IBlob> diagnosticsBlob; slang::IModule* module = slangSession->loadModule(shaderModuleName, diagnosticsBlob.writeRef()); - diagnoseIfNeeded(diagnosticWriter, diagnosticsBlob); + diagnoseIfNeeded(diagnosticsBlob); if (!module) return SLANG_FAIL; @@ -44,7 +44,7 @@ namespace gfx_test componentTypes.getCount(), composedProgram.writeRef(), diagnosticsBlob.writeRef()); - diagnoseIfNeeded(diagnosticWriter, diagnosticsBlob); + diagnoseIfNeeded(diagnosticsBlob); SLANG_RETURN_ON_FAIL(result); slangReflection = composedProgram->getLayout(); @@ -58,22 +58,29 @@ namespace gfx_test return SLANG_OK; } - Slang::Result compareComputeResult(gfx::IDevice* device, gfx::IBufferResource* buffer, uint8_t* expectedResult, size_t expectedBufferSize) + void compareComputeResult(gfx::IDevice* device, gfx::IBufferResource* buffer, uint8_t* expectedResult, size_t expectedBufferSize) { // Read back the results. ComPtr<ISlangBlob> resultBlob; - SLANG_RETURN_ON_FAIL(device->readBufferResource( + GFX_CHECK_CALL_ABORT(device->readBufferResource( buffer, 0, expectedBufferSize, resultBlob.writeRef())); if (resultBlob->getBufferSize() < expectedBufferSize) - return SLANG_FAIL; + { + getTestReporter()->addResult(TestResult::Fail); + return; + } // Compare results. auto result = reinterpret_cast<const uint8_t*>(resultBlob->getBufferPointer()); for (int i = 0; i < expectedBufferSize; i++) { if (expectedResult[i] != result[i]) - return SLANG_FAIL; + { + getTestReporter()->addResult(TestResult::Fail); + return; + } + } - return SLANG_OK; + getTestReporter()->addResult(TestResult::Pass); } } diff --git a/tools/gfx-test/gfx-test-util.h b/tools/gfx-unit-test/gfx-test-util.h index 5223ba773..7709512d5 100644 --- a/tools/gfx-test/gfx-test-util.h +++ b/tools/gfx-unit-test/gfx-test-util.h @@ -12,19 +12,18 @@ namespace gfx_test Slang::Result loadShaderProgram( gfx::IDevice* device, Slang::ComPtr<gfx::IShaderProgram>& outShaderProgram, - ISlangWriter* diagnosticWriter, const char* shaderModuleName, slang::ProgramLayout*& slangReflection); /// Reads back the content of `buffer` and compares it against `expectedResult`. - Slang::Result compareComputeResult( + void compareComputeResult( gfx::IDevice* device, gfx::IBufferResource* buffer, uint8_t* expectedResult, size_t expectedBufferSize); template<typename T, Slang::Index count> - Slang::Result compareComputeResult( + void compareComputeResult( gfx::IDevice* device, gfx::IBufferResource* buffer, Slang::Array<T, count> expectedResult) @@ -35,4 +34,8 @@ namespace gfx_test memcpy(expectedBuffer.getBuffer(), expectedResult.begin(), bufferSize); return compareComputeResult(device, buffer, expectedBuffer.getBuffer(), bufferSize); } + +#define GFX_CHECK_CALL(x) {auto callResult = (x); SLANG_CHECK(!SLANG_FAILED(callResult))} +#define GFX_CHECK_CALL_ABORT(x) {auto callResult = (x); SLANG_CHECK_ABORT(!SLANG_FAILED(callResult))} + } diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp index 9c194afd4..4f96c3a6a 100644 --- a/tools/slang-test/slang-test-main.cpp +++ b/tools/slang-test/slang-test-main.cpp @@ -3399,25 +3399,23 @@ static SlangResult runUnitTestModule(TestContext* context, TestOptions& testOpti SLANG_RETURN_ON_FAIL(SharedLibrary::load( Path::combine(context->exeDirectoryPath, moduleName).getBuffer(), moduleHandle)); - slang::UnitTestGetModuleFunc getModuleFunc = - (slang::UnitTestGetModuleFunc) SharedLibrary::findSymbolAddressByName( + UnitTestGetModuleFunc getModuleFunc = + (UnitTestGetModuleFunc) SharedLibrary::findSymbolAddressByName( moduleHandle, "slangUnitTestGetModule"); if (!getModuleFunc) return SLANG_FAIL; - slang::IUnitTestModule* testModule = getModuleFunc(); + IUnitTestModule* testModule = getModuleFunc(); if (!testModule) return SLANG_FAIL; - - slang::UnitTestContext unitTestContext; + testModule->setTestReporter(TestReporter::get()); + UnitTestContext unitTestContext; unitTestContext.slangGlobalSession = context->getSession(); unitTestContext.workDirectory = ""; unitTestContext.enabledApis = context->options.enabledApis; auto testCount = testModule->getTestCount(); for (SlangInt i = 0; i < testCount; i++) { - StringBuilder sb; - StringWriter messageWriter(&sb, WriterFlag::Enum::AutoFlush); auto testFunc = testModule->getTestFunc(i); auto testName = testModule->getTestName(i); @@ -3430,22 +3428,13 @@ static SlangResult runUnitTestModule(TestContext* context, TestOptions& testOpti { if (testPassesCategoryMask(context, testOptions)) { - unitTestContext.outputWriter = &messageWriter; - TestReporter::get()->startTest(testOptions.command); - auto result = testFunc(&unitTestContext); - if (sb.getLength()) - TestReporter::get()->message(TestMessageType::Info, sb.ProduceString()); - - if (result == SLANG_E_NOT_AVAILABLE) - TestReporter::get()->addResult(TestResult::Ignored); - else if (SLANG_FAILED(result)) - TestReporter::get()->addResult(TestResult::Fail); - else - TestReporter::get()->addResult(TestResult::Pass); + TestReporter::get()->startTest(testOptions.command.getBuffer()); + testFunc(&unitTestContext); TestReporter::get()->endTest(); } } } + testModule->destroy(); return SLANG_OK; } @@ -3623,40 +3612,16 @@ SlangResult innerMain(int argc, char** argv) TestReporter::set(&reporter); // Run the unit tests - TestRegister* cur = TestRegister::s_first; - while (cur) { - StringBuilder filePath; - filePath << "unit-tests/" << cur->m_name << ".internal"; - TestOptions testOptions; testOptions.categories.add(unitTestCategory); testOptions.categories.add(smokeTestCategory); - testOptions.command = filePath; - - if (shouldRunTest(&context, testOptions.command)) - { - if (testPassesCategoryMask(&context, testOptions)) - { - reporter.startTest(testOptions.command); - // Run the test function - cur->m_func(); - reporter.endTest(); - } - else - { - reporter.addTest(testOptions.command, TestResult::Ignored); - } - } - - // Next - cur = cur->m_next; + runUnitTestModule(&context, testOptions, "slang-unit-test-tool"); } - { TestOptions testOptions; testOptions.categories.add(unitTestCategory); - runUnitTestModule(&context, testOptions, "gfx-test-tool"); + runUnitTestModule(&context, testOptions, "gfx-unit-test-tool"); } TestReporter::set(nullptr); } diff --git a/tools/slang-test/test-reporter.cpp b/tools/slang-test/test-reporter.cpp index 4a7c76c4c..84bcaa32c 100644 --- a/tools/slang-test/test-reporter.cpp +++ b/tools/slang-test/test-reporter.cpp @@ -10,7 +10,6 @@ using namespace Slang; /* static */TestReporter* TestReporter::s_reporter = nullptr; -/* static */TestRegister* TestRegister::s_first; static void appendXmlEncode(char c, StringBuilder& out) { @@ -106,7 +105,7 @@ bool TestReporter::canWriteStdError() const } } -void TestReporter::startTest(const String& testName) +void TestReporter::startTest(const char* testName) { // Must be in a suite assert(m_suiteStack.getCount()); @@ -537,6 +536,12 @@ void TestReporter::messageFormat(TestMessageType type, char const* format, ...) message(type, builder); } +void TestReporter::message(TestMessageType type, const char* messageContent) +{ + message(type, String(messageContent)); +} + + bool TestReporter::didAllSucceed() const { return m_passedTestCount == (m_totalTestCount - m_ignoredTestCount); diff --git a/tools/slang-test/test-reporter.h b/tools/slang-test/test-reporter.h index 1ebce81cd..ecf6fbab4 100644 --- a/tools/slang-test/test-reporter.h +++ b/tools/slang-test/test-reporter.h @@ -7,36 +7,7 @@ #include "../../source/core/slang-platform.h" #include "../../source/core/slang-std-writers.h" #include "../../source/core/slang-dictionary.h" - - -#define SLANG_CHECK(x) TestReporter::get()->addResultWithLocation((x), #x, __FILE__, __LINE__); -#define SLANG_CHECK_ABORT(x) \ - { \ - bool _slang_check_result = (x); \ - TestReporter::get()->addResultWithLocation(_slang_check_result, #x, __FILE__, __LINE__); \ - if (!_slang_check_result) return; \ - } - -struct TestRegister -{ - typedef void (*TestFunc)(); - - TestRegister(const char* name, TestFunc func): - m_next(s_first), - m_name(name), - m_func(func) - { - s_first = this; - } - - TestFunc m_func; - const char* m_name; - TestRegister* m_next; - - static TestRegister* s_first; -}; - -#define SLANG_UNIT_TEST(name, func) static TestRegister s_unitTest##__LINE__(name, func) +#include "tools/unit-test/slang-unit-test.h" enum class TestOutputMode { @@ -48,23 +19,7 @@ enum class TestOutputMode TeamCity, ///< Output suitable for teamcity }; -enum class TestResult -{ - // NOTE! Must keep in order such that combine is meaningful. That is larger values are higher precident - and a series of tests that has lots of passes - // and a fail, is still a fail overall. - Ignored, - Pass, - Fail, -}; - -enum class TestMessageType -{ - Info, ///< General info (may not be shown depending on verbosity setting) - TestFailure, ///< Describes how a test failure took place - RunError, ///< Describes an error that caused a test not to actually correctly run -}; - -class TestReporter +class TestReporter : public ITestReporter { public: @@ -82,7 +37,7 @@ class TestReporter TestScope(TestReporter* reporter, const Slang::String& testName) : m_reporter(reporter) { - reporter->startTest(testName); + reporter->startTest(testName.getBuffer()); } ~TestScope() { @@ -113,12 +68,12 @@ class TestReporter void startSuite(const Slang::String& name); void endSuite(); - void startTest(const Slang::String& testName); - void addResult(TestResult result); - void addResultWithLocation(TestResult result, const char* testText, const char* file, int line); - void addResultWithLocation(bool testSucceeded, const char* testText, const char* file, int line); - void addExecutionTime(double time); - void endTest(); + virtual void startTest(const char* testName) override; + virtual void addResult(TestResult result) override; + virtual void addResultWithLocation(TestResult result, const char* testText, const char* file, int line) override; + virtual void addResultWithLocation(bool testSucceeded, const char* testText, const char* file, int line) override; + virtual void addExecutionTime(double time) override; + virtual void endTest() override; /// Runs start/endTest and outputs the result TestResult addTest(const Slang::String& testName, bool isPass); @@ -128,6 +83,7 @@ class TestReporter // Called for an error in the test-runner (not for an error involving a test itself). void message(TestMessageType type, const Slang::String& errorText); void messageFormat(TestMessageType type, char const* message, ...); + virtual void message(TestMessageType type, char const* message) override; void dumpOutputDifference(const Slang::String& expectedOutput, const Slang::String& actualOutput); diff --git a/tools/slang-test/unit-offset-container.cpp b/tools/slang-unit-test/unit-offset-container.cpp index d0990d9bb..6a179c319 100644 --- a/tools/slang-test/unit-offset-container.cpp +++ b/tools/slang-unit-test/unit-offset-container.cpp @@ -2,7 +2,7 @@ #include "../../source/core/slang-offset-container.h" -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" using namespace Slang; @@ -30,7 +30,7 @@ struct Root } // anonymous -static void offsetContainerUnitTest() +SLANG_UNIT_TEST(offsetContainer) { _checkEncodeDecode(253); @@ -115,5 +115,3 @@ static void offsetContainerUnitTest() } } } - -SLANG_UNIT_TEST("OffsetContainer", offsetContainerUnitTest); diff --git a/tools/slang-test/unit-test-byte-encode.cpp b/tools/slang-unit-test/unit-test-byte-encode.cpp index 8ffac3ee3..38bd5561d 100644 --- a/tools/slang-test/unit-test-byte-encode.cpp +++ b/tools/slang-unit-test/unit-test-byte-encode.cpp @@ -5,7 +5,7 @@ #include <stdio.h> #include <stdlib.h> -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" #include "../../source/core/slang-random-generator.h" #include "../../source/core/slang-list.h" @@ -25,7 +25,7 @@ static void checkUInt32(uint32_t value) SLANG_CHECK(readLen == writeLen && decode == value); } -static void byteEncodeUnitTest() +SLANG_UNIT_TEST(byteEncode) { DefaultRandomGenerator randGen(0x5346536a); @@ -137,5 +137,3 @@ static void byteEncodeUnitTest() } } - -SLANG_UNIT_TEST("ByteEncode", byteEncodeUnitTest); diff --git a/tools/slang-test/unit-test-command-line-args.cpp b/tools/slang-unit-test/unit-test-command-line-args.cpp index fd50ceeef..a4dc8a16c 100644 --- a/tools/slang-test/unit-test-command-line-args.cpp +++ b/tools/slang-unit-test/unit-test-command-line-args.cpp @@ -2,11 +2,11 @@ #include "../../source/compiler-core/slang-command-line-args.h" -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" using namespace Slang; -static void commandLineArgsUnitTest() +SLANG_UNIT_TEST(commandLineArgs) { RefPtr<CommandLineContext> context = new CommandLineContext; @@ -123,4 +123,3 @@ static void commandLineArgsUnitTest() } -SLANG_UNIT_TEST("CommandLineArgs", commandLineArgsUnitTest); diff --git a/tools/slang-test/unit-test-compression.cpp b/tools/slang-unit-test/unit-test-compression.cpp index b70bd8545..89716b443 100644 --- a/tools/slang-test/unit-test-compression.cpp +++ b/tools/slang-unit-test/unit-test-compression.cpp @@ -1,7 +1,8 @@ // unit-compression.cpp -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" +#include "source/core/slang-io.h" #include "../../source/core/slang-zip-file-system.h" #include "../../source/core/slang-lz4-compression-system.h" @@ -32,7 +33,7 @@ static List<String> _getContents(ISlangFileSystemExt* fileSystem, const char* pa return objs; } -static void compressionUnitTest() +SLANG_UNIT_TEST(compression) { const SlangArchiveType archiveTypes[] = { @@ -186,5 +187,3 @@ static void compressionUnitTest() SLANG_CHECK(memcmp(src, decompressedData.getBuffer(), srcSize) == 0); } } - -SLANG_UNIT_TEST("Compression", compressionUnitTest); diff --git a/tools/slang-test/unit-test-find-type-by-name.cpp b/tools/slang-unit-test/unit-test-find-type-by-name.cpp index ebe5f746b..d12a0d91f 100644 --- a/tools/slang-test/unit-test-find-type-by-name.cpp +++ b/tools/slang-unit-test/unit-test-find-type-by-name.cpp @@ -5,11 +5,11 @@ #include <stdio.h> #include <stdlib.h> -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" using namespace Slang; -static void findTypeByNameTest() +SLANG_UNIT_TEST(findTypeByName) { const char* testSource = "struct TestStruct {" @@ -53,4 +53,3 @@ static void findTypeByNameTest() spDestroySession(session); } -SLANG_UNIT_TEST("findTypeByName", findTypeByNameTest); diff --git a/tools/slang-test/unit-test-free-list.cpp b/tools/slang-unit-test/unit-test-free-list.cpp index 28973d9e5..d6c8b47a7 100644 --- a/tools/slang-test/unit-test-free-list.cpp +++ b/tools/slang-unit-test/unit-test-free-list.cpp @@ -5,14 +5,14 @@ #include <stdio.h> #include <stdlib.h> -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" #include "../../source/core/slang-random-generator.h" #include "../../source/core/slang-list.h" using namespace Slang; -static void freeListUnitTest() +SLANG_UNIT_TEST(freeList) { FreeList freeList; freeList.init(sizeof(int), sizeof(void*), 10); @@ -51,4 +51,3 @@ static void freeListUnitTest() } } -SLANG_UNIT_TEST("FreeList", freeListUnitTest); diff --git a/tools/slang-test/unit-test-json.cpp b/tools/slang-unit-test/unit-test-json.cpp index dad5153c1..2d2874cc8 100644 --- a/tools/slang-test/unit-test-json.cpp +++ b/tools/slang-unit-test/unit-test-json.cpp @@ -4,7 +4,7 @@ #include "../../source/compiler-core/slang-json-parser.h" #include "../../source/compiler-core/slang-json-value.h" -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" using namespace Slang; @@ -101,7 +101,7 @@ static bool _areEqual(SourceManager* sourceManager, const List<JSONToken>& toks, return true; } -static void jsonUnitTest() +SLANG_UNIT_TEST(json) { SourceManager sourceManager; sourceManager.initialize(nullptr, nullptr); @@ -318,4 +318,3 @@ static void jsonUnitTest() } } -SLANG_UNIT_TEST("JSON", jsonUnitTest); diff --git a/tools/slang-test/unit-test-memory-arena.cpp b/tools/slang-unit-test/unit-test-memory-arena.cpp index 2aa898c9d..b2671160a 100644 --- a/tools/slang-test/unit-test-memory-arena.cpp +++ b/tools/slang-unit-test/unit-test-memory-arena.cpp @@ -5,7 +5,7 @@ #include <stdio.h> #include <stdlib.h> -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" #include "../../source/core/slang-random-generator.h" #include "../../source/core/slang-list.h" @@ -105,7 +105,7 @@ static bool hasValue(const uint8_t* data, size_t size, uint8_t value) return hasValueShort(data + sizeof(size_t) * numWords, size & alignMask, value); } -static void memoryArenaUnitTest() +SLANG_UNIT_TEST(memoryArena) { DefaultRandomGenerator randGen(0x5346536a); @@ -269,5 +269,3 @@ static void memoryArenaUnitTest() } } - -SLANG_UNIT_TEST("MemoryArena", memoryArenaUnitTest); diff --git a/tools/slang-test/unit-test-path.cpp b/tools/slang-unit-test/unit-test-path.cpp index 98f44753e..c27feee9c 100644 --- a/tools/slang-test/unit-test-path.cpp +++ b/tools/slang-unit-test/unit-test-path.cpp @@ -2,12 +2,11 @@ #include "../../source/core/slang-io.h" - -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" using namespace Slang; -static void pathUnitTest() +SLANG_UNIT_TEST(path) { #if SLANG_WINDOWS_FAMILY // Disable for now on non windows has some problems on *some* Linux based CI. @@ -61,4 +60,3 @@ static void pathUnitTest() } } -SLANG_UNIT_TEST("Path", pathUnitTest); diff --git a/tools/slang-test/unit-test-riff.cpp b/tools/slang-unit-test/unit-test-riff.cpp index 0fb81113a..2902a9af5 100644 --- a/tools/slang-test/unit-test-riff.cpp +++ b/tools/slang-unit-test/unit-test-riff.cpp @@ -4,7 +4,7 @@ #include "../../source/core/slang-random-generator.h" -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" using namespace Slang; @@ -33,7 +33,7 @@ static void _writeRandom(RandomGenerator* rand, size_t maxSize, RiffContainer& i SLANG_ASSERT(dataChunk); } -static void riffUnitTest() +SLANG_UNIT_TEST(riff) { typedef RiffContainer::ScopeChunk ScopeChunk; typedef RiffContainer::Chunk::Kind Kind; @@ -177,4 +177,3 @@ static void riffUnitTest() #endif } -SLANG_UNIT_TEST("Riff", riffUnitTest); diff --git a/tools/slang-test/unit-test-short-list.cpp b/tools/slang-unit-test/unit-test-short-list.cpp index 0559419bb..2760d633e 100644 --- a/tools/slang-test/unit-test-short-list.cpp +++ b/tools/slang-unit-test/unit-test-short-list.cpp @@ -1,6 +1,7 @@ // unit-test-path.cpp -#include "test-context.h" +#include "source/core/slang-basic.h" +#include "tools/unit-test/slang-unit-test.h" using namespace Slang; @@ -15,7 +16,7 @@ static bool _checkArrayView(ArrayView<T> v0, ArrayView<T> v1) return true; } -static void shortListUnitTest() +SLANG_UNIT_TEST(shortList) { { ShortList<String, 4> shortList = { "a", "b", "c" }; @@ -74,5 +75,3 @@ static void shortListUnitTest() List<String>{"a", "b", "c", "d", "e"}.getArrayView())); } } - -SLANG_UNIT_TEST("ShortList", shortListUnitTest); diff --git a/tools/slang-test/unit-test-string.cpp b/tools/slang-unit-test/unit-test-string.cpp index e8a33fbbe..629ed2373 100644 --- a/tools/slang-test/unit-test-string.cpp +++ b/tools/slang-unit-test/unit-test-string.cpp @@ -2,7 +2,7 @@ #include "../../source/core/slang-string-util.h" -#include "test-context.h" +#include "tools/unit-test/slang-unit-test.h" //#include <math.h> @@ -112,7 +112,7 @@ static bool _areApproximatelyEqual(double a, double b, double fixedEpsilon = 1e- return _calcULPDistance(a, b) <= ulpsEpsilon; } -static void stringUnitTest() +SLANG_UNIT_TEST(string) { { UnownedStringSlice checkLines[] = { UnownedStringSlice::fromLiteral("") }; @@ -260,5 +260,3 @@ static void stringUnitTest() } } } - -SLANG_UNIT_TEST("String", stringUnitTest); diff --git a/tools/unit-test/slang-unit-test.cpp b/tools/unit-test/slang-unit-test.cpp index a31614c05..28eba3a1f 100644 --- a/tools/unit-test/slang-unit-test.cpp +++ b/tools/unit-test/slang-unit-test.cpp @@ -5,13 +5,14 @@ struct SlangUnitTest { const char* name; - slang::UnitTestFunc func; + UnitTestFunc func; }; -class SlangUnitTestModule : public slang::IUnitTestModule +class SlangUnitTestModule : public IUnitTestModule { public: Slang::List<SlangUnitTest> tests; + ITestReporter* testReporter = nullptr; virtual SlangInt getTestCount() override { @@ -22,10 +23,21 @@ public: return tests[index].name; } - virtual slang::UnitTestFunc getTestFunc(SlangInt index) override + virtual UnitTestFunc getTestFunc(SlangInt index) override { return tests[index].func; } + + virtual void setTestReporter(ITestReporter* reporter) override + { + testReporter = reporter; + } + + virtual void destroy() override + { + tests = decltype(tests)(); + } + }; SlangUnitTestModule* _getTestModule() @@ -34,15 +46,20 @@ SlangUnitTestModule* _getTestModule() return &testModule; } +ITestReporter* getTestReporter() +{ + return _getTestModule()->testReporter; +} + extern "C" { -SLANG_DLL_EXPORT slang::IUnitTestModule* slangUnitTestGetModule() +SLANG_DLL_EXPORT IUnitTestModule* slangUnitTestGetModule() { return _getTestModule(); } } -slang::UnitTestRegisterHelper::UnitTestRegisterHelper(const char* name, UnitTestFunc testFunc) +UnitTestRegisterHelper::UnitTestRegisterHelper(const char* name, UnitTestFunc testFunc) { _getTestModule()->tests.add(SlangUnitTest{ name, testFunc }); } diff --git a/tools/unit-test/slang-unit-test.h b/tools/unit-test/slang-unit-test.h index 7651e6b46..033fab395 100644 --- a/tools/unit-test/slang-unit-test.h +++ b/tools/unit-test/slang-unit-test.h @@ -3,36 +3,73 @@ #include "slang.h" #include "source/core/slang-render-api-util.h" -namespace slang +enum class TestResult { - struct UnitTestContext - { - slang::IGlobalSession* slangGlobalSession; - const char* workDirectory; - ISlangWriter* outputWriter; - Slang::RenderApiFlags enabledApis; - }; - - typedef SlangResult (*UnitTestFunc)(UnitTestContext*); - - class IUnitTestModule - { - public: - virtual SlangInt getTestCount() = 0; - virtual const char* getTestName(SlangInt index) = 0; - virtual UnitTestFunc getTestFunc(SlangInt index) = 0; - }; - - class UnitTestRegisterHelper - { - public: - UnitTestRegisterHelper(const char* name, UnitTestFunc testFunc); - }; - - typedef slang::IUnitTestModule* (*UnitTestGetModuleFunc)(); + // NOTE! Must keep in order such that combine is meaningful. That is larger values are higher precident - and a series of tests that has lots of passes + // and a fail, is still a fail overall. + Ignored, + Pass, + Fail, +}; + +enum class TestMessageType +{ + Info, ///< General info (may not be shown depending on verbosity setting) + TestFailure, ///< Describes how a test failure took place + RunError, ///< Describes an error that caused a test not to actually correctly run +}; + +class ITestReporter +{ +public: + virtual void startTest(const char* testName) = 0; + virtual void addResult(TestResult result) = 0; + virtual void addResultWithLocation(TestResult result, const char* testText, const char* file, int line) = 0; + virtual void addResultWithLocation(bool testSucceeded, const char* testText, const char* file, int line) = 0; + virtual void addExecutionTime(double time) = 0; + virtual void message(TestMessageType type, const char* message) = 0; + virtual void endTest() = 0; +}; + +ITestReporter* getTestReporter(); + +struct UnitTestContext +{ + slang::IGlobalSession* slangGlobalSession; + const char* workDirectory; + Slang::RenderApiFlags enabledApis; +}; + +typedef void (*UnitTestFunc)(UnitTestContext*); + +class IUnitTestModule +{ +public: + virtual SlangInt getTestCount() = 0; + virtual const char* getTestName(SlangInt index) = 0; + virtual UnitTestFunc getTestFunc(SlangInt index) = 0; + virtual void setTestReporter(ITestReporter* reporter) = 0; + virtual void destroy() = 0; +}; + +class UnitTestRegisterHelper +{ +public: + UnitTestRegisterHelper(const char* name, UnitTestFunc testFunc); +}; + +typedef IUnitTestModule* (*UnitTestGetModuleFunc)(); #define SLANG_UNIT_TEST(name) \ - SlangResult name(slang::UnitTestContext* context); \ - slang::UnitTestRegisterHelper _##name##RegisterHelper(#name, name); \ - SlangResult name(slang::UnitTestContext* context) -} +void name(UnitTestContext* unitTestContext); \ +UnitTestRegisterHelper _##name##RegisterHelper(#name, name); \ +void name(UnitTestContext* unitTestContext) + +#define SLANG_CHECK(x) getTestReporter()->addResultWithLocation((x), #x, __FILE__, __LINE__); +#define SLANG_CHECK_ABORT(x) \ + { \ + bool _slang_check_result = (x); \ + getTestReporter()->addResultWithLocation(_slang_check_result, #x, __FILE__, __LINE__); \ + if (!_slang_check_result) return; \ + } +#define SLANG_IGNORE_TEST getTestReporter()->addResult(TestResult::Ignored); return; |
