2 * Copyright (C) 2016 Intel Corporation. All Rights Reserved.
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:
12 * The above copyright notice and this permission notice (including the
13 * next paragraph) shall be included in all copies or substantial portions
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.
28 #include <gtest/gtest.h>
29 #include <gtest/gtest-spi.h> // for EXPECT_FATAL_FAILURE/EXPECT_NONFATAL_FAILURE
34 #define EXPECT_STATUS(status) \
35 EXPECT_EQ(VaapiStatus(VA_STATUS_SUCCESS), VaapiStatus(status))
37 #define ASSERT_STATUS(status) \
38 ASSERT_EQ(VaapiStatus(VA_STATUS_SUCCESS), VaapiStatus(status))
40 #define EXPECT_STATUS_EQ(expect, status) \
41 EXPECT_EQ(VaapiStatus(expect), VaapiStatus(status))
43 #define ASSERT_STATUS_EQ(expect, status) \
44 ASSERT_EQ(VaapiStatus(expect), VaapiStatus(status))
46 #define EXPECT_ID(id) \
47 EXPECT_NE(VA_INVALID_ID, (id))
49 #define ASSERT_ID(id) \
50 ASSERT_NE(VA_INVALID_ID, (id))
52 #define EXPECT_INVALID_ID(id) \
53 EXPECT_EQ(VA_INVALID_ID, (id))
55 #define ASSERT_INVALID_ID(id) \
56 ASSERT_EQ(VA_INVALID_ID, (id))
58 #define EXPECT_PTR(ptr) \
59 EXPECT_FALSE(NULL == (ptr))
61 #define ASSERT_PTR(ptr) \
62 ASSERT_FALSE(NULL == (ptr))
64 #define EXPECT_PTR_NULL(ptr) \
65 EXPECT_TRUE(NULL == (ptr))
67 #define ASSERT_PTR_NULL(ptr) \
68 ASSERT_TRUE(NULL == (ptr))
70 #define ASSERT_NO_FAILURE(statement) \
72 ASSERT_FALSE(HasFailure());
77 explicit VaapiStatus(VAStatus status)
81 bool operator ==(const VaapiStatus& other) const
83 return m_status == other.m_status;
86 friend std::ostream& operator <<(std::ostream& os, const VaapiStatus& t)
90 case VA_STATUS_SUCCESS:
91 status = "VA_STATUS_SUCCESS"; break;
92 case VA_STATUS_ERROR_OPERATION_FAILED:
93 status = "VA_STATUS_ERROR_OPERATION_FAILED"; break;
94 case VA_STATUS_ERROR_ALLOCATION_FAILED:
95 status = "VA_STATUS_ERROR_ALLOCATION_FAILED"; break;
96 case VA_STATUS_ERROR_INVALID_DISPLAY:
97 status = "VA_STATUS_ERROR_INVALID_DISPLAY"; break;
98 case VA_STATUS_ERROR_INVALID_CONFIG:
99 status = "VA_STATUS_ERROR_INVALID_CONFIG"; break;
100 case VA_STATUS_ERROR_INVALID_CONTEXT:
101 status = "VA_STATUS_ERROR_INVALID_CONTEXT"; break;
102 case VA_STATUS_ERROR_INVALID_SURFACE:
103 status = "VA_STATUS_ERROR_INVALID_SURFACE"; break;
104 case VA_STATUS_ERROR_INVALID_BUFFER:
105 status = "VA_STATUS_ERROR_INVALID_BUFFER"; break;
106 case VA_STATUS_ERROR_INVALID_IMAGE:
107 status = "VA_STATUS_ERROR_INVALID_IMAGE"; break;
108 case VA_STATUS_ERROR_INVALID_SUBPICTURE:
109 status = "VA_STATUS_ERROR_INVALID_SUBPICTURE"; break;
110 case VA_STATUS_ERROR_ATTR_NOT_SUPPORTED:
111 status = "VA_STATUS_ERROR_ATTR_NOT_SUPPORTED"; break;
112 case VA_STATUS_ERROR_MAX_NUM_EXCEEDED:
113 status = "VA_STATUS_ERROR_MAX_NUM_EXCEEDED"; break;
114 case VA_STATUS_ERROR_UNSUPPORTED_PROFILE:
115 status = "VA_STATUS_ERROR_UNSUPPORTED_PROFILE"; break;
116 case VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT:
117 status = "VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT"; break;
118 case VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT:
119 status = "VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT"; break;
120 case VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE:
121 status = "VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE"; break;
122 case VA_STATUS_ERROR_SURFACE_BUSY:
123 status = "VA_STATUS_ERROR_SURFACE_BUSY"; break;
124 case VA_STATUS_ERROR_FLAG_NOT_SUPPORTED:
125 status = "VA_STATUS_ERROR_FLAG_NOT_SUPPORTED"; break;
126 case VA_STATUS_ERROR_INVALID_PARAMETER:
127 status = "VA_STATUS_ERROR_INVALID_PARAMETER"; break;
128 case VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED:
129 status = "VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED"; break;
130 case VA_STATUS_ERROR_UNIMPLEMENTED:
131 status = "VA_STATUS_ERROR_UNIMPLEMENTED"; break;
132 case VA_STATUS_ERROR_SURFACE_IN_DISPLAYING:
133 status = "VA_STATUS_ERROR_SURFACE_IN_DISPLAYING"; break;
134 case VA_STATUS_ERROR_INVALID_IMAGE_FORMAT:
135 status = "VA_STATUS_ERROR_INVALID_IMAGE_FORMAT"; break;
136 case VA_STATUS_ERROR_DECODING_ERROR:
137 status = "VA_STATUS_ERROR_DECODING_ERROR"; break;
138 case VA_STATUS_ERROR_ENCODING_ERROR:
139 status = "VA_STATUS_ERROR_ENCODING_ERROR"; break;
140 case VA_STATUS_ERROR_INVALID_VALUE:
141 status = "VA_STATUS_ERROR_INVALID_VALUE"; break;
142 case VA_STATUS_ERROR_UNSUPPORTED_FILTER:
143 status = "VA_STATUS_ERROR_UNSUPPORTED_FILTER"; break;
144 case VA_STATUS_ERROR_INVALID_FILTER_CHAIN:
145 status = "VA_STATUS_ERROR_INVALID_FILTER_CHAIN"; break;
146 case VA_STATUS_ERROR_HW_BUSY:
147 status = "VA_STATUS_ERROR_HW_BUSY"; break;
148 case VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE:
149 status = "VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE"; break;
150 case VA_STATUS_ERROR_UNKNOWN:
151 status = "VA_STATUS_ERROR_UNKNOWN"; break;
153 status = "Unknown VAStatus";