Edit

kc3-lang/angle/src/tests/deqp_support/tcuRandomOrderExecutor.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2015-06-09 09:55:29
    Hash : 4f3c14be
    Message : dEQP: Add tcu::RandomOrderExecutor. A prototype based on work from phaulos@. This should eventually be integrated into the dEQP repo. BUG=angleproject:998 Change-Id: I9be137fb54423bc180623f172dde63a22311b791 Reviewed-on: https://chromium-review.googlesource.com/274420 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>

  • src/tests/deqp_support/tcuRandomOrderExecutor.h
  • /*-------------------------------------------------------------------------
     * 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_