Add tessellation shader tests (ported from ES 3.1)
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / modules / vulkan / tessellation / vktTessellationTests.cpp
1 /*------------------------------------------------------------------------
2  * Vulkan Conformance Tests
3  * ------------------------
4  *
5  * Copyright (c) 2014 The Android Open Source Project
6  * Copyright (c) 2016 The Khronos Group Inc.
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 Tessellation Tests
23  *//*--------------------------------------------------------------------*/
24
25 #include "vktTessellationTests.hpp"
26 #include "vktTestGroupUtil.hpp"
27 #include "vktTessellationLimitsTests.hpp"
28 #include "vktTessellationCoordinatesTests.hpp"
29 #include "vktTessellationWindingTests.hpp"
30 #include "vktTessellationShaderInputOutputTests.hpp"
31 #include "vktTessellationMiscDrawTests.hpp"
32 #include "vktTessellationCommonEdgeTests.hpp"
33 #include "vktTessellationFractionalSpacingTests.hpp"
34 #include "vktTessellationPrimitiveDiscardTests.hpp"
35 #include "vktTessellationInvarianceTests.hpp"
36 #include "vktTessellationUserDefinedIO.hpp"
37
38 namespace vkt
39 {
40 namespace tessellation
41 {
42 namespace
43 {
44
45 void createChildren (tcu::TestCaseGroup* tessellationTests)
46 {
47         tcu::TestContext& testCtx = tessellationTests->getTestContext();
48
49         tessellationTests->addChild(createLimitsTests                   (testCtx));
50         tessellationTests->addChild(createCoordinatesTests              (testCtx));
51         tessellationTests->addChild(createWindingTests                  (testCtx));
52         tessellationTests->addChild(createShaderInputOutputTests(testCtx));
53         tessellationTests->addChild(createMiscDrawTests                 (testCtx));
54         tessellationTests->addChild(createCommonEdgeTests               (testCtx));
55         tessellationTests->addChild(createFractionalSpacingTests(testCtx));
56         tessellationTests->addChild(createPrimitiveDiscardTests (testCtx));
57         tessellationTests->addChild(createInvarianceTests               (testCtx));
58         tessellationTests->addChild(createUserDefinedIOTests    (testCtx));
59 }
60
61 } // anonymous
62
63 tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx)
64 {
65         return createTestGroup(testCtx, "tessellation", "Tessellation tests", createChildren);
66 }
67
68 } // tessellation
69 } // vkt