blob: 3b0c95b00fdd7dd89e224663465954f2f00a1bda [file] [log] [blame]
Matteo Martincighac60d282019-07-25 15:25:44 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <backendsCommon/DynamicBackendUtils.hpp>
9
10#include <test/UnitTests.hpp>
11
12#include <boost/test/unit_test.hpp>
13
14void BackendVersioningTestImpl()
15{
16 class TestDynamicBackendUtils : public armnn::DynamicBackendUtils
17 {
18 public:
19 static bool IsBackendCompatibleTest(const armnn::BackendVersion& backendApiVersion,
20 const armnn::BackendVersion& backendVersion)
21 {
22 return IsBackendCompatibleImpl(backendApiVersion, backendVersion);
23 }
24 };
25
26 // The backend API version used for the tests
27 armnn::BackendVersion backendApiVersion{ 2, 4 };
28
29 // Same backend and backend API versions are compatible with the backend API
30 armnn::BackendVersion sameBackendVersion{ 2, 4 };
31 BOOST_TEST(sameBackendVersion == backendApiVersion);
32 BOOST_TEST(sameBackendVersion <= backendApiVersion);
33 BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, sameBackendVersion) == true);
34
35 // Backend versions that differ from the backend API version by major revision are not compatible
36 // with the backend API
37 armnn::BackendVersion laterMajorBackendVersion{ 3, 4 };
38 BOOST_TEST(!(laterMajorBackendVersion == backendApiVersion));
39 BOOST_TEST(!(laterMajorBackendVersion <= backendApiVersion));
40 BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, laterMajorBackendVersion) == false);
41
42 armnn::BackendVersion earlierMajorBackendVersion{ 1, 4 };
43 BOOST_TEST(!(earlierMajorBackendVersion == backendApiVersion));
44 BOOST_TEST(earlierMajorBackendVersion <= backendApiVersion);
45 BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion,
46 earlierMajorBackendVersion) == false);
47
48 // Backend versions with the same major revision but later minor revision than
49 // the backend API version are not compatible with the backend API
50 armnn::BackendVersion laterMinorBackendVersion{ 2, 5 };
51 BOOST_TEST(!(laterMinorBackendVersion == backendApiVersion));
52 BOOST_TEST(!(laterMinorBackendVersion <= backendApiVersion));
53 BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, laterMinorBackendVersion) == false);
54
55 // Backend versions with the same major revision but earlier minor revision than
56 // the backend API version are compatible with the backend API
57 armnn::BackendVersion earlierMinorBackendVersion{ 2, 3 };
58 BOOST_TEST(!(earlierMinorBackendVersion == backendApiVersion));
59 BOOST_TEST(earlierMinorBackendVersion <= backendApiVersion);
60 BOOST_TEST(TestDynamicBackendUtils::IsBackendCompatibleTest(backendApiVersion, earlierMinorBackendVersion) == true);
61}