1/*-------------------------------------------------------------------------
2 * Vulkan Conformance Tests
3 * ------------------------
4 *
5 * Copyright (c) 2023 LunarG, Inc.
6 * Copyright (c) 2023 Nintendo
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 *      http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 *
20 *//*!
21 * \file
22 * \brief Shader Object Tests
23 *//*--------------------------------------------------------------------*/
24
25#include "deUniquePtr.hpp"
26#include "vktShaderObjectApiTests.hpp"
27#include "vktShaderObjectCreateTests.hpp"
28#include "vktShaderObjectLinkTests.hpp"
29#include "vktShaderObjectBinaryTests.hpp"
30#include "vktShaderObjectPipelineInteractionTests.hpp"
31#include "vktShaderObjectBindingTests.hpp"
32#include "vktShaderObjectPerformanceTests.hpp"
33#include "vktShaderObjectRenderingTests.hpp"
34#include "vktShaderObjectMiscTests.hpp"
35
36namespace vkt
37{
38namespace ShaderObject
39{
40
41namespace
42{
43using GroupPtr = de::MovePtr<tcu::TestCaseGroup>;
44}
45
46tcu::TestCaseGroup*	createTests	(tcu::TestContext& testCtx, const std::string& name)
47{
48	GroupPtr mainGroup	(new tcu::TestCaseGroup(testCtx, name.c_str()));
49
50	mainGroup->addChild(createShaderObjectApiTests(testCtx));
51	mainGroup->addChild(createShaderObjectCreateTests(testCtx));
52	mainGroup->addChild(createShaderObjectLinkTests(testCtx));
53	mainGroup->addChild(createShaderObjectBinaryTests(testCtx));
54	mainGroup->addChild(createShaderObjectPipelineInteractionTests(testCtx));
55	mainGroup->addChild(createShaderObjectBindingTests(testCtx));
56	mainGroup->addChild(createShaderObjectPerformanceTests(testCtx));
57	mainGroup->addChild(createShaderObjectRenderingTests(testCtx));
58	mainGroup->addChild(createShaderObjectMiscTests(testCtx));
59
60	return mainGroup.release();
61}
62
63} // ShaderObject
64} // vkt
65