summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorU. Artie Eoff <ullysses.a.eoff@intel.com>2016-09-01 12:59:44 -0700
committerSean V Kelley <seanvk@posteo.de>2016-09-07 10:20:05 -0700
commitf1def3a61e5986207f891b2c22423f9d403cef7c (patch)
treecaa8ccb23feddd9af0c2438d577e3090f1d2f303 /test
parentd428d031c60d8c704fc2079dab389f3fc8c08032 (diff)
test: add some chipset tests
Add various tests to verify the integrity of the chipset and pciid definitions and lookups. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de>
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am1
-rw-r--r--test/i965_chipset_test.cpp104
-rw-r--r--test/i965_internal_decl.h3
3 files changed, 108 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index cb18f7c..72dfed5 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -51,6 +51,7 @@ noinst_HEADERS = \
$(NULL)
test_i965_drv_video_SOURCES = \
+ i965_chipset_test.cpp \
i965_initialize_test.cpp \
i965_test_fixture.cpp \
i965_jpeg_decode_test.cpp \
diff --git a/test/i965_chipset_test.cpp b/test/i965_chipset_test.cpp
new file mode 100644
index 0000000..e2630fb
--- /dev/null
+++ b/test/i965_chipset_test.cpp
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2016 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "test.h"
+#include "i965_internal_decl.h"
+
+#include <iostream>
+#include <set>
+#include <string>
+#include <vector>
+
+struct Chipset {
+ int devid;
+ std::string family;
+ std::string device;
+ std::string description;
+
+ bool operator< (const Chipset& other) const
+ {
+ return devid < other.devid;
+ }
+
+ bool operator== (const Chipset& other) const
+ {
+ return devid == other.devid;
+ }
+};
+
+std::ostream& operator<<(std::ostream& os, const Chipset& chipset)
+{
+ os << std::hex << "(0x" << chipset.devid << std::dec
+ << ", " << chipset.family
+ << ", " << chipset.device
+ << ", " << chipset.description << ")";
+ return os;
+}
+
+const std::vector<Chipset>& getChipsets()
+{
+#undef CHIPSET
+#define CHIPSET(id, family, dev, desc) {id, #family, #dev, #desc},
+ static std::vector<Chipset> chipsets = {
+#include "i965_pciids.h"
+ };
+#undef CHIPSET
+ return chipsets;
+}
+
+TEST(ChipsetTest, Unique)
+{
+ const std::vector<Chipset>& chipsets = getChipsets();
+ std::set<Chipset> unique;
+ for (const Chipset& chipset : chipsets)
+ {
+ const std::set<Chipset>::const_iterator match = unique.find(chipset);
+ EXPECT_EQ(unique.end(), match)
+ << "duplicate chipsets defined:" << std::endl
+ << "\t" << chipset << std::endl
+ << "\t" << *match;
+ unique.insert(chipset);
+ }
+ EXPECT_EQ(unique.size(), chipsets.size());
+}
+
+TEST(ChipsetTest, GetCodecInfo)
+{
+ for (const Chipset& chipset : getChipsets())
+ {
+ hw_codec_info *info = i965_get_codec_info(chipset.devid);
+ EXPECT_PTR(info)
+ << "no codec info returned for " << chipset;
+ }
+}
+
+TEST(ChipsetTest, GetDeviceInfo)
+{
+ for (const Chipset& chipset : getChipsets())
+ {
+ const intel_device_info *info = i965_get_device_info(chipset.devid);
+ EXPECT_PTR(info)
+ << "no device info returned for " << chipset;
+ }
+}
diff --git a/test/i965_internal_decl.h b/test/i965_internal_decl.h
index ceaa1d3..1b6fc40 100644
--- a/test/i965_internal_decl.h
+++ b/test/i965_internal_decl.h
@@ -66,6 +66,9 @@ extern "C" {
extern VAStatus i965_DestroyImage(
VADriverContextP, VAImageID);
+ extern struct hw_codec_info *i965_get_codec_info(int);
+ extern const struct intel_device_info *i965_get_device_info(int);
+
} // extern "C"
#endif