1 /*------------------------------------------------------------------------
2 * Vulkan Conformance Tests
3 * ------------------------
4 *
5 * Copyright (c) 2020 Valve Corporation.
6 * Copyright (c) 2020 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 Amber tests in the GLSL group.
23 *//*--------------------------------------------------------------------*/
24
25 #include "vktAmberGlslTests.hpp"
26 #include "vktAmberTestCase.hpp"
27
28 #include <vector>
29 #include <utility>
30 #include <string>
31
32 namespace vkt
33 {
34 namespace cts_amber
35 {
36
createCombinedOperationsGroup(tcu::TestContext & testCtx)37 tcu::TestCaseGroup* createCombinedOperationsGroup (tcu::TestContext& testCtx)
38 {
39 static const std::string kGroupName = "combined_operations";
40 static const std::vector<std::pair<std::string, std::string>> combinedOperationsTests =
41 {
42 { "notxor", "Bitwise negation of a bitwise xor operation" },
43 { "negintdivand", "Bitwise and of a negative value that was divided" },
44 };
45
46 de::MovePtr<tcu::TestCaseGroup> group{new tcu::TestCaseGroup{testCtx, kGroupName.c_str(), "Combined operations test group"}};
47 for (const auto& test : combinedOperationsTests)
48 {
49 group->addChild(createAmberTestCase(testCtx, test.first.c_str(), test.second.c_str(), kGroupName.c_str(), test.first + ".amber"));
50 }
51 return group.release();
52 }
53
createCrashTestGroup(tcu::TestContext & testCtx)54 tcu::TestCaseGroup* createCrashTestGroup (tcu::TestContext& testCtx)
55 {
56 static const std::string kGroupName = "crash_test";
57 static const std::vector<std::pair<std::string, std::string>> crashTests =
58 {
59 { "divbyzero_frag", "Fragment shader division by zero tests" },
60 { "divbyzero_comp", "Compute shader division by zero tests" },
61 };
62
63 de::MovePtr<tcu::TestCaseGroup> group{new tcu::TestCaseGroup{testCtx, kGroupName.c_str(), "Crash test group"}};
64 for (const auto& test : crashTests)
65 {
66 group->addChild(createAmberTestCase(testCtx, test.first.c_str(), test.second.c_str(), kGroupName.c_str(), test.first + ".amber"));
67 }
68 return group.release();
69 }
70
71 } // cts_amber
72 } // vkt
73