| // |
| // 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); |
| } |