xref: /aosp_15_r20/external/deqp/external/openglcts/modules/common/glcTestPackage.hpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
1 #ifndef _GLCTESTPACKAGE_HPP
2 #define _GLCTESTPACKAGE_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 Conformance Test Package Base Class
25  */ /*-------------------------------------------------------------------*/
26 
27 #include "glcContext.hpp"
28 #include "glcTestCaseWrapper.hpp"
29 #include "tcuDefs.hpp"
30 #include "tcuResource.hpp"
31 #include "tcuTestPackage.hpp"
32 #include "deSharedPtr.hpp"
33 
34 namespace tcu
35 {
36 class WaiverUtil;
37 }
38 
39 namespace deqp
40 {
41 
42 class PackageContext
43 {
44 public:
45     PackageContext(tcu::TestContext &testCtx, glu::ContextType renderContextType);
46     ~PackageContext(void);
47 
getContext(void)48     Context &getContext(void)
49     {
50         return m_context;
51     }
getTestCaseWrapper(void)52     TestCaseWrapper &getTestCaseWrapper(void)
53     {
54         return m_caseWrapper;
55     }
56 
57 private:
58     Context m_context;
59     TestCaseWrapper m_caseWrapper;
60 };
61 
62 class TestPackage : public tcu::TestPackage
63 {
64 public:
65     TestPackage(tcu::TestContext &testCtx, const char *name, const char *description,
66                 glu::ContextType renderContextType, const char *resourcesPath);
67     virtual ~TestPackage(void);
68 
69     void init(void);
70     void deinit(void);
71 
getTestCaseWrapper(void)72     TestCaseWrapper &getTestCaseWrapper(void)
73     {
74         return m_packageCtx->getTestCaseWrapper();
75     }
getArchive(void)76     tcu::Archive *getArchive(void)
77     {
78         return &m_archive;
79     }
80 
getContext(void)81     Context &getContext(void)
82     {
83         return m_packageCtx->getContext();
84     }
85 
86 protected:
87     de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
88 
89 private:
90     TestPackage(const TestPackage &other);
91     TestPackage &operator=(const TestPackage &other);
92 
93     glu::ContextType m_renderContextType;
94     PackageContext *m_packageCtx;
95     tcu::ResourcePrefix m_archive;
96 };
97 
98 } // namespace deqp
99 
100 #endif // _GLCTESTPACKAGE_HPP
101