OSDN Git Service

intel/devinfo: add basic sanity tests on device database
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 11 Apr 2019 11:12:38 +0000 (12:12 +0100)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 19 Apr 2019 15:56:21 +0000 (15:56 +0000)
v2: #undef NDEBUG (Eric)
    Use inc_include & inc_src (Eric)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Anuj Phogat anuj.phogat@gmail.com
src/intel/dev/gen_device_info_test.c [new file with mode: 0644]
src/intel/dev/meson.build

diff --git a/src/intel/dev/gen_device_info_test.c b/src/intel/dev/gen_device_info_test.c
new file mode 100644 (file)
index 0000000..6d7d279
--- /dev/null
@@ -0,0 +1,33 @@
+#undef NDEBUG
+
+#include <stdint.h>
+#include <assert.h>
+
+#include "gen_device_info.h"
+
+int
+main(int argc, char *argv[])
+{
+   struct {
+      uint32_t pci_id;
+      const char *name;
+   } chipsets[] = {
+#undef CHIPSET
+#define CHIPSET(id, family, str_name) { .pci_id = id, .name = str_name, },
+#include "pci_ids/i965_pci_ids.h"
+   };
+
+   for (uint32_t i = 0; i < ARRAY_SIZE(chipsets); i++) {
+      struct gen_device_info devinfo = { 0, };
+
+      assert(gen_get_device_info(chipsets[i].pci_id, &devinfo));
+
+      assert(devinfo.gen != 0);
+      assert(devinfo.urb.size != 0);
+      assert(devinfo.num_eu_per_subslice != 0);
+      assert(devinfo.num_thread_per_eu != 0);
+      assert(devinfo.timestamp_frequency != 0);
+   }
+
+   return 0;
+}
index 9027a3e..0d8543b 100644 (file)
@@ -33,3 +33,15 @@ libintel_dev = static_library(
   include_directories : [inc_common, inc_intel, inc_include],
   c_args : [c_vis_args, no_override_init_args],
 )
+
+if with_tests
+  test('gen_device_info_test',
+       executable(
+         'gen_device_info_test',
+         'gen_device_info_test.c',
+         include_directories : [inc_include, inc_src],
+         link_with : libintel_dev,
+       ),
+       suite : ['intel'],
+      )
+endif