• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 } // deqp
99 
100 #endif // _GLCTESTPACKAGE_HPP
101