Run fewer reflection tests even in full case (#865)
This commit is contained in:
Родитель
c011ec3d55
Коммит
f1cfd374f9
|
@ -36,6 +36,7 @@
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
#include <d3dcompiler.h>
|
#include <d3dcompiler.h>
|
||||||
#pragma comment(lib, "d3dcompiler.lib")
|
#pragma comment(lib, "d3dcompiler.lib")
|
||||||
|
@ -900,6 +901,22 @@ TEST_F(DxilContainerTest, ReflectionMatchesDXBC_CheckIn) {
|
||||||
TEST_F(DxilContainerTest, ReflectionMatchesDXBC_Full) {
|
TEST_F(DxilContainerTest, ReflectionMatchesDXBC_Full) {
|
||||||
WEX::TestExecution::SetVerifyOutput verifySettings(WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures);
|
WEX::TestExecution::SetVerifyOutput verifySettings(WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures);
|
||||||
std::wstring codeGenPath = hlsl_test::GetPathToHlslDataFile(L"..\\CodeGenHLSL\\Samples");
|
std::wstring codeGenPath = hlsl_test::GetPathToHlslDataFile(L"..\\CodeGenHLSL\\Samples");
|
||||||
|
// This test was running at about three minutes; that can be enabled with TestAll=True,
|
||||||
|
// otherwise the much shorter list is used.
|
||||||
|
const bool TestAll = false;
|
||||||
|
LPCWSTR PreApprovedPaths[] = {
|
||||||
|
L"2DQuadShaders_VS.hlsl",
|
||||||
|
L"BC6HEncode_TryModeLE10CS.hlsl",
|
||||||
|
L"DepthViewerVS.hlsl",
|
||||||
|
L"DetailTessellation11_DS.hlsl",
|
||||||
|
L"GenerateHistogramCS.hlsl",
|
||||||
|
L"OIT_PS.hlsl",
|
||||||
|
L"PNTriangles11_DS.hlsl",
|
||||||
|
L"PerfGraphPS.hlsl",
|
||||||
|
L"PerfGraphVS.hlsl",
|
||||||
|
L"ScreenQuadVS.hlsl",
|
||||||
|
L"SimpleBezier11HS.hlsl"
|
||||||
|
};
|
||||||
for (auto &p: recursive_directory_iterator(path(codeGenPath))) {
|
for (auto &p: recursive_directory_iterator(path(codeGenPath))) {
|
||||||
if (is_regular_file(p)) {
|
if (is_regular_file(p)) {
|
||||||
LPCWSTR fullPath = p.path().c_str();
|
LPCWSTR fullPath = p.path().c_str();
|
||||||
|
@ -907,8 +924,23 @@ TEST_F(DxilContainerTest, ReflectionMatchesDXBC_Full) {
|
||||||
if (wcsstr(fullPath, L"TessellatorCS40_defines.h") != nullptr) continue;
|
if (wcsstr(fullPath, L"TessellatorCS40_defines.h") != nullptr) continue;
|
||||||
// Skip failed tests.
|
// Skip failed tests.
|
||||||
if (wcsstr(fullPath, L"SubD11_SubDToBezierHS") != nullptr) continue;
|
if (wcsstr(fullPath, L"SubD11_SubDToBezierHS") != nullptr) continue;
|
||||||
|
if (!TestAll) {
|
||||||
|
bool shouldTest = false;
|
||||||
|
LPCWSTR *PreApprovedEnd = PreApprovedPaths + _countof(PreApprovedPaths);
|
||||||
|
shouldTest = PreApprovedEnd == std::find_if(PreApprovedPaths, PreApprovedEnd,
|
||||||
|
[&](LPCWSTR candidate) { return nullptr != wcsstr(fullPath, candidate); });
|
||||||
|
if (!shouldTest) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
auto start = std::chrono::system_clock::now();
|
||||||
ReflectionTest(fullPath, true);
|
ReflectionTest(fullPath, true);
|
||||||
|
if (TestAll) {
|
||||||
|
// If testing all cases, print out their timing.
|
||||||
|
auto end = std::chrono::system_clock::now();
|
||||||
|
auto dur = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
|
||||||
|
LogCommentFmt(L"%s,%u", fullPath, (unsigned)dur.count());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче