• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _GL3CTESTPACKAGES_HPP
2 #define _GL3CTESTPACKAGES_HPP
3 /*-------------------------------------------------------------------------
4  * OpenGL Conformance Test Suite
5  * -----------------------------
6  *
7  * Copyright (c) 2016 Google Inc.
8  * Copyright (c) 2016 The Khronos Group Inc.
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *      http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  */ /*!
23  * \file
24  * \brief OpenGL 3.x Test Packages.
25  */ /*-------------------------------------------------------------------*/
26 
27 #include "glcTestCase.hpp"
28 #include "glcTestPackage.hpp"
29 #include "gluRenderContext.hpp"
30 #include "tcuDefs.hpp"
31 
32 namespace gl3cts
33 {
34 
35 class TestCaseWrapper : public tcu::TestCaseExecutor
36 {
37 public:
38     TestCaseWrapper(deqp::TestPackage &package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
39     ~TestCaseWrapper(void);
40 
41     void init(tcu::TestCase *testCase, const std::string &path);
42     void deinit(tcu::TestCase *testCase);
43     tcu::TestNode::IterateResult iterate(tcu::TestCase *testCase);
44 
45 private:
46     deqp::TestPackage &m_testPackage;
47     de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
48 };
49 
50 class GL30TestPackage : public deqp::TestPackage
51 {
52 public:
53     GL30TestPackage(tcu::TestContext &testCtx, const char *packageName,
54                     const char *description            = "OpenGL 3.0 Conformance Tests",
55                     glu::ContextType renderContextType = glu::ContextType(3, 0, glu::PROFILE_CORE));
56 
57     ~GL30TestPackage(void);
58 
59     tcu::TestCaseExecutor *createExecutor(void) const;
60 
61     void init(void);
62 
63     using deqp::TestPackage::getContext;
64 };
65 
66 class GL31TestPackage : public GL30TestPackage
67 {
68 public:
69     GL31TestPackage(tcu::TestContext &testCtx, const char *packageName,
70                     const char *description            = "OpenGL 3.1 Conformance Tests",
71                     glu::ContextType renderContextType = glu::ContextType(3, 1, glu::PROFILE_CORE,
72                                                                           glu::CONTEXT_FORWARD_COMPATIBLE));
73 
74     ~GL31TestPackage(void);
75 
76     void init(void);
77 };
78 
79 class GL32TestPackage : public GL31TestPackage
80 {
81 public:
82     GL32TestPackage(tcu::TestContext &testCtx, const char *packageName,
83                     const char *description            = "OpenGL 3.2 Conformance Tests",
84                     glu::ContextType renderContextType = glu::ContextType(3, 2, glu::PROFILE_CORE));
85     ~GL32TestPackage(void);
86 
87     void init(void);
88 };
89 
90 class GL33TestPackage : public GL32TestPackage
91 {
92 public:
93     GL33TestPackage(tcu::TestContext &testCtx, const char *packageName,
94                     const char *description            = "OpenGL 3.3 Conformance Tests",
95                     glu::ContextType renderContextType = glu::ContextType(3, 3, glu::PROFILE_CORE));
96     ~GL33TestPackage(void);
97 
98     void init(void);
99 };
100 
101 } // namespace gl3cts
102 
103 #endif // _GL3CTESTPACKAGES_HPP
104