@@ -58,6 +58,11 @@ TYPED_TEST_P(ParametredOffloadTensorTest, read_tensor) {
58
58
EXPECT_NO_THROW (tensor = read_tensor_data (this ->file_name , this ->ov_type , this ->shape , 0 ));
59
59
EXPECT_EQ (0 , memcmp (tensor.data (), this ->initial_tensor .data (), this ->data_size ));
60
60
}
61
+ {
62
+ ov::Tensor tensor;
63
+ EXPECT_NO_THROW (tensor = read_tensor_data (this ->file_name , this ->ov_type , this ->shape , 0 , false ));
64
+ EXPECT_EQ (0 , memcmp (tensor.data (), this ->initial_tensor .data (), this ->data_size ));
65
+ }
61
66
}
62
67
63
68
REGISTER_TYPED_TEST_SUITE_P (ParametredOffloadTensorTest, read_tensor);
@@ -80,18 +85,6 @@ using TypesToTest = ::testing::Types<float,
80
85
81
86
INSTANTIATE_TYPED_TEST_SUITE_P (OffloadTensorTest, ParametredOffloadTensorTest, TypesToTest);
82
87
83
- TEST (OffloadTensorTest, string_tensor_throws) {
84
- auto file_name = ov::test::utils::generateTestFilePrefix ();
85
- {
86
- std::ofstream fout (file_name, std::ios::binary);
87
- fout << " Hello, world!" ;
88
- fout.close ();
89
- ASSERT_TRUE (std::filesystem::exists (file_name));
90
- EXPECT_THROW (read_tensor_data (file_name, ov::element::string), ov::Exception);
91
- std::filesystem::remove (file_name);
92
- }
93
- }
94
-
95
88
class FunctionalOffloadTensorTest : public ::testing::Test {
96
89
public:
97
90
void SetUp () override {
@@ -124,6 +117,14 @@ class FunctionalOffloadTensorTest : public ::testing::Test {
124
117
std::string file_name;
125
118
};
126
119
120
+ TEST_F (FunctionalOffloadTensorTest, string_tensor_throws) {
121
+ {
122
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov::element::string), ov::Exception);
123
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov::element::string, PartialShape::dynamic (1 ), 0 , false ),
124
+ ov::Exception);
125
+ }
126
+ }
127
+
127
128
TEST_F (FunctionalOffloadTensorTest, read_with_offset) {
128
129
{
129
130
float dummy = 0 ;
@@ -138,22 +139,33 @@ TEST_F(FunctionalOffloadTensorTest, read_with_offset) {
138
139
EXPECT_NO_THROW (tensor = read_tensor_data (file_name, ov_type, shape, sizeof (float )));
139
140
EXPECT_EQ (0 , memcmp (tensor.data (), init_values.data (), data_size));
140
141
}
142
+ {
143
+ ov::Tensor tensor;
144
+ EXPECT_NO_THROW (tensor = read_tensor_data (file_name, ov_type, shape, sizeof (float ), false ));
145
+ EXPECT_EQ (0 , memcmp (tensor.data (), init_values.data (), data_size));
146
+ }
141
147
}
142
148
143
149
TEST_F (FunctionalOffloadTensorTest, read_small_file) {
144
150
auto new_shape = shape;
145
151
new_shape[0 ] = 10 ;
146
- { EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, new_shape, 0 ), ov::Exception); }
152
+ {
153
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, new_shape, 0 ), ov::Exception);
154
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, new_shape, 0 , false ), ov::Exception);
155
+ }
147
156
}
148
157
149
158
TEST_F (FunctionalOffloadTensorTest, read_too_big_offset) {
150
159
{
151
160
// offset + data_size > file_size
152
161
EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, shape, 1 ), ov::Exception);
162
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, shape, 1 , false ), ov::Exception);
153
163
// offset == file_size
154
164
EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, shape, data_size), ov::Exception);
165
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, shape, data_size, false ), ov::Exception);
155
166
// offset > file_size
156
167
EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, shape, data_size + 1 ), ov::Exception);
168
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, shape, data_size + 1 , false ), ov::Exception);
157
169
}
158
170
}
159
171
@@ -163,23 +175,39 @@ TEST_F(FunctionalOffloadTensorTest, read_dynamic_shape) {
163
175
EXPECT_NO_THROW (tensor = read_tensor_data (file_name, ov_type, PartialShape::dynamic (1 ), 0 ));
164
176
EXPECT_EQ (0 , memcmp (tensor.data (), init_values.data (), data_size));
165
177
}
178
+ {
179
+ ov::Tensor tensor;
180
+ EXPECT_NO_THROW (tensor = read_tensor_data (file_name, ov_type, PartialShape::dynamic (1 ), 0 , false ));
181
+ EXPECT_EQ (0 , memcmp (tensor.data (), init_values.data (), data_size));
182
+ }
166
183
{
167
184
ov::Tensor tensor;
168
185
EXPECT_NO_THROW (tensor = read_tensor_data (file_name));
169
186
EXPECT_EQ (0 , memcmp (tensor.data (), init_values.data (), data_size));
170
187
}
188
+ {
189
+ ov::Tensor tensor;
190
+ EXPECT_NO_THROW (tensor = read_tensor_data (file_name, ov::element::u8, PartialShape::dynamic (1 ), 0 , false ));
191
+ EXPECT_EQ (0 , memcmp (tensor.data (), init_values.data (), data_size));
192
+ }
171
193
}
172
194
173
195
TEST_F (FunctionalOffloadTensorTest, read_1_dynamic_dimension) {
196
+ auto shape_with_1_dynamic_dimension = shape;
197
+ size_t dynamic_dimension_number = shape_with_1_dynamic_dimension.size () - 1 ;
198
+ shape_with_1_dynamic_dimension[dynamic_dimension_number] = -1 ;
174
199
{
175
200
ov::Tensor tensor;
176
- auto shape_with_1_dynamic_dimension = shape;
177
- size_t dynamic_dimension_number = shape_with_1_dynamic_dimension.size () - 1 ;
178
- shape_with_1_dynamic_dimension[dynamic_dimension_number] = -1 ;
179
201
EXPECT_NO_THROW (tensor = read_tensor_data (file_name, ov_type, shape_with_1_dynamic_dimension, 0 ));
180
202
EXPECT_EQ (tensor.get_shape ()[dynamic_dimension_number], shape.get_shape ()[dynamic_dimension_number]);
181
203
EXPECT_EQ (0 , memcmp (tensor.data (), init_values.data (), data_size));
182
204
}
205
+ {
206
+ ov::Tensor tensor;
207
+ EXPECT_NO_THROW (tensor = read_tensor_data (file_name, ov_type, shape_with_1_dynamic_dimension, 0 , false ));
208
+ EXPECT_EQ (tensor.get_shape ()[dynamic_dimension_number], shape.get_shape ()[dynamic_dimension_number]);
209
+ EXPECT_EQ (0 , memcmp (tensor.data (), init_values.data (), data_size));
210
+ }
183
211
}
184
212
185
213
TEST_F (FunctionalOffloadTensorTest, read_wrong_dynamic_shape) {
@@ -189,6 +217,8 @@ TEST_F(FunctionalOffloadTensorTest, read_wrong_dynamic_shape) {
189
217
shape_with_1_dynamic_dimension[shape_with_1_dynamic_dimension.size () - 2 ] = 100 ;
190
218
EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, shape_with_1_dynamic_dimension, 0 ),
191
219
ov::Exception);
220
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov_type, shape_with_1_dynamic_dimension, 0 , false ),
221
+ ov::Exception);
192
222
}
193
223
}
194
224
@@ -199,6 +229,10 @@ TEST_F(FunctionalOffloadTensorTest, read_type_doesnt_fit_file_size) {
199
229
}
200
230
ASSERT_TRUE (std::filesystem::exists (file_name));
201
231
202
- { EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov::element::f32), ov::Exception); }
232
+ {
233
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov::element::f32), ov::Exception);
234
+ EXPECT_THROW (std::ignore = read_tensor_data (file_name, ov::element::f32, PartialShape::dynamic (1 ), 0 , false ),
235
+ ov::Exception);
236
+ }
203
237
}
204
238
} // namespace ov::test
0 commit comments