summaryrefslogtreecommitdiffstats
path: root/gfx/angle/src/tests/third_party/gpu_test_expectations/angle_config.h
blob: 4e46f98ccd68c79f484921bba69f02e186c70597 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//
// Copyright 2015 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// angle_config.h:
//   Helpers for importing the gpu test expectations package from Chrome.
//

#ifndef GPU_TEST_EXPECTATIONS_ANGLE_CONFIG_H_
#define GPU_TEST_EXPECTATIONS_ANGLE_CONFIG_H_

#include <stdint.h>

#include <iostream>

#include "common/debug.h"
#include "common/string_utils.h"

#define DCHECK_EQ(A,B) ASSERT((A) == (B))
#define DCHECK_NE(A,B) ASSERT((A) != (B))
#define DCHECK(X) ASSERT(X)
#define LOG(X) std::cerr

#define GPU_EXPORT

typedef int32_t int32;
typedef uint32_t uint32;
typedef int64_t int64;
typedef uint64_t uint64;

// Shim Chromium's base by importing functions in the base namespace.
namespace base
{
    using angle::kWhitespaceASCII;
    using angle::TRIM_WHITESPACE;
    using angle::KEEP_WHITESPACE;
    using angle::SPLIT_WANT_ALL;
    using angle::SPLIT_WANT_NONEMPTY;
    using angle::SplitString;
    using angle::SplitStringAlongWhitespace;
    using angle::HexStringToUInt;
    using angle::ReadFileToString;

    // StringPrintf is called differently in ANGLE but using cannot change
    // the name of the imported function. Use a define to change the name.
    using ::FormatString;
    #define StringPrintf FormatString
}

// TODO(jmadill): other platforms
// clang-format off
#if defined(_WIN32) || defined(_WIN64)
#    define OS_WIN
#elif defined(ANDROID)
#    define OS_ANDROID
#elif defined(__linux__)
#    define OS_LINUX
#elif defined(__APPLE__)
#    define OS_MACOSX
#else
#    error "Unsupported platform"
#endif
// clang-format on

#endif