# 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",
  "../tests/angle_unittests_utils.h",
  "../tests/compiler_tests/API_test.cpp",
  "../tests/compiler_tests/AppendixALimitations_test.cpp",
  "../tests/compiler_tests/ARB_texture_rectangle_test.cpp",
  "../tests/compiler_tests/AtomicCounter_test.cpp",
  "../tests/compiler_tests/BufferVariables_test.cpp",
  "../tests/compiler_tests/CollectVariables_test.cpp",
  "../tests/compiler_tests/ConstantFolding_test.cpp",
  "../tests/compiler_tests/ConstantFoldingNaN_test.cpp",
  "../tests/compiler_tests/ConstantFoldingOverflow_test.cpp",
  "../tests/compiler_tests/ConstructCompiler_test.cpp",
  "../tests/compiler_tests/DebugShaderPrecision_test.cpp",
  "../tests/compiler_tests/EmulateGLBaseVertexBaseInstance_test.cpp",
  "../tests/compiler_tests/EmulateGLDrawID_test.cpp",
  "../tests/compiler_tests/EmulateGLFragColorBroadcast_test.cpp",
  "../tests/compiler_tests/ExpressionLimit_test.cpp",
  "../tests/compiler_tests/EXT_YUV_target_test.cpp",
  "../tests/compiler_tests/EXT_blend_func_extended_test.cpp",
  "../tests/compiler_tests/EXT_frag_depth_test.cpp",
  "../tests/compiler_tests/EXT_shader_texture_lod_test.cpp",
  "../tests/compiler_tests/ExtensionDirective_test.cpp",
  "../tests/compiler_tests/FloatLex_test.cpp",
  "../tests/compiler_tests/FragDepth_test.cpp",
  "../tests/compiler_tests/GLSLCompatibilityOutput_test.cpp",
  "../tests/compiler_tests/GlFragDataNotModified_test.cpp",
  "../tests/compiler_tests/GeometryShader_test.cpp",
  "../tests/compiler_tests/ImmutableString_test.cpp",
  "../tests/compiler_tests/InitOutputVariables_test.cpp",
  "../tests/compiler_tests/IntermNode_test.cpp",
  "../tests/compiler_tests/NV_draw_buffers_test.cpp",
  "../tests/compiler_tests/OES_standard_derivatives_test.cpp",
  "../tests/compiler_tests/Pack_Unpack_test.cpp",
  "../tests/compiler_tests/PruneEmptyCases_test.cpp",
  "../tests/compiler_tests/PruneEmptyDeclarations_test.cpp",
  "../tests/compiler_tests/PrunePureLiteralStatements_test.cpp",
  "../tests/compiler_tests/PruneUnusedFunctions_test.cpp",
  "../tests/compiler_tests/QualificationOrderESSL31_test.cpp",
  "../tests/compiler_tests/QualificationOrder_test.cpp",
  "../tests/compiler_tests/RecordConstantPrecision_test.cpp",
  "../tests/compiler_tests/RegenerateStructNames_test.cpp",
  "../tests/compiler_tests/RemovePow_test.cpp",
  "../tests/compiler_tests/RemoveUnreferencedVariables_test.cpp",
  "../tests/compiler_tests/RewriteDoWhile_test.cpp",
  "../tests/compiler_tests/SamplerMultisample_test.cpp",
  "../tests/compiler_tests/ScalarizeVecAndMatConstructorArgs_test.cpp",
  "../tests/compiler_tests/ShaderImage_test.cpp",
  "../tests/compiler_tests/ShaderValidation_test.cpp",
  "../tests/compiler_tests/ShaderVariable_test.cpp",
  "../tests/compiler_tests/ShCompile_test.cpp",
  "../tests/compiler_tests/TextureFunction_test.cpp",
  "../tests/compiler_tests/Type_test.cpp",
  "../tests/compiler_tests/TypeTracking_test.cpp",
  "../tests/compiler_tests/UnfoldShortCircuitAST_test.cpp",
  "../tests/compiler_tests/VariablePacker_test.cpp",
  "../tests/compiler_tests/VectorizeVectorScalarArithmetic_test.cpp",
  "../tests/compiler_tests/OVR_multiview_test.cpp",
  "../tests/compiler_tests/OVR_multiview2_test.cpp",
  "../tests/compiler_tests/WorkGroupSize_test.cpp",
  "../tests/test_expectations/GPUTestExpectationsParser_unittest.cpp",
  "../tests/preprocessor_tests/char_test.cpp",
  "../tests/preprocessor_tests/comment_test.cpp",
  "../tests/preprocessor_tests/define_test.cpp",
  "../tests/preprocessor_tests/error_test.cpp",
  "../tests/preprocessor_tests/extension_test.cpp",
  "../tests/preprocessor_tests/identifier_test.cpp",
  "../tests/preprocessor_tests/if_test.cpp",
  "../tests/preprocessor_tests/input_test.cpp",
  "../tests/preprocessor_tests/location_test.cpp",
  "../tests/preprocessor_tests/MockDiagnostics.h",
  "../tests/preprocessor_tests/MockDirectiveHandler.h",
  "../tests/preprocessor_tests/number_test.cpp",
  "../tests/preprocessor_tests/operator_test.cpp",
  "../tests/preprocessor_tests/pragma_test.cpp",
  "../tests/preprocessor_tests/PreprocessorTest.cpp",
  "../tests/preprocessor_tests/PreprocessorTest.h",
  "../tests/preprocessor_tests/space_test.cpp",
  "../tests/preprocessor_tests/token_test.cpp",
  "../tests/preprocessor_tests/version_test.cpp",
  "../tests/test_utils/compiler_test.cpp",
  "../tests/test_utils/compiler_test.h",
  "../tests/test_utils/ConstantFoldingTest.h",
  "../tests/test_utils/ConstantFoldingTest.cpp",
  "../tests/test_utils/ShaderCompileTreeTest.h",
  "../tests/test_utils/ShaderCompileTreeTest.cpp",
  "../tests/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",
]

test_utils_unittest_helper_sources = [
  "../../util/test_utils_unittest_helper.cpp",
  "../../util/test_utils_unittest_helper.h",
]

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" ]
}
