diff options
author | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-07-25 15:25:44 +0100 |
---|---|---|
committer | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-07-25 16:35:08 +0100 |
commit | ac60d28414041774d7a4c8b6b5c4b0991712ef0f (patch) | |
tree | a2e36604bd567f3b93aa0212963115397eb91374 /src/backends/backendsCommon/test/DynamicBackendTests.hpp | |
parent | b19d2e9c163f44e180a1cfa1bcad6a67e4b7cdd9 (diff) | |
download | armnn-ac60d28414041774d7a4c8b6b5c4b0991712ef0f.tar.gz |
IVGCVSW-3543 Implement the backend versioning algorithm
* Added version structure for backends, with comparisons operators
* Added version to IBackendInternal
* Added version utility function to DynamicBackendUtils class
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
Change-Id: I3697469675c27f79f7cfb296cfa69ec7e06375e5
Diffstat (limited to 'src/backends/backendsCommon/test/DynamicBackendTests.hpp')
-rw-r--r-- | src/backends/backendsCommon/test/DynamicBackendTests.hpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/test/DynamicBackendTests.hpp b/src/backends/backendsCommon/test/DynamicBackendTests.hpp new file mode 100644 index 0000000000..3b0c95b00f --- /dev/null +++ b/src/backends/backendsCommon/test/DynamicBackendTests.hpp @@ -0,0 +1,61 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <backendsCommon/DynamicBackendUtils.hpp> + +#include <test/UnitTests.hpp> + +#include <boost/test/unit_test.hpp> + +void BackendVersioningTestImpl() +{ + class TestDynamicBackendUtils : public armnn::DynamicBackendUtils + { + public: + static bool IsBackendCompatibleTest(const armnn::BackendVersion& backendApiVersion, + const armnn::BackendVersion& backendVersion) + { + return IsBackendCompatibleImpl(backendApiVersion, backendVersion); + } + }; + + // The backend API version used for the tests + armnn::BackendVersion backendApiVersion{ 2, 4 }; + + // Same backend and backend API versions are compatible with the backend API + armnn::BackendVersion sameBackendVersion{ 2, 4 }; + BOOST_TEST(sameBackendVersion == backendApiVersion); + BOOST_TEST(sameBackendVersion <= backendApiVersion); + BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, sameBackendVersion) == true); + + // Backend versions that differ from the backend API version by major revision are not compatible + // with the backend API + armnn::BackendVersion laterMajorBackendVersion{ 3, 4 }; + BOOST_TEST(!(laterMajorBackendVersion == backendApiVersion)); + BOOST_TEST(!(laterMajorBackendVersion <= backendApiVersion)); + BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, laterMajorBackendVersion) == false); + + armnn::BackendVersion earlierMajorBackendVersion{ 1, 4 }; + BOOST_TEST(!(earlierMajorBackendVersion == backendApiVersion)); + BOOST_TEST(earlierMajorBackendVersion <= backendApiVersion); + BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, + earlierMajorBackendVersion) == false); + + // Backend versions with the same major revision but later minor revision than + // the backend API version are not compatible with the backend API + armnn::BackendVersion laterMinorBackendVersion{ 2, 5 }; + BOOST_TEST(!(laterMinorBackendVersion == backendApiVersion)); + BOOST_TEST(!(laterMinorBackendVersion <= backendApiVersion)); + BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, laterMinorBackendVersion) == false); + + // Backend versions with the same major revision but earlier minor revision than + // the backend API version are compatible with the backend API + armnn::BackendVersion earlierMinorBackendVersion{ 2, 3 }; + BOOST_TEST(!(earlierMinorBackendVersion == backendApiVersion)); + BOOST_TEST(earlierMinorBackendVersion <= backendApiVersion); + BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, earlierMinorBackendVersion) == true); +} |