diff options
author | U. Artie Eoff <ullysses.a.eoff@intel.com> | 2016-09-01 12:59:44 -0700 |
---|---|---|
committer | Sean V Kelley <seanvk@posteo.de> | 2016-09-07 10:20:05 -0700 |
commit | f1def3a61e5986207f891b2c22423f9d403cef7c (patch) | |
tree | caa8ccb23feddd9af0c2438d577e3090f1d2f303 /test | |
parent | d428d031c60d8c704fc2079dab389f3fc8c08032 (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.am | 1 | ||||
-rw-r--r-- | test/i965_chipset_test.cpp | 104 | ||||
-rw-r--r-- | test/i965_internal_decl.h | 3 |
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 |