diff options
author | Xusong Wang <xusongw@google.com> | 2019-03-11 18:06:58 -0700 |
---|---|---|
committer | Xusong Wang <xusongw@google.com> | 2019-03-13 10:08:38 -0700 |
commit | 641c01191a52ff2c4abb039f17f5e34eb3c682d9 (patch) | |
tree | 6692230635fee2eba88c1777b484318ddbf3c150 /nn/runtime/test/TestExecution.cpp | |
parent | 99ff70021c7c4ab903cdbc2f96f4f6fc69739e41 (diff) | |
download | ml-641c01191a52ff2c4abb039f17f5e34eb3c682d9.tar.gz |
Wrap IDevice and IPreparedModel object with sp in TestExecution.
And also removes the redundant template for TestIntrospectionCompilation.
Fixes: 128039468
Test: NeuralNetworksTest_static --gtest_filter=*ExecutionTest* and check
the logcat.
Change-Id: I8cdb3daac88eae7fd17315d8b4376eb280595931
Merged-In: I8cdb3daac88eae7fd17315d8b4376eb280595931
(cherry picked from commit 69d5f2b3dc9448893557bc768533907818bf0907)
Diffstat (limited to 'nn/runtime/test/TestExecution.cpp')
-rw-r--r-- | nn/runtime/test/TestExecution.cpp | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/nn/runtime/test/TestExecution.cpp b/nn/runtime/test/TestExecution.cpp index a327b5cba..967e8e3d5 100644 --- a/nn/runtime/test/TestExecution.cpp +++ b/nn/runtime/test/TestExecution.cpp @@ -131,8 +131,8 @@ class TestPreparedModel12 : public V1_2::IPreparedModel { } private: - sp<V1_0::IPreparedModel> mPreparedModelV1_0; - sp<V1_2::IPreparedModel> mPreparedModelV1_2; + const sp<V1_0::IPreparedModel> mPreparedModelV1_0; + const sp<V1_2::IPreparedModel> mPreparedModelV1_2; ErrorStatus mErrorStatus; }; @@ -140,15 +140,15 @@ class TestPreparedModel12 : public V1_2::IPreparedModel { class TestPreparedModel10 : public V1_0::IPreparedModel { public: TestPreparedModel10(sp<V1_0::IPreparedModel> preparedModel, ErrorStatus errorStatus) - : m12PreparedModel(preparedModel, errorStatus) {} + : m12PreparedModel(new TestPreparedModel12(preparedModel, errorStatus)) {} Return<ErrorStatus> execute(const Request& request, const sp<V1_0::IExecutionCallback>& callback) override { - return m12PreparedModel.execute(request, callback); + return m12PreparedModel->execute(request, callback); } private: - TestPreparedModel12 m12PreparedModel; + const sp<V1_2::IPreparedModel> m12PreparedModel; }; // Behaves like SampleDriver, except that it produces wrapped IPreparedModel. @@ -251,57 +251,59 @@ class TestDriver12 : public SampleDriver { // Like TestDriver, but implementing 1.1 class TestDriver11 : public V1_1::IDevice { public: - TestDriver11(const std::string& name, ErrorStatus errorStatus) : m12Driver(name, errorStatus) {} + TestDriver11(const std::string& name, ErrorStatus errorStatus) + : m12Driver(new TestDriver12(name, errorStatus)) {} Return<void> getCapabilities_1_1(getCapabilities_1_1_cb _hidl_cb) override { - return m12Driver.getCapabilities_1_1(_hidl_cb); + return m12Driver->getCapabilities_1_1(_hidl_cb); } Return<void> getSupportedOperations_1_1(const V1_1::Model& model, getSupportedOperations_1_1_cb _hidl_cb) override { - return m12Driver.getSupportedOperations_1_1(model, _hidl_cb); + return m12Driver->getSupportedOperations_1_1(model, _hidl_cb); } Return<ErrorStatus> prepareModel_1_1( const V1_1::Model& model, ExecutionPreference preference, const sp<V1_0::IPreparedModelCallback>& actualCallback) override { - return m12Driver.prepareModel_1_1(model, preference, actualCallback); + return m12Driver->prepareModel_1_1(model, preference, actualCallback); } - Return<DeviceStatus> getStatus() override { return m12Driver.getStatus(); } + Return<DeviceStatus> getStatus() override { return m12Driver->getStatus(); } Return<void> getCapabilities(getCapabilities_cb _hidl_cb) override { - return m12Driver.getCapabilities(_hidl_cb); + return m12Driver->getCapabilities(_hidl_cb); } Return<void> getSupportedOperations(const V1_0::Model& model, getSupportedOperations_cb _hidl_cb) override { - return m12Driver.getSupportedOperations(model, _hidl_cb); + return m12Driver->getSupportedOperations(model, _hidl_cb); } Return<ErrorStatus> prepareModel( const V1_0::Model& model, const sp<V1_0::IPreparedModelCallback>& actualCallback) override { - return m12Driver.prepareModel(model, actualCallback); + return m12Driver->prepareModel(model, actualCallback); } private: - TestDriver12 m12Driver; + const sp<V1_2::IDevice> m12Driver; }; // Like TestDriver, but implementing 1.0 class TestDriver10 : public V1_0::IDevice { public: - TestDriver10(const std::string& name, ErrorStatus errorStatus) : m12Driver(name, errorStatus) {} + TestDriver10(const std::string& name, ErrorStatus errorStatus) + : m12Driver(new TestDriver12(name, errorStatus)) {} Return<void> getCapabilities(getCapabilities_cb _hidl_cb) override { - return m12Driver.getCapabilities(_hidl_cb); + return m12Driver->getCapabilities(_hidl_cb); } Return<void> getSupportedOperations(const V1_0::Model& model, getSupportedOperations_cb _hidl_cb) override { - return m12Driver.getSupportedOperations(model, _hidl_cb); + return m12Driver->getSupportedOperations(model, _hidl_cb); } Return<ErrorStatus> prepareModel( const V1_0::Model& model, const sp<V1_0::IPreparedModelCallback>& actualCallback) override { - return m12Driver.prepareModel(model, actualCallback); + return m12Driver->prepareModel(model, actualCallback); } - Return<DeviceStatus> getStatus() override { return m12Driver.getStatus(); } + Return<DeviceStatus> getStatus() override { return m12Driver->getStatus(); } private: - TestDriver12 m12Driver; + const sp<V1_2::IDevice> m12Driver; }; // This class adds some simple utilities on top of WrapperCompilation in order @@ -337,7 +339,6 @@ public: // This class has roughly the same functionality as TestCompilation class. // The major difference is that Introspection API is used to select the device. -template <typename DriverClass> class TestIntrospectionCompilation : public WrapperCompilation { public: TestIntrospectionCompilation(const WrapperModel* model, const std::string& deviceName) { @@ -381,7 +382,7 @@ class ExecutionTestTemplate if (kUseIntrospectionAPI) { DeviceManager::get()->forTest_registerDevice(kName.c_str(), new DriverClass(kName, kForceErrorStatus)); - mCompilation = TestIntrospectionCompilation<DriverClass>(&mModel, kName); + mCompilation = TestIntrospectionCompilation(&mModel, kName); } else { mCompilation = TestCompilation<DriverClass>(&mModel, kName, kForceErrorStatus); } |