diff options
Diffstat (limited to 'gfx/angle/src/tests/deqp_support/tcuRandomOrderExecutor.h')
-rwxr-xr-x | gfx/angle/src/tests/deqp_support/tcuRandomOrderExecutor.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/gfx/angle/src/tests/deqp_support/tcuRandomOrderExecutor.h b/gfx/angle/src/tests/deqp_support/tcuRandomOrderExecutor.h new file mode 100755 index 000000000..f8c708529 --- /dev/null +++ b/gfx/angle/src/tests/deqp_support/tcuRandomOrderExecutor.h @@ -0,0 +1,66 @@ +/*------------------------------------------------------------------------- + * drawElements Quality Program Tester Core + * ---------------------------------------- + * + * Copyright 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ /*! + * \file + * \brief Generic main(). + */ /*--------------------------------------------------------------------*/ + +#ifndef TCU_RANDOM_ORDER_EXECUTOR_H_ +#define TCU_RANDOM_ORDER_EXECUTOR_H_ + +#include "tcuTestHierarchyIterator.hpp" +#include "deUniquePtr.hpp" + +namespace tcu +{ + +class RandomOrderExecutor +{ + public: + RandomOrderExecutor(TestPackageRoot &root, TestContext &testCtx); + ~RandomOrderExecutor(void); + + TestStatus execute(const std::string &path); + + private: + void pruneStack(size_t newStackSize); + TestCase *seekToCase(const std::string &path); + + TestStatus executeInner(TestCase *testCase, const std::string &casePath); + + struct NodeStackEntry + { + TestNode *node; + std::vector<TestNode *> children; + + NodeStackEntry(void) : node(DE_NULL) {} + NodeStackEntry(TestNode *node_) : node(node_) {} + }; + + TestContext &m_testCtx; + + DefaultHierarchyInflater m_inflater; + std::vector<NodeStackEntry> m_nodeStack; + + de::MovePtr<TestCaseExecutor> m_caseExecutor; +}; + +} // tcu + +#endif // TCU_RANDOM_ORDER_EXECUTOR_H_ |