ASSERT_EQ (loaded_meta, nullptr);
}
+/**
+ * @brief test model compatability
+ */
+TEST (ne_libnpuhost_test, get_comaptible_devices_23) {
+ size_t num_devices = 0;
+ dev_type *devices = NULL;
+ npubin_meta *model_meta;
+ int ret;
+
+ std::string model_dir (BASIC_TEST_MODEL);
+ std::string model_path = model_dir + "/model.tvn";
+
+ model_meta = getNPUmodel_metadata (model_path.c_str (), true);
+ ASSERT_NE (model_meta, nullptr) << "invalid model path: " << model_path;
+
+ model_meta->npu_version = 0;
+ model_meta->npu_version |= 0x2;
+ model_meta->npu_version |= 0x3 << 8;
+
+ ret = getNPUmodel_compatibleDevices (model_meta, &devices, &num_devices);
+ EXPECT_EQ (ret, 0);
+
+ free (model_meta);
+
+ EXPECT_EQ (num_devices, 2);
+ EXPECT_NE (devices, nullptr);
+ EXPECT_EQ (devices[0], NPUCOND_TRIV23_CONN_UNKNOWN);
+ EXPECT_EQ (devices[1], NPUCOND_TRIV23_CONN_SOCIP);
+
+ free (devices);
+}
+
+/**
+ * @brief test model compatability
+ */
+TEST (ne_libnpuhost_test, get_compatible_devices_24) {
+ size_t num_devices = 0;
+ dev_type *devices = NULL;
+ npubin_meta *model_meta;
+ int ret;
+
+ std::string model_dir (BASIC_TEST_MODEL);
+ std::string model_path = model_dir + "/model.tvn";
+
+ model_meta = getNPUmodel_metadata (model_path.c_str (), true);
+ ASSERT_NE (model_meta, nullptr) << "invalid model path: " << model_path;
+
+ model_meta->npu_version = 0;
+ model_meta->npu_version |= 0x2;
+ model_meta->npu_version |= 0x4 << 8;
+
+ ret = getNPUmodel_compatibleDevices (model_meta, &devices, &num_devices);
+ EXPECT_EQ (ret, 0);
+
+ free (model_meta);
+
+ EXPECT_EQ (num_devices, 2);
+ EXPECT_NE (devices, nullptr);
+ EXPECT_EQ (devices[0], NPUCOND_TRIV24_CONN_UNKNOWN);
+ EXPECT_EQ (devices[1], NPUCOND_TRIV24_CONN_SOCIP);
+
+ free (devices);
+}
+
+/**
+ * @brief test model compatability
+ */
+TEST (ne_libnpuhost_test, get_comaptible_devices_n) {
+ size_t num_devices = 0;
+ dev_type *devices = NULL;
+ npubin_meta *model_meta;
+ int ret;
+
+ std::string model_dir (BASIC_TEST_MODEL);
+ std::string model_path = model_dir + "/model.tvn";
+
+ model_meta = getNPUmodel_metadata (model_path.c_str (), true);
+ ASSERT_NE (model_meta, nullptr) << "invalid model path: " << model_path;
+
+ model_meta->npu_version = 0;
+ model_meta->npu_version |= 0x1;
+ model_meta->npu_version |= 0x4 << 8;
+
+ ret = getNPUmodel_compatibleDevices (model_meta, &devices, &num_devices);
+ EXPECT_NE (ret, 0);
+ EXPECT_EQ (devices, nullptr);
+
+ free (model_meta);
+}
+
+/**
+ * @brief test model compatability
+ */
+TEST (ne_libnpuhost_test, get_comaptible_devices_n_2) {
+ size_t num_devices = 0;
+ dev_type *devices = NULL;
+ npubin_meta *model_meta;
+ int ret;
+
+ std::string model_dir (BASIC_TEST_MODEL);
+ std::string model_path = model_dir + "/model.tvn";
+
+ model_meta = getNPUmodel_metadata (model_path.c_str (), true);
+ ASSERT_NE (model_meta, nullptr) << "invalid model path: " << model_path;
+
+ model_meta->npu_version = 0;
+ model_meta->npu_version |= 0x2;
+ model_meta->npu_version |= 0x2 << 8;
+
+ ret = getNPUmodel_compatibleDevices (model_meta, &devices, &num_devices);
+ EXPECT_NE (ret, 0);
+ EXPECT_EQ (devices, nullptr);
+
+ free (model_meta);
+}
+
/**
* @brief test getNPU_deviceStatus()
*/