1*b7893ccfSSadaf Ebrahimi /* 2*b7893ccfSSadaf Ebrahimi * Copyright (c) 2015-2016 The Khronos Group Inc. 3*b7893ccfSSadaf Ebrahimi * Copyright (c) 2015-2016 Valve Corporation 4*b7893ccfSSadaf Ebrahimi * Copyright (c) 2015-2016 LunarG, Inc. 5*b7893ccfSSadaf Ebrahimi * 6*b7893ccfSSadaf Ebrahimi * Licensed under the Apache License, Version 2.0 (the "License"); 7*b7893ccfSSadaf Ebrahimi * you may not use this file except in compliance with the License. 8*b7893ccfSSadaf Ebrahimi * You may obtain a copy of the License at 9*b7893ccfSSadaf Ebrahimi * 10*b7893ccfSSadaf Ebrahimi * http://www.apache.org/licenses/LICENSE-2.0 11*b7893ccfSSadaf Ebrahimi * 12*b7893ccfSSadaf Ebrahimi * Unless required by applicable law or agreed to in writing, software 13*b7893ccfSSadaf Ebrahimi * distributed under the License is distributed on an "AS IS" BASIS, 14*b7893ccfSSadaf Ebrahimi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15*b7893ccfSSadaf Ebrahimi * See the License for the specific language governing permissions and 16*b7893ccfSSadaf Ebrahimi * limitations under the License. 17*b7893ccfSSadaf Ebrahimi * 18*b7893ccfSSadaf Ebrahimi * Author: Chia-I Wu <[email protected]> 19*b7893ccfSSadaf Ebrahimi * Author: Chris Forbes <[email protected]> 20*b7893ccfSSadaf Ebrahimi * Author: Courtney Goeltzenleuchter <[email protected]> 21*b7893ccfSSadaf Ebrahimi * Author: Mark Lobodzinski <[email protected]> 22*b7893ccfSSadaf Ebrahimi * Author: Mike Stroyan <[email protected]> 23*b7893ccfSSadaf Ebrahimi * Author: Tobin Ehlis <[email protected]> 24*b7893ccfSSadaf Ebrahimi * Author: Tony Barbour <[email protected]> 25*b7893ccfSSadaf Ebrahimi */ 26*b7893ccfSSadaf Ebrahimi 27*b7893ccfSSadaf Ebrahimi #ifndef TEST_ENVIRONMENT_H 28*b7893ccfSSadaf Ebrahimi #define TEST_ENVIRONMENT_H 29*b7893ccfSSadaf Ebrahimi 30*b7893ccfSSadaf Ebrahimi #include "vktestbinding.h" 31*b7893ccfSSadaf Ebrahimi 32*b7893ccfSSadaf Ebrahimi namespace vk_testing { 33*b7893ccfSSadaf Ebrahimi class Environment : public ::testing::Environment { 34*b7893ccfSSadaf Ebrahimi public: 35*b7893ccfSSadaf Ebrahimi Environment(); 36*b7893ccfSSadaf Ebrahimi 37*b7893ccfSSadaf Ebrahimi bool parse_args(int argc, char **argv); 38*b7893ccfSSadaf Ebrahimi 39*b7893ccfSSadaf Ebrahimi virtual void SetUp(); 40*b7893ccfSSadaf Ebrahimi virtual void TearDown(); 41*b7893ccfSSadaf Ebrahimi devices()42*b7893ccfSSadaf Ebrahimi const std::vector<Device *> &devices() { return devs_; } default_device()43*b7893ccfSSadaf Ebrahimi Device &default_device() { return *(devs_[default_dev_]); } get_instance()44*b7893ccfSSadaf Ebrahimi VkInstance get_instance() { return inst; } 45*b7893ccfSSadaf Ebrahimi VkPhysicalDevice gpus[16]; 46*b7893ccfSSadaf Ebrahimi 47*b7893ccfSSadaf Ebrahimi private: 48*b7893ccfSSadaf Ebrahimi VkApplicationInfo app_; 49*b7893ccfSSadaf Ebrahimi uint32_t default_dev_; 50*b7893ccfSSadaf Ebrahimi VkInstance inst; 51*b7893ccfSSadaf Ebrahimi 52*b7893ccfSSadaf Ebrahimi std::vector<Device *> devs_; 53*b7893ccfSSadaf Ebrahimi }; 54*b7893ccfSSadaf Ebrahimi } // namespace vk_testing 55*b7893ccfSSadaf Ebrahimi #endif // TEST_ENVIRONMENT_H 56