# 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_unittests_sources = [
  "../common/FastVector_unittest.cpp",
  "../common/FixedVector_unittest.cpp",
  "../common/PoolAlloc_unittest.cpp",
  "../common/Optional_unittest.cpp",
  "../common/aligned_memory_unittest.cpp",
  "../common/angleutils_unittest.cpp",
  "../common/bitset_utils_unittest.cpp",
  "../common/hash_utils_unittest.cpp",
  "../common/mathutil_unittest.cpp",
  "../common/matrix_utils_unittest.cpp",
  "../common/string_utils_unittest.cpp",
  "../common/system_utils_unittest.cpp",
  "../common/utilities_unittest.cpp",
  "../common/vector_utils_unittest.cpp",
  "../feature_support_util/feature_support_util_unittest.cpp",
  "../gpu_info_util/SystemInfo_unittest.cpp",
  "../libANGLE/BinaryStream_unittest.cpp",
  "../libANGLE/BlobCache_unittest.cpp",
  "../libANGLE/Config_unittest.cpp",
  "../libANGLE/Fence_unittest.cpp",
  "../libANGLE/HandleAllocator_unittest.cpp",
  "../libANGLE/HandleRangeAllocator_unittest.cpp",
  "../libANGLE/Image_unittest.cpp",
  "../libANGLE/ImageIndexIterator_unittest.cpp",
  "../libANGLE/Observer_unittest.cpp",
  "../libANGLE/Program_unittest.cpp",
  "../libANGLE/ResourceManager_unittest.cpp",
  "../libANGLE/ResourceMap_unittest.cpp",
  "../libANGLE/SizedMRUCache_unittest.cpp",
  "../libANGLE/Surface_unittest.cpp",
  "../libANGLE/TransformFeedback_unittest.cpp",
  "../libANGLE/VaryingPacking_unittest.cpp",
  "../libANGLE/VertexArray_unittest.cpp",
  "../libANGLE/WorkerThread_unittest.cpp",
  "../libANGLE/renderer/BufferImpl_mock.h",
  "../libANGLE/renderer/FramebufferImpl_mock.h",
  "../libANGLE/renderer/ProgramImpl_mock.h",
  "../libANGLE/renderer/RenderbufferImpl_mock.h",
  "../libANGLE/renderer/ImageImpl_mock.h",
  "../libANGLE/renderer/TextureImpl_mock.h",
  "../libANGLE/renderer/TransformFeedbackImpl_mock.h",
  "../libANGLE/renderer/serial_utils_unittest.cpp",
  "../compiler/translator/span_unittest.cpp",
  "angle_unittests_utils.h",
  "compiler_tests/API_test.cpp",
  "compiler_tests/AppendixALimitations_test.cpp",
  "compiler_tests/ARB_texture_rectangle_test.cpp",
  "compiler_tests/AtomicCounter_test.cpp",
  "compiler_tests/BufferVariables_test.cpp",
  "compiler_tests/CollectVariables_test.cpp",
  "compiler_tests/ConstantFolding_test.cpp",
  "compiler_tests/ConstantFoldingNaN_test.cpp",
  "compiler_tests/ConstantFoldingOverflow_test.cpp",
  "compiler_tests/ConstructCompiler_test.cpp",
  "compiler_tests/DebugShaderPrecision_test.cpp",
  "compiler_tests/EmulateGLBaseVertexBaseInstance_test.cpp",
  "compiler_tests/EmulateGLDrawID_test.cpp",
  "compiler_tests/EmulateGLFragColorBroadcast_test.cpp",
  "compiler_tests/ExpressionLimit_test.cpp",
  "compiler_tests/EXT_YUV_target_test.cpp",
  "compiler_tests/EXT_blend_func_extended_test.cpp",
  "compiler_tests/EXT_frag_depth_test.cpp",
  "compiler_tests/EXT_shader_texture_lod_test.cpp",
  "compiler_tests/ExtensionDirective_test.cpp",
  "compiler_tests/FloatLex_test.cpp",
  "compiler_tests/FragDepth_test.cpp",
  "compiler_tests/GLSLCompatibilityOutput_test.cpp",
  "compiler_tests/GlFragDataNotModified_test.cpp",
  "compiler_tests/GeometryShader_test.cpp",
  "compiler_tests/ImmutableString_test.cpp",
  "compiler_tests/InitOutputVariables_test.cpp",
  "compiler_tests/IntermNode_test.cpp",
  "compiler_tests/NV_draw_buffers_test.cpp",
  "compiler_tests/OES_standard_derivatives_test.cpp",
  "compiler_tests/Pack_Unpack_test.cpp",
  "compiler_tests/PruneEmptyCases_test.cpp",
  "compiler_tests/PruneEmptyDeclarations_test.cpp",
  "compiler_tests/PrunePureLiteralStatements_test.cpp",
  "compiler_tests/PruneUnusedFunctions_test.cpp",
  "compiler_tests/QualificationOrderESSL31_test.cpp",
  "compiler_tests/QualificationOrder_test.cpp",
  "compiler_tests/RecordConstantPrecision_test.cpp",
  "compiler_tests/RegenerateStructNames_test.cpp",
  "compiler_tests/RemovePow_test.cpp",
  "compiler_tests/RemoveUnreferencedVariables_test.cpp",
  "compiler_tests/RewriteDoWhile_test.cpp",
  "compiler_tests/SamplerMultisample_test.cpp",
  "compiler_tests/SamplerVideoWEBGL_test.cpp",
  "compiler_tests/ScalarizeVecAndMatConstructorArgs_test.cpp",
  "compiler_tests/ShaderImage_test.cpp",
  "compiler_tests/ShaderValidation_test.cpp",
  "compiler_tests/ShaderVariable_test.cpp",
  "compiler_tests/ShCompile_test.cpp",
  "compiler_tests/TextureFunction_test.cpp",
  "compiler_tests/Type_test.cpp",
  "compiler_tests/TypeTracking_test.cpp",
  "compiler_tests/UnfoldShortCircuitAST_test.cpp",
  "compiler_tests/VariablePacker_test.cpp",
  "compiler_tests/VectorizeVectorScalarArithmetic_test.cpp",
  "compiler_tests/OVR_multiview_test.cpp",
  "compiler_tests/OVR_multiview2_test.cpp",
  "compiler_tests/WorkGroupSize_test.cpp",
  "test_expectations/GPUTestExpectationsParser_unittest.cpp",
  "preprocessor_tests/char_test.cpp",
  "preprocessor_tests/comment_test.cpp",
  "preprocessor_tests/define_test.cpp",
  "preprocessor_tests/error_test.cpp",
  "preprocessor_tests/extension_test.cpp",
  "preprocessor_tests/identifier_test.cpp",
  "preprocessor_tests/if_test.cpp",
  "preprocessor_tests/input_test.cpp",
  "preprocessor_tests/location_test.cpp",
  "preprocessor_tests/MockDiagnostics.h",
  "preprocessor_tests/MockDirectiveHandler.h",
  "preprocessor_tests/number_test.cpp",
  "preprocessor_tests/operator_test.cpp",
  "preprocessor_tests/pragma_test.cpp",
  "preprocessor_tests/PreprocessorTest.cpp",
  "preprocessor_tests/PreprocessorTest.h",
  "preprocessor_tests/space_test.cpp",
  "preprocessor_tests/token_test.cpp",
  "preprocessor_tests/version_test.cpp",
  "test_utils/angle_test_instantiate.h",
  "test_utils/compiler_test.cpp",
  "test_utils/compiler_test.h",
  "test_utils/ConstantFoldingTest.h",
  "test_utils/ConstantFoldingTest.cpp",
  "test_utils/ShaderCompileTreeTest.h",
  "test_utils/ShaderCompileTreeTest.cpp",
  "test_utils/ShaderExtensionTest.h",
  "../../util/test_utils_unittest.cpp",
  "../../util/test_utils_unittest_helper.h",
]

# TODO(jmadill): should probably call this windows sources
angle_unittests_hlsl_sources = [
  "../tests/compiler_tests/HLSLOutput_test.cpp",
  "../tests/compiler_tests/UnrollFlatten_test.cpp",
]

if (is_android) {
  angle_unittests_sources +=
      [ "../tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp" ]
} else {
  angle_unittests_sources +=
      [ "../tests/compiler_tests/ImmutableString_test_autogen.cpp" ]
}

if (!is_android && !is_fuchsia) {
  angle_unittests_sources +=
      [ "../tests/test_utils/runner/TestSuite_unittest.cpp" ]
}
