IVGCVSW-4850 Create QLSTM unit test in android-nn-driver

* Added QLSTM unit tests

Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: Ibb7587d8a4fae4a630e7e80f4c3ce830665a7c77
diff --git a/test/DriverTestHelpers.cpp b/test/DriverTestHelpers.cpp
index 18e3377..c6d4406 100644
--- a/test/DriverTestHelpers.cpp
+++ b/test/DriverTestHelpers.cpp
@@ -61,7 +61,7 @@
     return Void();
 }
 
-#ifdef ARMNN_ANDROID_NN_V1_2
+#if defined(ARMNN_ANDROID_NN_V1_2) || defined(ARMNN_ANDROID_NN_V1_3)
 
 Return<void> PreparedModelCallback_1_2::notify(V1_0::ErrorStatus status,
                                                const android::sp<V1_0::IPreparedModel>& preparedModel)
@@ -81,6 +81,34 @@
 
 #endif
 
+#ifdef ARMNN_ANDROID_NN_V1_3
+
+Return<void> PreparedModelCallback_1_3::notify(V1_0::ErrorStatus status,
+                                               const android::sp<V1_0::IPreparedModel>& preparedModel)
+{
+    m_1_0_ErrorStatus = status;
+    m_PreparedModel = preparedModel;
+    return Void();
+}
+
+Return<void> PreparedModelCallback_1_3::notify_1_2(V1_0::ErrorStatus status,
+                                                   const android::sp<V1_2::IPreparedModel>& preparedModel)
+{
+    m_1_0_ErrorStatus = status;
+    m_PreparedModel_1_2 = preparedModel;
+    return Void();
+}
+
+Return<void> PreparedModelCallback_1_3::notify_1_3(V1_3::ErrorStatus status,
+                                                   const android::sp<V1_3::IPreparedModel>& preparedModel)
+{
+    m_1_3_ErrorStatus = status;
+    m_PreparedModel_1_3 = preparedModel;
+    return Void();
+}
+
+#endif
+
 // lifted from common/Utils.cpp
 hidl_memory allocateSharedMemory(int64_t size)
 {
@@ -119,7 +147,7 @@
     return cb->GetPreparedModel();
 }
 
-#if defined(ARMNN_ANDROID_NN_V1_1) || defined(ARMNN_ANDROID_NN_V1_2)
+#if defined(ARMNN_ANDROID_NN_V1_1) || defined(ARMNN_ANDROID_NN_V1_2) || defined(ARMNN_ANDROID_NN_V1_3)
 
 android::sp<V1_0::IPreparedModel> PrepareModelWithStatus(const V1_1::Model& model,
                                                          armnn_driver::ArmnnDriver& driver,
@@ -140,7 +168,7 @@
 
 #endif
 
-#ifdef ARMNN_ANDROID_NN_V1_2
+#if defined(ARMNN_ANDROID_NN_V1_2) || defined(ARMNN_ANDROID_NN_V1_3)
 
 android::sp<V1_2::IPreparedModel> PrepareModelWithStatus_1_2(const armnn_driver::hal_1_2::HalPolicy::Model& model,
                                                              armnn_driver::ArmnnDriver& driver,
@@ -166,6 +194,37 @@
 
 #endif
 
+#ifdef ARMNN_ANDROID_NN_V1_3
+
+android::sp<V1_3::IPreparedModel> PrepareModelWithStatus_1_3(const armnn_driver::hal_1_3::HalPolicy::Model& model,
+                                                             armnn_driver::ArmnnDriver& driver,
+                                                             V1_3::ErrorStatus& prepareStatus)
+{
+    android::sp<PreparedModelCallback_1_3> cb(new PreparedModelCallback_1_3());
+
+    android::hardware::hidl_vec<android::hardware::hidl_handle> emptyHandle1;
+    android::hardware::hidl_vec<android::hardware::hidl_handle> emptyHandle2;
+    armnn_driver::ArmnnDriver::HidlToken emptyToken;
+
+    driver.prepareModel_1_3(model,
+                            V1_1::ExecutionPreference::LOW_POWER,
+                            V1_3::Priority::LOW,
+                            {},
+                            emptyHandle1,
+                            emptyHandle2,
+                            emptyToken,
+                            cb);
+
+    prepareStatus = cb->Get_1_3_ErrorStatus();
+    if (prepareStatus == V1_3::ErrorStatus::NONE)
+    {
+        BOOST_TEST((cb->GetPreparedModel_1_3() != nullptr));
+    }
+    return cb->GetPreparedModel_1_3();
+}
+
+#endif
+
 V1_0::ErrorStatus Execute(android::sp<V1_0::IPreparedModel> preparedModel,
                           const V1_0::Request& request,
                           V1_0::ErrorStatus expectedStatus)