Commit 57cdc69c by Jamie Madill

Revert "dEQP: Extend GoogleTest support."

Causing runhooks failures: gyp: Undefined variable deqp_path in C:\b\build\slave\GPU_Win_Builder\build\src\third_party\angle\src\tests\tests.gyp BUG=angleproject:998 BUG=500736 This reverts commit 8edd75d1. Change-Id: I8cd83bb5871dea81abea61554b182825145298e6 Reviewed-on: https://chromium-review.googlesource.com/281208Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
parent d0071dd9
...@@ -6,10 +6,7 @@ ...@@ -6,10 +6,7 @@
'includes': [ 'common_defines.gypi', ], 'includes': [ 'common_defines.gypi', ],
'variables': 'variables':
{ {
'angle_path': '<(DEPTH)', 'angle_path%': '<(DEPTH)',
'deqp_path': '<(angle_path)/src/tests/third_party/deqp',
'libpng_path': '<(angle_path)/src/tests/third_party/libpng',
'zlib_path': '<(angle_path)/src/tests/third_party/zlib',
'angle_build_winrt%': '0', 'angle_build_winrt%': '0',
'angle_build_winphone%': '0', 'angle_build_winphone%': '0',
'angle_build_winrt_app_type_revision%': '8.1', 'angle_build_winrt_app_type_revision%': '8.1',
......
...@@ -63,8 +63,6 @@ bool DebugAnnotationsActive(); ...@@ -63,8 +63,6 @@ bool DebugAnnotationsActive();
#define ANGLE_TRACE_ENABLED #define ANGLE_TRACE_ENABLED
#endif #endif
#define ANGLE_EMPTY_STATEMENT for (;;) break
// A macro to output a trace of a function call and its arguments to the debugging log // A macro to output a trace of a function call and its arguments to the debugging log
#if defined(ANGLE_TRACE_ENABLED) #if defined(ANGLE_TRACE_ENABLED)
#define TRACE(message, ...) gl::trace(true, gl::MESSAGE_TRACE, "trace: %s(%d): " message "\n", __FUNCTION__, __LINE__, ##__VA_ARGS__) #define TRACE(message, ...) gl::trace(true, gl::MESSAGE_TRACE, "trace: %s(%d): " message "\n", __FUNCTION__, __LINE__, ##__VA_ARGS__)
...@@ -103,11 +101,11 @@ bool DebugAnnotationsActive(); ...@@ -103,11 +101,11 @@ bool DebugAnnotationsActive();
// A macro asserting a condition and outputting failures to the debug log // A macro asserting a condition and outputting failures to the debug log
#if !defined(NDEBUG) #if !defined(NDEBUG)
#define ASSERT(expression) { \ #define ASSERT(expression) do { \
if(!(expression)) \ if(!(expression)) \
ERR("\t! Assert failed in %s(%d): "#expression"\n", __FUNCTION__, __LINE__); \ ERR("\t! Assert failed in %s(%d): "#expression"\n", __FUNCTION__, __LINE__); \
assert(expression); \ assert(expression); \
} ANGLE_EMPTY_STATEMENT } while(0)
#define UNUSED_ASSERTION_VARIABLE(variable) #define UNUSED_ASSERTION_VARIABLE(variable)
#else #else
#define ASSERT(expression) (void(0)) #define ASSERT(expression) (void(0))
...@@ -133,20 +131,20 @@ bool DebugAnnotationsActive(); ...@@ -133,20 +131,20 @@ bool DebugAnnotationsActive();
#endif #endif
#if !defined(NDEBUG) #if !defined(NDEBUG)
#define UNIMPLEMENTED() { \ #define UNIMPLEMENTED() do { \
FIXME("\t! Unimplemented: %s(%d)\n", __FUNCTION__, __LINE__); \ FIXME("\t! Unimplemented: %s(%d)\n", __FUNCTION__, __LINE__); \
assert(NOASSERT_UNIMPLEMENTED); \ assert(NOASSERT_UNIMPLEMENTED); \
} ANGLE_EMPTY_STATEMENT } while(0)
#else #else
#define UNIMPLEMENTED() FIXME("\t! Unimplemented: %s(%d)\n", __FUNCTION__, __LINE__) #define UNIMPLEMENTED() FIXME("\t! Unimplemented: %s(%d)\n", __FUNCTION__, __LINE__)
#endif #endif
// A macro for code which is not expected to be reached under valid assumptions // A macro for code which is not expected to be reached under valid assumptions
#if !defined(NDEBUG) #if !defined(NDEBUG)
#define UNREACHABLE() { \ #define UNREACHABLE() do { \
ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \ ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \
assert(false); \ assert(false); \
} ANGLE_EMPTY_STATEMENT } while(0)
#else #else
#define UNREACHABLE() ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__) #define UNREACHABLE() ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__)
#endif #endif
......
...@@ -5,7 +5,10 @@ ...@@ -5,7 +5,10 @@
{ {
'variables': 'variables':
{ {
'delibs_path': '<(deqp_path)/framework/delibs', 'deqp_path': 'third_party/deqp',
'delibs_path': 'third_party/deqp/framework/delibs',
'libpng_path': 'third_party/libpng',
'zlib_path': 'third_party/zlib',
'deqp_msvs_disabled_warnings': 'deqp_msvs_disabled_warnings':
[ [
'4100', '4100',
...@@ -31,18 +34,11 @@ ...@@ -31,18 +34,11 @@
'DEQP_GLES3_RUNTIME_LOAD=1', 'DEQP_GLES3_RUNTIME_LOAD=1',
'DEQP_GLES2_RUNTIME_LOAD=1', 'DEQP_GLES2_RUNTIME_LOAD=1',
'QP_SUPPORT_PNG=1', 'QP_SUPPORT_PNG=1',
'_HAS_EXCEPTIONS=1',
],
'deqp_undefines':
[
'WIN32_LEAN_AND_MEAN',
'NOMINMAX',
'_HAS_EXCEPTIONS=0',
], ],
'deqp_include_dirs': 'deqp_include_dirs':
[ [
'<(libpng_path)', 'third_party/libpng',
'<(zlib_path)', 'third_party/zlib',
'<(delibs_path)/debase', '<(delibs_path)/debase',
'<(delibs_path)/decpp', '<(delibs_path)/decpp',
'<(delibs_path)/depool', '<(delibs_path)/depool',
...@@ -814,11 +810,11 @@ ...@@ -814,11 +810,11 @@
'<(deqp_path)/modules/glshared/glsUniformBlockCase.cpp', '<(deqp_path)/modules/glshared/glsUniformBlockCase.cpp',
'<(deqp_path)/modules/glshared/glsVertexArrayTests.cpp', '<(deqp_path)/modules/glshared/glsVertexArrayTests.cpp',
# TODO(jmadill): other platforms # TODO(jmadill): other platforms
'<(angle_path)/src/tests/deqp_support/tcuANGLEWin32NativeDisplayFactory.cpp', 'deqp_support/tcuANGLEWin32NativeDisplayFactory.cpp',
'<(angle_path)/src/tests/deqp_support/tcuANGLEWin32NativeDisplayFactory.h', 'deqp_support/tcuANGLEWin32NativeDisplayFactory.h',
# TODO(jmadill): integrate with dEQP # TODO(jmadill): integrate with dEQP
'<(angle_path)/src/tests/deqp_support/tcuRandomOrderExecutor.cpp', 'deqp_support/tcuRandomOrderExecutor.cpp',
'<(angle_path)/src/tests/deqp_support/tcuRandomOrderExecutor.h', 'deqp_support/tcuRandomOrderExecutor.h',
], ],
}, },
...@@ -938,26 +934,38 @@ ...@@ -938,26 +934,38 @@
}, },
{ {
'target_name': 'angle_deqp_support', 'target_name': 'angle_deqp_decpp',
'type': 'none', 'type': 'static_library',
'direct_dependent_settings': 'msvs_disabled_warnings':
{ [
'configurations': '<@(deqp_msvs_disabled_warnings)',
{ ],
'Common_Base': 'msvs_settings':
{ {
'msvs_configuration_attributes': 'VCCLCompilerTool':
{ {
# dEQP requires ASCII 'AdditionalOptions':
'CharacterSet': '0', [
'/EHsc', # dEQP requires exceptions
],
},
}, },
'defines': ['<@(deqp_defines)'],
'include_dirs': ['<@(deqp_include_dirs)'],
'direct_dependent_settings':
{
'msvs_disabled_warnings':
[
'<@(deqp_msvs_disabled_warnings)',
],
'msvs_settings': 'msvs_settings':
{ {
'VCCLCompilerTool': 'VCCLCompilerTool':
{ {
# dEQP requires exceptions and RTTI 'AdditionalOptions':
'ExceptionHandling': 1, [
'RuntimeTypeInfo': 'true', '/EHsc', # dEQP requires exceptions
],
}, },
'VCLinkerTool': 'VCLinkerTool':
{ {
...@@ -970,23 +978,9 @@ ...@@ -970,23 +978,9 @@
], ],
}, },
}, },
},
},
'msvs_disabled_warnings':
[
'<@(deqp_msvs_disabled_warnings)',
],
'include_dirs': ['<@(deqp_include_dirs)'], 'include_dirs': ['<@(deqp_include_dirs)'],
'defines': ['<@(deqp_defines)'], 'defines': ['<@(deqp_defines)'],
'defines!': [ '<@(deqp_undefines)' ],
},
}, },
{
'target_name': 'angle_deqp_decpp',
'type': 'static_library',
'dependencies': [ 'angle_deqp_support' ],
'export_dependent_settings': [ 'angle_deqp_support' ],
'sources': 'sources':
[ [
'<(deqp_path)/framework/delibs/decpp/deArrayBuffer.cpp', '<(deqp_path)/framework/delibs/decpp/deArrayBuffer.cpp',
...@@ -1021,14 +1015,10 @@ ...@@ -1021,14 +1015,10 @@
'dependencies': 'dependencies':
[ [
'angle_deqp_decpp', 'angle_deqp_decpp',
'angle_libpng',
'<(angle_path)/src/angle.gyp:libEGL', '<(angle_path)/src/angle.gyp:libEGL',
'<(angle_path)/util/util.gyp:angle_util', '<(angle_path)/util/util.gyp:angle_util',
], ],
'export_dependent_settings':
[
'angle_deqp_decpp',
'<(angle_path)/util/util.gyp:angle_util',
],
'include_dirs': 'include_dirs':
[ [
'<(angle_path)/include', '<(angle_path)/include',
...@@ -1054,19 +1044,13 @@ ...@@ -1054,19 +1044,13 @@
], ],
}, },
}, },
'sources': 'export_dependent_settings':
[ [
'<@(deqp_libtester_sources)', 'angle_deqp_decpp',
], ],
'conditions': 'sources':
[ [
['angle_standalone==1', '<@(deqp_libtester_sources)',
{
'dependencies': [ 'angle_libpng' ],
},
{ # angle_standalone!=1
'dependencies': [ '<(DEPTH)/third_party/libpng/libpng.gyp:libpng' ],
}],
], ],
}, },
...@@ -1076,6 +1060,7 @@ ...@@ -1076,6 +1060,7 @@
'dependencies': 'dependencies':
[ [
'angle_deqp_libtester', 'angle_deqp_libtester',
'<(angle_path)/util/util.gyp:angle_util',
], ],
'defines': 'defines':
[ [
...@@ -1095,6 +1080,7 @@ ...@@ -1095,6 +1080,7 @@
'dependencies': 'dependencies':
[ [
'angle_deqp_libtester', 'angle_deqp_libtester',
'<(angle_path)/util/util.gyp:angle_util',
], ],
'defines': 'defines':
[ [
...@@ -1117,7 +1103,7 @@ ...@@ -1117,7 +1103,7 @@
# app locate the data folder without need # app locate the data folder without need
# for a copy. gyp recursive copies are not # for a copy. gyp recursive copies are not
# implemented properly on Windows. # implemented properly on Windows.
'ANGLE_DEQP_DIR="<(deqp_path)"', 'ANGLE_DEQP_DIR="<(DEPTH)/src/tests/<(deqp_path)"',
], ],
'dependencies': 'dependencies':
[ [
...@@ -1138,7 +1124,7 @@ ...@@ -1138,7 +1124,7 @@
# app locate the data folder without need # app locate the data folder without need
# for a copy. gyp recursive copies are not # for a copy. gyp recursive copies are not
# implemented properly on Windows. # implemented properly on Windows.
'ANGLE_DEQP_DIR="<(deqp_path)"', 'ANGLE_DEQP_DIR="<(DEPTH)/src/tests/<(deqp_path)"',
], ],
'dependencies': 'dependencies':
[ [
...@@ -1158,88 +1144,59 @@ ...@@ -1158,88 +1144,59 @@
[ [
'angle_deqp_libgles2', 'angle_deqp_libgles2',
'angle_test_support', 'angle_test_support',
'<(angle_path)/util/util.gyp:angle_util', 'angle_zlib',
'angle_deqp_decpp',
'<(angle_path)/src/angle.gyp:angle_common',
], ],
'export_dependent_settings': 'export_dependent_settings':
[ [
'angle_test_support', 'angle_test_support',
'<(angle_path)/util/util.gyp:angle_util', 'angle_zlib',
'angle_deqp_decpp',
'<(angle_path)/src/angle.gyp:angle_common',
], ],
'direct_dependent_settings': 'direct_dependent_settings':
{ {
'defines':
[
# Hard-code the path to dEQP. This lets the
# app locate the data folder without need
# for a copy. gyp recursive copies are not
# implemented properly on Windows.
'ANGLE_DEQP_DIR="<(DEPTH)/src/tests/<(deqp_path)"',
],
'include_dirs': 'include_dirs':
[ [
'deqp_support', 'deqp_support',
'third_party/gpu_test_expectations',
], ],
'sources': 'sources':
[ [
'deqp_support/angle_deqp_gtest.cpp', 'deqp_support/angle_deqp_gtest.cpp',
'third_party/gpu_test_expectations/gpu_info.cc',
'third_party/gpu_test_expectations/gpu_info.h',
'third_party/gpu_test_expectations/gpu_test_config.cc',
'third_party/gpu_test_expectations/gpu_test_config.h',
'third_party/gpu_test_expectations/gpu_test_expectations_parser.cc',
'third_party/gpu_test_expectations/gpu_test_expectations_parser.h',
],
'defines':
[
# Re-define the missing Windows macros
'<@(deqp_undefines)',
],
'copies':
[
{
'destination': '<(PRODUCT_DIR)/deqp_support',
'files':
[
'deqp_support/dEQP-GLES2-cases.txt.gz',
'deqp_support/dEQP-GLES3-cases.txt.gz',
'deqp_support/deqp_test_expectations.txt',
],
},
], ],
'msvs_settings':
{
'VCLinkerTool':
{
'AdditionalDependencies':
[
'user32.lib',
],
},
}, },
}, },
'conditions':
[
['angle_standalone==1',
{
'dependencies': [ 'angle_zlib' ],
'export_dependent_settings': [ 'angle_zlib' ],
},
{ # angle_standalone!=1
'dependencies': [ '<(zlib_path)/zlib.gyp:zlib' ],
'export_dependent_settings': [ '<(zlib_path)/zlib.gyp:zlib' ],
}],
],
},
{ {
'target_name': 'angle_deqp_googletest', 'target_name': 'angle_deqp_googletest',
'type': 'executable', 'type': 'executable',
'includes': [ '../../build/common_defines.gypi', ],
'dependencies': 'dependencies':
[ [
'angle_deqp_gtest_support', 'angle_deqp_gtest_support',
], ],
'include_dirs':
[
'third_party/gpu_test_expectations',
],
'sources': 'sources':
[ [
'deqp_support/angle_deqp_gtest_main.cpp', 'deqp_support/angle_deqp_gtest_main.cpp',
'third_party/gpu_test_expectations/gpu_info.cc',
'third_party/gpu_test_expectations/gpu_info.h',
'third_party/gpu_test_expectations/gpu_test_config.cc',
'third_party/gpu_test_expectations/gpu_test_config.h',
'third_party/gpu_test_expectations/gpu_test_expectations_parser.cc',
'third_party/gpu_test_expectations/gpu_test_expectations_parser.h',
], ],
}, },
], # targets ], # targets
......
...@@ -7,16 +7,17 @@ ...@@ -7,16 +7,17 @@
// dEQP and GoogleTest integration logic. Calls through to the random // dEQP and GoogleTest integration logic. Calls through to the random
// order executor. // order executor.
#include <gtest/gtest.h>
#include <stdint.h> #include <stdint.h>
#include <zlib.h> #include <zlib.h>
#include <gtest/gtest.h> #include <algorithm>
#include <fstream>
#include "angle_deqp_libtester.h" #include "angle_deqp_libtester.h"
#include "common/angleutils.h" #include "common/angleutils.h"
#include "common/debug.h" #include "common/debug.h"
#include "gpu_test_expectations_parser.h" #include "gpu_test_expectations_parser.h"
#include "system_utils.h"
namespace namespace
{ {
...@@ -24,7 +25,7 @@ namespace ...@@ -24,7 +25,7 @@ namespace
class dEQPCaseList class dEQPCaseList
{ {
public: public:
dEQPCaseList(const std::string &caseListPath, const std::string &testExpectationsPath); dEQPCaseList(const char *caseListPath, const char *testExpectationsPath);
struct CaseInfo struct CaseInfo
{ {
...@@ -72,10 +73,8 @@ dEQPCaseList *dEQPCaseList::GetInstance() ...@@ -72,10 +73,8 @@ dEQPCaseList *dEQPCaseList::GetInstance()
{ {
if (mInstance == nullptr) if (mInstance == nullptr)
{ {
std::string exeDir = angle::GetExecutableDirectory(); mInstance = new dEQPCaseList("deqp_support/dEQP-GLES2-cases.txt.gz",
std::string caseListPath = exeDir + "/deqp_support/dEQP-GLES2-cases.txt.gz"; "deqp_support/deqp_test_expectations.txt");
std::string testExpectationsPath = exeDir + "/deqp_support/deqp_test_expectations.txt";
mInstance = new dEQPCaseList(caseListPath, testExpectationsPath);
} }
return mInstance; return mInstance;
} }
...@@ -87,9 +86,9 @@ void dEQPCaseList::FreeInstance() ...@@ -87,9 +86,9 @@ void dEQPCaseList::FreeInstance()
SafeDelete(mInstance); SafeDelete(mInstance);
} }
dEQPCaseList::dEQPCaseList(const std::string &caseListPath, const std::string &testExpectationsPath) dEQPCaseList::dEQPCaseList(const char *caseListPath, const char *testExpectationsPath)
{ {
if (!mTestExpectationsParser.LoadTestExpectationsFromFile(testExpectationsPath)) if (!mTestExpectationsParser.LoadTestExpectationsFromFile(std::string(testExpectationsPath)))
{ {
std::cerr << "Failed to load test expectations." << std::endl; std::cerr << "Failed to load test expectations." << std::endl;
for (const auto &message : mTestExpectationsParser.GetErrorMessages()) for (const auto &message : mTestExpectationsParser.GetErrorMessages())
...@@ -108,7 +107,7 @@ dEQPCaseList::dEQPCaseList(const std::string &caseListPath, const std::string &t ...@@ -108,7 +107,7 @@ dEQPCaseList::dEQPCaseList(const std::string &caseListPath, const std::string &t
std::stringstream caseListStream; std::stringstream caseListStream;
std::vector<char> buf(1024 * 1024 * 16); std::vector<char> buf(1024 * 1024 * 16);
gzFile *fi = static_cast<gzFile *>(gzopen(caseListPath.c_str(), "rb")); gzFile *fi = static_cast<gzFile *>(gzopen(caseListPath, "rb"));
if (fi == nullptr) if (fi == nullptr)
{ {
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
deqp_libtester_init_platform(argc, argv, ANGLE_DEQP_DIR "/data");
testing::InitGoogleTest(&argc, argv); testing::InitGoogleTest(&argc, argv);
int rt = RUN_ALL_TESTS(); int rt = RUN_ALL_TESTS();
deqp_libtester_shutdown_platform(); deqp_libtester_shutdown_platform();
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
// Exported to the tester app. // Exported to the tester app.
ANGLE_LIBTESTER_EXPORT int deqp_libtester_main(int argc, const char *argv[]); ANGLE_LIBTESTER_EXPORT int deqp_libtester_main(int argc, const char *argv[]);
ANGLE_LIBTESTER_EXPORT void deqp_libtester_init_platform(int argc, char **argv, const char *deqpDataDir);
ANGLE_LIBTESTER_EXPORT void deqp_libtester_shutdown_platform(); ANGLE_LIBTESTER_EXPORT void deqp_libtester_shutdown_platform();
ANGLE_LIBTESTER_EXPORT bool deqp_libtester_run(const char *caseName); ANGLE_LIBTESTER_EXPORT bool deqp_libtester_run(const char *caseName);
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include <iostream> #include <iostream>
#include "angle_deqp_libtester.h" #include "angle_deqp_libtester.h"
#include "common/angleutils.h"
#include "deMath.h" #include "deMath.h"
#include "deUniquePtr.hpp" #include "deUniquePtr.hpp"
#include "tcuApp.hpp" #include "tcuApp.hpp"
...@@ -20,10 +19,6 @@ ...@@ -20,10 +19,6 @@
#include "tcuResource.hpp" #include "tcuResource.hpp"
#include "tcuTestLog.hpp" #include "tcuTestLog.hpp"
#if (DE_OS == DE_OS_WIN32)
#include <Windows.h>
#endif
// Located in tcuMain.cc in dEQP's sources. // Located in tcuMain.cc in dEQP's sources.
int main(int argc, const char* argv[]); int main(int argc, const char* argv[]);
tcu::Platform *createPlatform(); tcu::Platform *createPlatform();
...@@ -39,48 +34,15 @@ tcu::TestContext *g_testCtx = nullptr; ...@@ -39,48 +34,15 @@ tcu::TestContext *g_testCtx = nullptr;
tcu::TestPackageRoot *g_root = nullptr; tcu::TestPackageRoot *g_root = nullptr;
tcu::RandomOrderExecutor *g_executor = nullptr; tcu::RandomOrderExecutor *g_executor = nullptr;
const char *g_dEQPDataSearchDirs[] =
{
"data",
"third_party/deqp/data",
"../third_party/deqp/src/data",
"deqp_support/data",
"third_party/deqp/src/data",
"../../third_party/deqp/src/data"
};
// TODO(jmadill): upstream to dEQP?
#if (DE_OS == DE_OS_WIN32)
deBool deIsDir(const char *filename)
{
DWORD attribs = GetFileAttributesA(filename);
return (attribs != INVALID_FILE_ATTRIBUTES) &&
((attribs & FILE_ATTRIBUTE_DIRECTORY) > 0);
} }
#else
#error TODO(jmadill): support other platforms
//deBool deIsDir(const char *filename)
//{
// struct stat st;
// int result = stat(filename, &st);
// return result == 0 && ((st.st_mode & S_IFDIR) == S_IFDIR);
//}
#endif
const char *FindDataDir() // Exported to the tester app.
ANGLE_LIBTESTER_EXPORT int deqp_libtester_main(int argc, const char *argv[])
{ {
for (size_t dirIndex = 0; dirIndex < ArraySize(g_dEQPDataSearchDirs); ++dirIndex) return main(argc, argv);
{
if (deIsDir(g_dEQPDataSearchDirs[dirIndex]))
{
return g_dEQPDataSearchDirs[dirIndex];
}
}
return nullptr;
} }
bool InitPlatform() ANGLE_LIBTESTER_EXPORT void deqp_libtester_init_platform(int argc, char **argv, const char *deqpDataDir)
{ {
try try
{ {
...@@ -92,21 +54,11 @@ bool InitPlatform() ...@@ -92,21 +54,11 @@ bool InitPlatform()
if (!deSetRoundingMode(DE_ROUNDINGMODE_TO_NEAREST)) if (!deSetRoundingMode(DE_ROUNDINGMODE_TO_NEAREST))
{ {
std::cout << "Failed to set floating point rounding mode." << std::endl; throw std::runtime_error("Failed to set floating point rounding mode.");
return false;
}
const char *deqpDataDir = FindDataDir();
if (deqpDataDir == nullptr)
{
std::cout << "Failed to find dEQP data directory." << std::endl;
return false;
} }
// TODO(jmadill): filter arguments // TODO(jmadill): filter arguments
const char *emptyString = ""; g_cmdLine = new tcu::CommandLine(1, argv);
g_cmdLine = new tcu::CommandLine(1, &emptyString);
g_archive = new tcu::DirArchive(deqpDataDir); g_archive = new tcu::DirArchive(deqpDataDir);
g_log = new tcu::TestLog(g_cmdLine->getLogFileName(), g_cmdLine->getLogFlags()); g_log = new tcu::TestLog(g_cmdLine->getLogFileName(), g_cmdLine->getLogFlags());
g_testCtx = new tcu::TestContext(*g_platform, *g_archive, *g_log, *g_cmdLine, DE_NULL); g_testCtx = new tcu::TestContext(*g_platform, *g_archive, *g_log, *g_cmdLine, DE_NULL);
...@@ -116,18 +68,7 @@ bool InitPlatform() ...@@ -116,18 +68,7 @@ bool InitPlatform()
catch (const std::exception& e) catch (const std::exception& e)
{ {
tcu::die("%s", e.what()); tcu::die("%s", e.what());
return false;
} }
return true;
}
} // anonymous namespace
// Exported to the tester app.
ANGLE_LIBTESTER_EXPORT int deqp_libtester_main(int argc, const char *argv[])
{
return main(argc, argv);
} }
ANGLE_LIBTESTER_EXPORT void deqp_libtester_shutdown_platform() ANGLE_LIBTESTER_EXPORT void deqp_libtester_shutdown_platform()
...@@ -143,9 +84,9 @@ ANGLE_LIBTESTER_EXPORT void deqp_libtester_shutdown_platform() ...@@ -143,9 +84,9 @@ ANGLE_LIBTESTER_EXPORT void deqp_libtester_shutdown_platform()
ANGLE_LIBTESTER_EXPORT bool deqp_libtester_run(const char *caseName) ANGLE_LIBTESTER_EXPORT bool deqp_libtester_run(const char *caseName)
{ {
if (g_platform == nullptr && !InitPlatform()) if (!g_platform)
{ {
tcu::die("Failed to initialize platform."); return false;
} }
try try
......
diff --git a/src/tests/third_party/gpu_test_expectations/angle_config.h b/src/tests/third_party/gpu_test_expectations/angle_config.h diff --git a/angle_config.h b/angle_config.h
new file mode 100644 new file mode 100644
index 0000000..7643346 index 0000000..0d43371
--- /dev/null --- /dev/null
+++ b/src/tests/third_party/gpu_test_expectations/angle_config.h +++ b/angle_config.h
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
+// +//
+// Copyright 2015 The ANGLE Project Authors. All rights reserved. +// Copyright 2015 The ANGLE Project Authors. All rights reserved.
...@@ -25,7 +25,7 @@ index 0000000..7643346 ...@@ -25,7 +25,7 @@ index 0000000..7643346
+ +
+#define DCHECK_EQ(A,B) ASSERT((A) == (B)) +#define DCHECK_EQ(A,B) ASSERT((A) == (B))
+#define DCHECK_NE(A,B) ASSERT((A) != (B)) +#define DCHECK_NE(A,B) ASSERT((A) != (B))
+#define DCHECK(X) ASSERT(X) +#define DCHECK ASSERT
+#define LOG(X) std::cerr +#define LOG(X) std::cerr
+#define StringPrintf FormatString +#define StringPrintf FormatString
+ +
...@@ -43,10 +43,10 @@ index 0000000..7643346 ...@@ -43,10 +43,10 @@ index 0000000..7643346
+#define OS_WIN +#define OS_WIN
+ +
+#endif +#endif
diff --git a/src/tests/third_party/gpu_test_expectations/gpu_info.cc b/src/tests/third_party/gpu_test_expectations/gpu_info.cc diff --git a/gpu_info.cc b/gpu_info.cc
index 85d26fb..c8e2988 100644 index 85d26fb..c8e2988 100644
--- a/src/tests/third_party/gpu_test_expectations/gpu_info.cc --- a/gpu_info.cc
+++ b/src/tests/third_party/gpu_test_expectations/gpu_info.cc +++ b/gpu_info.cc
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -158,10 +158,10 @@ index 85d26fb..c8e2988 100644 ...@@ -158,10 +158,10 @@ index 85d26fb..c8e2988 100644
enumerator->EndAuxAttributes(); enumerator->EndAuxAttributes();
} }
diff --git a/src/tests/third_party/gpu_test_expectations/gpu_info.h b/src/tests/third_party/gpu_test_expectations/gpu_info.h diff --git a/gpu_info.h b/gpu_info.h
index f377698..35e791e 100644 index f377698..35e791e 100644
--- a/src/tests/third_party/gpu_test_expectations/gpu_info.h --- a/gpu_info.h
+++ b/src/tests/third_party/gpu_test_expectations/gpu_info.h +++ b/gpu_info.h
@@ -11,13 +11,7 @@ @@ -11,13 +11,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
...@@ -252,10 +252,10 @@ index f377698..35e791e 100644 ...@@ -252,10 +252,10 @@ index f377698..35e791e 100644
// Markers indicating that a GPUDevice is being described. // Markers indicating that a GPUDevice is being described.
virtual void BeginGPUDevice() = 0; virtual void BeginGPUDevice() = 0;
diff --git a/src/tests/third_party/gpu_test_expectations/gpu_test_config.cc b/src/tests/third_party/gpu_test_expectations/gpu_test_config.cc diff --git a/gpu_test_config.cc b/gpu_test_config.cc
index c062c4d..d9b0da2 100644 index c062c4d..d2c6b5a 100644
--- a/src/tests/third_party/gpu_test_expectations/gpu_test_config.cc --- a/gpu_test_config.cc
+++ b/src/tests/third_party/gpu_test_expectations/gpu_test_config.cc +++ b/gpu_test_config.cc
@@ -2,24 +2,73 @@ @@ -2,24 +2,73 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -320,10 +320,10 @@ index c062c4d..d9b0da2 100644 ...@@ -320,10 +320,10 @@ index c062c4d..d9b0da2 100644
+ *device_id = 0; + *device_id = 0;
+ +
+ // Taken from http://developer.nvidia.com/object/device_ids.html + // Taken from http://developer.nvidia.com/object/device_ids.html
+ DISPLAY_DEVICEA dd; + DISPLAY_DEVICE dd;
+ dd.cb = sizeof(DISPLAY_DEVICEA); + dd.cb = sizeof(DISPLAY_DEVICE);
+ std::string id; + std::string id;
+ for (int i = 0; EnumDisplayDevicesA(NULL, i, &dd, 0); ++i) { + for (int i = 0; EnumDisplayDevices(NULL, i, &dd, 0); ++i) {
+ if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) { + if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) {
+ id = dd.DeviceID; + id = dd.DeviceID;
+ break; + break;
...@@ -363,10 +363,10 @@ index c062c4d..d9b0da2 100644 ...@@ -363,10 +363,10 @@ index c062c4d..d9b0da2 100644
- -
} // namespace gpu } // namespace gpu
diff --git a/src/tests/third_party/gpu_test_expectations/gpu_test_config.h b/src/tests/third_party/gpu_test_expectations/gpu_test_config.h diff --git a/gpu_test_config.h b/gpu_test_config.h
index 8b184d3..e628886 100644 index 8b184d3..e628886 100644
--- a/src/tests/third_party/gpu_test_expectations/gpu_test_config.h --- a/gpu_test_config.h
+++ b/src/tests/third_party/gpu_test_expectations/gpu_test_config.h +++ b/gpu_test_config.h
@@ -8,9 +8,7 @@ @@ -8,9 +8,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
...@@ -388,10 +388,10 @@ index 8b184d3..e628886 100644 ...@@ -388,10 +388,10 @@ index 8b184d3..e628886 100644
}; };
} // namespace gpu } // namespace gpu
diff --git a/src/tests/third_party/gpu_test_expectations/gpu_test_expectations_parser.cc b/src/tests/third_party/gpu_test_expectations/gpu_test_expectations_parser.cc diff --git a/gpu_test_expectations_parser.cc b/gpu_test_expectations_parser.cc
index 8b3584a..d6ba5c3 100644 index 8b3584a..092cf9b 100644
--- a/src/tests/third_party/gpu_test_expectations/gpu_test_expectations_parser.cc --- a/gpu_test_expectations_parser.cc
+++ b/src/tests/third_party/gpu_test_expectations/gpu_test_expectations_parser.cc +++ b/gpu_test_expectations_parser.cc
@@ -2,14 +2,35 @@ @@ -2,14 +2,35 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -435,21 +435,6 @@ index 8b3584a..d6ba5c3 100644 ...@@ -435,21 +435,6 @@ index 8b3584a..d6ba5c3 100644
namespace gpu { namespace gpu {
@@ -161,10 +182,10 @@ bool NamesMatching(const std::string& ref, const std::string& test_name) {
GPUTestExpectationsParser::GPUTestExpectationsParser() {
// Some sanity check.
- DCHECK_EQ(static_cast<unsigned int>(kNumberOfExactMatchTokens),
- sizeof(kTokenData) / sizeof(kTokenData[0]));
- DCHECK_EQ(static_cast<unsigned int>(kNumberOfErrors),
- sizeof(kErrorMessage) / sizeof(kErrorMessage[0]));
+ static_assert(static_cast<unsigned int>(kNumberOfExactMatchTokens) ==
+ sizeof(kTokenData) / sizeof(kTokenData[0]), "sanity check");
+ static_assert(static_cast<unsigned int>(kNumberOfErrors) ==
+ sizeof(kErrorMessage) / sizeof(kErrorMessage[0]), "sanity check");
}
GPUTestExpectationsParser::~GPUTestExpectationsParser() {
@@ -189,8 +210,8 @@ bool GPUTestExpectationsParser::LoadTestExpectations(const std::string& data) { @@ -189,8 +210,8 @@ bool GPUTestExpectationsParser::LoadTestExpectations(const std::string& data) {
return rt; return rt;
} }
...@@ -461,28 +446,10 @@ index 8b3584a..d6ba5c3 100644 ...@@ -461,28 +446,10 @@ index 8b3584a..d6ba5c3 100644
entries_.clear(); entries_.clear();
error_messages_.clear(); error_messages_.clear();
@@ -370,7 +391,7 @@ bool GPUTestExpectationsParser::ParseLine( diff --git a/gpu_test_expectations_parser.h b/gpu_test_expectations_parser.h
stage++;
break;
default:
- DCHECK(false);
+ UNREACHABLE();
break;
}
}
@@ -446,7 +467,7 @@ bool GPUTestExpectationsParser::UpdateTestConfig(
config->build_type() | kTokenData[token].flag);
break;
default:
- DCHECK(false);
+ UNREACHABLE();
break;
}
return true;
diff --git a/src/tests/third_party/gpu_test_expectations/gpu_test_expectations_parser.h b/src/tests/third_party/gpu_test_expectations/gpu_test_expectations_parser.h
index a69f7e9..a112700 100644 index a69f7e9..a112700 100644
--- a/src/tests/third_party/gpu_test_expectations/gpu_test_expectations_parser.h --- a/gpu_test_expectations_parser.h
+++ b/src/tests/third_party/gpu_test_expectations/gpu_test_expectations_parser.h +++ b/gpu_test_expectations_parser.h
@@ -8,10 +8,8 @@ @@ -8,10 +8,8 @@
#include <string> #include <string>
#include <vector> #include <vector>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#define DCHECK_EQ(A,B) ASSERT((A) == (B)) #define DCHECK_EQ(A,B) ASSERT((A) == (B))
#define DCHECK_NE(A,B) ASSERT((A) != (B)) #define DCHECK_NE(A,B) ASSERT((A) != (B))
#define DCHECK(X) ASSERT(X) #define DCHECK ASSERT
#define LOG(X) std::cerr #define LOG(X) std::cerr
#define StringPrintf FormatString #define StringPrintf FormatString
......
...@@ -51,10 +51,10 @@ CollectInfoResult CollectGpuID(uint32* vendor_id, uint32* device_id) { ...@@ -51,10 +51,10 @@ CollectInfoResult CollectGpuID(uint32* vendor_id, uint32* device_id) {
*device_id = 0; *device_id = 0;
// Taken from http://developer.nvidia.com/object/device_ids.html // Taken from http://developer.nvidia.com/object/device_ids.html
DISPLAY_DEVICEA dd; DISPLAY_DEVICE dd;
dd.cb = sizeof(DISPLAY_DEVICEA); dd.cb = sizeof(DISPLAY_DEVICE);
std::string id; std::string id;
for (int i = 0; EnumDisplayDevicesA(NULL, i, &dd, 0); ++i) { for (int i = 0; EnumDisplayDevices(NULL, i, &dd, 0); ++i) {
if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) { if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) {
id = dd.DeviceID; id = dd.DeviceID;
break; break;
......
...@@ -182,10 +182,10 @@ bool NamesMatching(const std::string& ref, const std::string& test_name) { ...@@ -182,10 +182,10 @@ bool NamesMatching(const std::string& ref, const std::string& test_name) {
GPUTestExpectationsParser::GPUTestExpectationsParser() { GPUTestExpectationsParser::GPUTestExpectationsParser() {
// Some sanity check. // Some sanity check.
static_assert(static_cast<unsigned int>(kNumberOfExactMatchTokens) == DCHECK_EQ(static_cast<unsigned int>(kNumberOfExactMatchTokens),
sizeof(kTokenData) / sizeof(kTokenData[0]), "sanity check"); sizeof(kTokenData) / sizeof(kTokenData[0]));
static_assert(static_cast<unsigned int>(kNumberOfErrors) == DCHECK_EQ(static_cast<unsigned int>(kNumberOfErrors),
sizeof(kErrorMessage) / sizeof(kErrorMessage[0]), "sanity check"); sizeof(kErrorMessage) / sizeof(kErrorMessage[0]));
} }
GPUTestExpectationsParser::~GPUTestExpectationsParser() { GPUTestExpectationsParser::~GPUTestExpectationsParser() {
...@@ -391,7 +391,7 @@ bool GPUTestExpectationsParser::ParseLine( ...@@ -391,7 +391,7 @@ bool GPUTestExpectationsParser::ParseLine(
stage++; stage++;
break; break;
default: default:
UNREACHABLE(); DCHECK(false);
break; break;
} }
} }
...@@ -467,7 +467,7 @@ bool GPUTestExpectationsParser::UpdateTestConfig( ...@@ -467,7 +467,7 @@ bool GPUTestExpectationsParser::UpdateTestConfig(
config->build_type() | kTokenData[token].flag); config->build_type() | kTokenData[token].flag);
break; break;
default: default:
UNREACHABLE(); DCHECK(false);
break; break;
} }
return true; return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment