OSDN Git Service

i965_pciids: add kbl-y refresh PCI ID
[android-x86/hardware-intel-common-vaapi.git] / test / i965_test_environment.h
1 /*
2  * Copyright (C) 2016 Intel Corporation. All Rights Reserved.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the
6  * "Software"), to deal in the Software without restriction, including
7  * without limitation the rights to use, copy, modify, merge, publish,
8  * distribute, sub license, and/or sell copies of the Software, and to
9  * permit persons to whom the Software is furnished to do so, subject to
10  * the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the
13  * next paragraph) shall be included in all copies or substantial portions
14  * of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
19  * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
20  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  */
24
25 #ifndef I965_TEST_ENVIRONMENT_H
26 #define I965_TEST_ENVIRONMENT_H
27
28 #include "test.h"
29 #include "i965_internal_decl.h"
30
31 /**
32  * This test environment handles initialization and termination of the i965
33  * driver and display. It defines various operators to make it implicitly
34  * convertible to a VADriverContextP, VADisplay, VADisplayContextP, and
35  * i965_driver_data*.  Other operators may be defined, too.  These operators
36  * allow an instance of the test environment to be passed to various driver
37  * functions that take one of those parameter types.
38  *
39  * See the "Global Set-Up and Tear-Down" section in gtest/docs/AdvancedGuide.md
40  * for more details on how a ::testing::Environment operates.
41  */
42 class I965TestEnvironment
43     : public ::testing::Environment
44 {
45 protected:
46     /**
47      * This is invoked by gtest before any tests are executed.  Gtest will not
48      * run any tests if this method generates a fatal test assertion failure.
49      */
50     virtual void SetUp();
51
52     /**
53      * This is invoked by gtest after all the tests are executed. If SetUp()
54      * generates a fatal test assertion, this is also invoked by gtest
55      * afterwards.
56      */
57     virtual void TearDown();
58
59 private:
60     I965TestEnvironment();
61
62     int m_handle; /* current native display handle */
63     VADisplay m_vaDisplay; /* current VADisplay handle */
64
65 public:
66     static I965TestEnvironment* instance();
67
68     /**
69      * VADisplay implicit and explicit conversion operator.
70      */
71     inline operator VADisplay() { return m_vaDisplay; }
72
73     /**
74      * VADisplayContextP implict and explicit conversion operator.
75      */
76     inline operator VADisplayContextP()
77     {
78         return (VADisplayContextP)((VADisplay)*this);
79     }
80
81     /**
82      * VADriverContextP implict and explicit conversion operator.
83      */
84     inline operator VADriverContextP()
85     {
86         VADisplayContextP dctx(*this);
87         return dctx ? dctx->pDriverContext : NULL;
88     }
89
90     /**
91      * i965_driver_data * implict and explicit conversion operator.
92      */
93     inline operator struct i965_driver_data *()
94     {
95         VADriverContextP ctx(*this);
96         return ctx ? i965_driver_data(ctx) : NULL;
97     }
98 };
99
100 #endif