Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / tests / unit / inference_engine_tests / response_buffer_test.cpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <gtest/gtest.h>
6 #include "../src/inference_engine/description_buffer.hpp"
7
8 using namespace std;
9 using namespace InferenceEngine;
10
11 class ResponseBufferTests: public ::testing::Test {
12 protected:
13     virtual void TearDown() {
14     }
15
16     virtual void SetUp() {
17     }
18
19 public:
20
21 };
22
23
24 TEST_F(ResponseBufferTests, canCreateResponseMessage) {
25     ResponseDesc desc;
26     DescriptionBuffer(&desc) << "make error: " << 1;
27     ASSERT_STREQ("make error: 1", desc.msg);
28 }
29
30 TEST_F(ResponseBufferTests, canReportError) {
31     ResponseDesc desc;
32     DescriptionBuffer d(NETWORK_NOT_LOADED, &desc);
33     d << "make error: ";
34     ASSERT_EQ(NETWORK_NOT_LOADED, (StatusCode)d);
35 }
36
37 TEST_F(ResponseBufferTests, savePreviosMessage) {
38     ResponseDesc desc;
39     desc.msg[0] = 'T';
40     desc.msg[1] = 'e';
41     desc.msg[2] = 's';
42     desc.msg[3] = 't';
43     desc.msg[4] = '\0';
44     DescriptionBuffer d(&desc);
45     ASSERT_EQ(GENERAL_ERROR, (StatusCode)d);
46     ASSERT_EQ(std::string("Test"), desc.msg);
47 }
48
49 TEST_F(ResponseBufferTests, canHandleBigMessage) {
50     ResponseDesc desc;
51     int size = sizeof(desc.msg) / sizeof(desc.msg[0]);
52     DescriptionBuffer buf(&desc);
53     std::string bigVal(size, 'A');
54
55     buf << bigVal;
56     ASSERT_EQ(desc.msg[0], 'A');
57     ASSERT_EQ(desc.msg[size - 2], 'A');
58     ASSERT_EQ(desc.msg[size - 1], 0);
59 }
60
61 TEST_F(ResponseBufferTests, canHandleNotNullTerminatedInput) {
62     ResponseDesc desc;
63     int size = sizeof(desc.msg) / sizeof(desc.msg[0]);
64
65     desc.msg[size - 1] = 'B';
66
67     DescriptionBuffer buf(&desc);
68     std::string bigVal(size, 'A');
69
70     buf << bigVal;
71     ASSERT_EQ(desc.msg[0], 'A');
72     ASSERT_EQ(desc.msg[size - 2], 'A');
73     ASSERT_EQ(desc.msg[size - 1], 0);
74 }
75
76 TEST_F(ResponseBufferTests, canHandlePredefined) {
77     ResponseDesc desc;
78     int size = sizeof(desc.msg) / sizeof(desc.msg[0]);
79
80     DescriptionBuffer buf(&desc);
81     std::string bigVal(size, 'A');
82     buf << bigVal;
83
84     DescriptionBuffer buf2(&desc);
85     std::string bigVal2(size, 'B');
86     buf2 << bigVal2;
87
88     ASSERT_EQ(desc.msg[0], 'A');
89     ASSERT_EQ(desc.msg[size - 2], 'A');
90     ASSERT_EQ(desc.msg[size - 1], 0);
91 }
92
93 TEST_F(ResponseBufferTests, canHandleNotNullTerminatedPredefined) {
94     ResponseDesc desc;
95     int size = sizeof(desc.msg) / sizeof(desc.msg[0]);
96
97     DescriptionBuffer buf(&desc);
98     std::string bigVal(size, 'A');
99     buf << bigVal;
100
101     desc.msg[size - 1] = 'B';
102
103     DescriptionBuffer buf2(&desc);
104     std::string bigVal2(size, 'B');
105     buf2 << bigVal2;
106
107     ASSERT_EQ(desc.msg[0], 'A');
108     ASSERT_EQ(desc.msg[size - 2], 'A');
109     ASSERT_EQ(desc.msg[size - 1], 0);
110 }