1 /** 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include <gtest/gtest.h> 17 18 #include "annotation.h" 19 #include "annotation.cpp" 20 21 using namespace testing::ext; 22 23 namespace panda::pandasm { 24 class AnnotationDataTest : public testing::Test { 25 }; 26 27 namespace { 28 constexpr const std::string_view TSTYPE_ANNO_RECORD_NAME = "_TestAnnotation"; 29 constexpr const std::string_view TSTYPE_ANNO_ELEMENT_NAME = "_TestInstruction"; 30 } 31 32 /** 33 * @tc.name: annotation_test_001 34 * @tc.desc: Verify the SetOrAddElementByIndex function. 35 * @tc.type: FUNC 36 * @tc.require: issueNumber 37 */ 38 HWTEST_F(AnnotationDataTest, annotation_test_001, TestSize.Level1) 39 { 40 ScalarValue insn_order(ScalarValue::Create<panda::pandasm::Value::Type::I32>(1)); 41 std::vector<panda::pandasm::ScalarValue> elements; 42 elements.emplace_back(std::move(insn_order)); 43 44 ArrayValue array_value(panda::pandasm::Value::Type::I32, elements); 45 AnnotationElement anno_element(TSTYPE_ANNO_ELEMENT_NAME, std::make_unique<ArrayValue>(array_value)); 46 AnnotationData annotationData(TSTYPE_ANNO_RECORD_NAME); 47 annotationData.AddElement(std::move(anno_element)); 48 49 size_t ele_idx = 0; 50 annotationData.SetOrAddElementByIndex(ele_idx, std::move(anno_element)); 51 EXPECT_EQ(annotationData.GetElements().size(), elements.size()); 52 53 ele_idx = elements.size(); 54 annotationData.SetOrAddElementByIndex(ele_idx, std::move(anno_element)); 55 EXPECT_GT(annotationData.GetElements().size(), elements.size()); 56 57 ScalarValue insn_order1(ScalarValue::Create<panda::pandasm::Value::Type::U1>(1U)); 58 elements.emplace_back(std::move(insn_order1)); 59 ArrayValue array_value_U1(panda::pandasm::Value::Type::U1, elements); 60 AnnotationElement anno_element_U1(TSTYPE_ANNO_ELEMENT_NAME, std::make_unique<ArrayValue>(array_value_U1)); 61 anno_element = anno_element_U1; 62 EXPECT_EQ(anno_element.GetName(), "_TestInstruction"); 63 } 64 65 /** 66 * @tc.name: annotation_test_002 67 * @tc.desc: Verify the GetArrayTypeAsChar function. 68 * @tc.type: FUNC 69 * @tc.require: issueNumber 70 */ 71 HWTEST_F(AnnotationDataTest, annotation_test_002, TestSize.Level1) 72 { 73 char type = '1'; 74 char type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::U1); 75 EXPECT_EQ(type_u1, type); 76 77 type = '2'; 78 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::I8); 79 EXPECT_EQ(type_u1, type); 80 81 type = '3'; 82 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::U8); 83 EXPECT_EQ(type_u1, type); 84 85 type = '4'; 86 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::I16); 87 EXPECT_EQ(type_u1, type); 88 89 type = '5'; 90 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::U16); 91 EXPECT_EQ(type_u1, type); 92 93 type = '6'; 94 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::I32); 95 EXPECT_EQ(type_u1, type); 96 97 type = '7'; 98 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::U32); 99 EXPECT_EQ(type_u1, type); 100 101 type = '8'; 102 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::I64); 103 EXPECT_EQ(type_u1, type); 104 105 type = '9'; 106 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::U64); 107 EXPECT_EQ(type_u1, type); 108 109 type = 'A'; 110 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::F32); 111 EXPECT_EQ(type_u1, type); 112 113 type = 'B'; 114 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::F64); 115 EXPECT_EQ(type_u1, type); 116 117 type = 'C'; 118 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::STRING); 119 EXPECT_EQ(type_u1, type); 120 121 type = 'D'; 122 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::RECORD); 123 EXPECT_EQ(type_u1, type); 124 125 type = 'E'; 126 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::METHOD); 127 EXPECT_EQ(type_u1, type); 128 129 type = 'F'; 130 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::ENUM); 131 EXPECT_EQ(type_u1, type); 132 133 type = 'G'; 134 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::ANNOTATION); 135 EXPECT_EQ(type_u1, type); 136 137 type = 'H'; 138 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::ARRAY); 139 EXPECT_EQ(type_u1, type); 140 141 type = 'I'; 142 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::VOID); 143 EXPECT_EQ(type_u1, type); 144 145 type = 'J'; 146 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::METHOD_HANDLE); 147 EXPECT_EQ(type_u1, type); 148 149 type = '*'; 150 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::STRING_NULLPTR); 151 EXPECT_EQ(type_u1, type); 152 153 type = '#'; 154 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::LITERALARRAY); 155 EXPECT_EQ(type_u1, type); 156 157 type = '0'; 158 type_u1 = Value::GetTypeAsChar(panda::pandasm::Value::Type::UNKNOWN); 159 EXPECT_EQ(type_u1, type); 160 161 type = 'K'; 162 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::U1); 163 EXPECT_EQ(type_u1, type); 164 165 type = 'L'; 166 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::I8); 167 EXPECT_EQ(type_u1, type); 168 169 type = 'M'; 170 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::U8); 171 EXPECT_EQ(type_u1, type); 172 173 type = 'N'; 174 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::I16); 175 EXPECT_EQ(type_u1, type); 176 177 type = 'O'; 178 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::U16); 179 EXPECT_EQ(type_u1, type); 180 181 type = 'P'; 182 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::I32); 183 EXPECT_EQ(type_u1, type); 184 185 type = 'Q'; 186 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::U32); 187 EXPECT_EQ(type_u1, type); 188 189 type = 'R'; 190 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::I64); 191 EXPECT_EQ(type_u1, type); 192 193 type = 'S'; 194 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::U64); 195 EXPECT_EQ(type_u1, type); 196 197 type = 'T'; 198 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::F32); 199 EXPECT_EQ(type_u1, type); 200 201 type = 'U'; 202 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::F64); 203 EXPECT_EQ(type_u1, type); 204 205 type = 'V'; 206 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::STRING); 207 EXPECT_EQ(type_u1, type); 208 209 type = 'W'; 210 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::RECORD); 211 EXPECT_EQ(type_u1, type); 212 213 type = 'X'; 214 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::METHOD); 215 EXPECT_EQ(type_u1, type); 216 217 type = 'Y'; 218 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::ENUM); 219 EXPECT_EQ(type_u1, type); 220 221 type = 'Z'; 222 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::ANNOTATION); 223 EXPECT_EQ(type_u1, type); 224 225 type = '@'; 226 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::METHOD_HANDLE); 227 EXPECT_EQ(type_u1, type); 228 229 type = '0'; 230 type_u1 = Value::GetArrayTypeAsChar(panda::pandasm::Value::Type::UNKNOWN); 231 EXPECT_EQ(type_u1, type); 232 } 233 234 /** 235 * @tc.name: annotation_test_003 236 * @tc.desc: Verify the GetCharAsType function. 237 * @tc.type: FUNC 238 * @tc.require: issueNumber 239 */ 240 HWTEST_F(AnnotationDataTest, annotation_test_003, TestSize.Level1) 241 { 242 panda::pandasm::Value::Type type = Value::GetCharAsType('1'); 243 EXPECT_EQ(panda::pandasm::Value::Type::U1, type); 244 245 type = Value::GetCharAsType('2'); 246 EXPECT_EQ(panda::pandasm::Value::Type::I8, type); 247 248 type = Value::GetCharAsType('3'); 249 EXPECT_EQ(panda::pandasm::Value::Type::U8, type); 250 251 type = Value::GetCharAsType('4'); 252 EXPECT_EQ(panda::pandasm::Value::Type::I16, type); 253 254 type = Value::GetCharAsType('5'); 255 EXPECT_EQ(panda::pandasm::Value::Type::U16, type); 256 257 type = Value::GetCharAsType('6'); 258 EXPECT_EQ(panda::pandasm::Value::Type::I32, type); 259 260 type = Value::GetCharAsType('7'); 261 EXPECT_EQ(panda::pandasm::Value::Type::U32, type); 262 263 type = Value::GetCharAsType('8'); 264 EXPECT_EQ(panda::pandasm::Value::Type::I64, type); 265 266 type = Value::GetCharAsType('9'); 267 EXPECT_EQ(panda::pandasm::Value::Type::U64, type); 268 269 type = Value::GetCharAsType('A'); 270 EXPECT_EQ(panda::pandasm::Value::Type::F32, type); 271 272 type = Value::GetCharAsType('B'); 273 EXPECT_EQ(panda::pandasm::Value::Type::F64, type); 274 275 type = Value::GetCharAsType('C'); 276 EXPECT_EQ(panda::pandasm::Value::Type::STRING, type); 277 278 type = Value::GetCharAsType('D'); 279 EXPECT_EQ(panda::pandasm::Value::Type::RECORD, type); 280 281 type = Value::GetCharAsType('E'); 282 EXPECT_EQ(panda::pandasm::Value::Type::METHOD, type); 283 284 type = Value::GetCharAsType('F'); 285 EXPECT_EQ(panda::pandasm::Value::Type::ENUM, type); 286 287 type = Value::GetCharAsType('G'); 288 EXPECT_EQ(panda::pandasm::Value::Type::ANNOTATION, type); 289 290 type = Value::GetCharAsType('H'); 291 EXPECT_EQ(panda::pandasm::Value::Type::ARRAY, type); 292 293 type = Value::GetCharAsType('I'); 294 EXPECT_EQ(panda::pandasm::Value::Type::VOID, type); 295 296 type = Value::GetCharAsType('J'); 297 EXPECT_EQ(panda::pandasm::Value::Type::METHOD_HANDLE, type); 298 299 type = Value::GetCharAsType('*'); 300 EXPECT_EQ(panda::pandasm::Value::Type::STRING_NULLPTR, type); 301 302 type = Value::GetCharAsType('0'); 303 EXPECT_EQ(panda::pandasm::Value::Type::UNKNOWN, type); 304 305 type = Value::GetCharAsArrayType('K'); 306 EXPECT_EQ(panda::pandasm::Value::Type::U1, type); 307 308 type = Value::GetCharAsArrayType('L'); 309 EXPECT_EQ(panda::pandasm::Value::Type::I8, type); 310 311 type = Value::GetCharAsArrayType('M'); 312 EXPECT_EQ(panda::pandasm::Value::Type::U8, type); 313 314 type = Value::GetCharAsArrayType('N'); 315 EXPECT_EQ(panda::pandasm::Value::Type::I16, type); 316 317 type = Value::GetCharAsArrayType('O'); 318 EXPECT_EQ(panda::pandasm::Value::Type::U16, type); 319 320 type = Value::GetCharAsArrayType('P'); 321 EXPECT_EQ(panda::pandasm::Value::Type::I32, type); 322 323 type = Value::GetCharAsArrayType('Q'); 324 EXPECT_EQ(panda::pandasm::Value::Type::U32, type); 325 326 type = Value::GetCharAsArrayType('R'); 327 EXPECT_EQ(panda::pandasm::Value::Type::I64, type); 328 329 type = Value::GetCharAsArrayType('S'); 330 EXPECT_EQ(panda::pandasm::Value::Type::U64, type); 331 332 type = Value::GetCharAsArrayType('T'); 333 EXPECT_EQ(panda::pandasm::Value::Type::F32, type); 334 335 type = Value::GetCharAsArrayType('U'); 336 EXPECT_EQ(panda::pandasm::Value::Type::F64, type); 337 338 type = Value::GetCharAsArrayType('V'); 339 EXPECT_EQ(panda::pandasm::Value::Type::STRING, type); 340 341 type = Value::GetCharAsArrayType('W'); 342 EXPECT_EQ(panda::pandasm::Value::Type::RECORD, type); 343 344 type = Value::GetCharAsArrayType('X'); 345 EXPECT_EQ(panda::pandasm::Value::Type::METHOD, type); 346 347 type = Value::GetCharAsArrayType('Y'); 348 EXPECT_EQ(panda::pandasm::Value::Type::ENUM, type); 349 350 type = Value::GetCharAsArrayType('Z'); 351 EXPECT_EQ(panda::pandasm::Value::Type::ANNOTATION, type); 352 353 type = Value::GetCharAsArrayType('@'); 354 EXPECT_EQ(panda::pandasm::Value::Type::METHOD_HANDLE, type); 355 356 type = Value::GetCharAsArrayType('0'); 357 EXPECT_EQ(panda::pandasm::Value::Type::UNKNOWN, type); 358 } 359 360 /** 361 * @tc.name: annotation_test_004 362 * @tc.desc: Verify the TypeToString function. 363 * @tc.type: FUNC 364 * @tc.require: issueNumber 365 */ 366 HWTEST_F(AnnotationDataTest, annotation_test_004, TestSize.Level1) 367 { 368 std::string type = "u1"; 369 std::string type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::U1); 370 EXPECT_EQ(type_u1, type); 371 372 type = "i8"; 373 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::I8); 374 EXPECT_EQ(type_u1, type); 375 376 type = "u8"; 377 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::U8); 378 EXPECT_EQ(type_u1, type); 379 380 type = "i16"; 381 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::I16); 382 EXPECT_EQ(type_u1, type); 383 384 type = "u16"; 385 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::U16); 386 EXPECT_EQ(type_u1, type); 387 388 type = "i32"; 389 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::I32); 390 EXPECT_EQ(type_u1, type); 391 392 type = "u32"; 393 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::U32); 394 EXPECT_EQ(type_u1, type); 395 396 type = "i64"; 397 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::I64); 398 EXPECT_EQ(type_u1, type); 399 400 type = "u64"; 401 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::U64); 402 EXPECT_EQ(type_u1, type); 403 404 type = "f32"; 405 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::F32); 406 EXPECT_EQ(type_u1, type); 407 408 type = "f64"; 409 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::F64); 410 EXPECT_EQ(type_u1, type); 411 412 type = "string"; 413 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::STRING); 414 EXPECT_EQ(type_u1, type); 415 416 type = "class"; 417 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::RECORD); 418 EXPECT_EQ(type_u1, type); 419 420 type = "method"; 421 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::METHOD); 422 EXPECT_EQ(type_u1, type); 423 424 type = "enum"; 425 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::ENUM); 426 EXPECT_EQ(type_u1, type); 427 428 type = "annotation"; 429 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::ANNOTATION); 430 EXPECT_EQ(type_u1, type); 431 432 type = "array"; 433 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::ARRAY); 434 EXPECT_EQ(type_u1, type); 435 436 type = "void"; 437 type_u1 = AnnotationElement::TypeToString(panda::pandasm::Value::Type::VOID); 438 EXPECT_EQ(type_u1, type); 439 } 440 441 /** 442 * @tc.name: annotation_test_005 443 * @tc.desc: Verify the InitScalarValue function. 444 * @tc.type: FUNC 445 * @tc.require: issueNumber 446 */ 447 HWTEST_F(AnnotationDataTest, annotation_test_005, TestSize.Level1) 448 { 449 ScalarValue insn_order(ScalarValue::Create<panda::pandasm::Value::Type::I32>(1)); 450 std::unique_ptr<ScalarValue> value = panda::pandasm::InitScalarValue(insn_order); 451 EXPECT_NE(value, nullptr); 452 453 ScalarValue insn_order_u8(ScalarValue::Create<panda::pandasm::Value::Type::U8>(1U)); 454 value = panda::pandasm::InitScalarValue(insn_order_u8); 455 EXPECT_NE(value, nullptr); 456 457 ScalarValue insn_order_u16(ScalarValue::Create<panda::pandasm::Value::Type::U16>(1U)); 458 value = panda::pandasm::InitScalarValue(insn_order_u16); 459 EXPECT_NE(value, nullptr); 460 461 ScalarValue insn_order_u32(ScalarValue::Create<panda::pandasm::Value::Type::U32>(1U)); 462 value = panda::pandasm::InitScalarValue(insn_order_u32); 463 EXPECT_NE(value, nullptr); 464 465 ScalarValue insn_order_u64(ScalarValue::Create<panda::pandasm::Value::Type::U64>(1U)); 466 value = panda::pandasm::InitScalarValue(insn_order_u64); 467 EXPECT_NE(value, nullptr); 468 469 ScalarValue insn_order_i8(ScalarValue::Create<panda::pandasm::Value::Type::I8>(1)); 470 value = panda::pandasm::InitScalarValue(insn_order_i8); 471 EXPECT_NE(value, nullptr); 472 473 ScalarValue insn_order_i16(ScalarValue::Create<panda::pandasm::Value::Type::I16>(1)); 474 value = panda::pandasm::InitScalarValue(insn_order_i16); 475 EXPECT_NE(value, nullptr); 476 477 ScalarValue insn_order_i64(ScalarValue::Create<panda::pandasm::Value::Type::I64>(1)); 478 value = panda::pandasm::InitScalarValue(insn_order_i64); 479 EXPECT_NE(value, nullptr); 480 481 ScalarValue insn_order_f32(ScalarValue::Create<panda::pandasm::Value::Type::F32>(1)); 482 value = panda::pandasm::InitScalarValue(insn_order_f32); 483 EXPECT_NE(value, nullptr); 484 485 ScalarValue insn_order_f64(ScalarValue::Create<panda::pandasm::Value::Type::F64>(1)); 486 value = panda::pandasm::InitScalarValue(insn_order_f64); 487 EXPECT_NE(value, nullptr); 488 489 ScalarValue insn_order_string(ScalarValue::Create<panda::pandasm::Value::Type::STRING>("test")); 490 value = panda::pandasm::InitScalarValue(insn_order_string); 491 EXPECT_NE(value, nullptr); 492 493 ScalarValue insn_order_strings(ScalarValue::Create<panda::pandasm::Value::Type::STRING_NULLPTR>(1)); 494 value = panda::pandasm::InitScalarValue(insn_order_strings); 495 EXPECT_NE(value, nullptr); 496 497 panda::pandasm::Type type; 498 ScalarValue insn_order_record(ScalarValue::Create<panda::pandasm::Value::Type::RECORD>(type)); 499 value = panda::pandasm::InitScalarValue(insn_order_record); 500 EXPECT_NE(value, nullptr); 501 502 ScalarValue insn_order_method(ScalarValue::Create<panda::pandasm::Value::Type::METHOD>("test")); 503 value = panda::pandasm::InitScalarValue(insn_order_method); 504 EXPECT_NE(value, nullptr); 505 506 ScalarValue insn_order_enum(ScalarValue::Create<panda::pandasm::Value::Type::ENUM>("test")); 507 value = panda::pandasm::InitScalarValue(insn_order_enum); 508 EXPECT_NE(value, nullptr); 509 510 ScalarValue insn_orders(ScalarValue::Create<panda::pandasm::Value::Type::I32>(1)); 511 std::vector<panda::pandasm::ScalarValue> elements; 512 elements.emplace_back(std::move(insn_orders)); 513 514 ArrayValue array_value(panda::pandasm::Value::Type::I32, elements); 515 AnnotationElement anno_element(TSTYPE_ANNO_ELEMENT_NAME, std::make_unique<ArrayValue>(array_value)); 516 AnnotationData annotationData(TSTYPE_ANNO_RECORD_NAME); 517 ScalarValue insn_order_anno(ScalarValue::Create<panda::pandasm::Value::Type::ANNOTATION>(annotationData)); 518 value = panda::pandasm::InitScalarValue(insn_order_anno); 519 EXPECT_NE(value, nullptr); 520 521 ScalarValue insn_order_lite(ScalarValue::Create<panda::pandasm::Value::Type::LITERALARRAY>("test")); 522 value = panda::pandasm::InitScalarValue(insn_order_lite); 523 EXPECT_NE(value, nullptr); 524 525 ArrayValue array_values(panda::pandasm::Value::Type::LITERALARRAY, elements); 526 AnnotationElement element(TSTYPE_ANNO_ELEMENT_NAME, std::make_unique<ArrayValue>(array_values)); 527 std::unique_ptr<Value> val = panda::pandasm::making_value(element); 528 EXPECT_NE(val, nullptr); 529 530 elements.clear(); 531 ArrayValue array_values1(panda::pandasm::Value::Type::LITERALARRAY, elements); 532 AnnotationElement element1(TSTYPE_ANNO_ELEMENT_NAME, std::make_unique<ArrayValue>(array_values1)); 533 std::unique_ptr<Value> val1 = panda::pandasm::making_value(element1); 534 EXPECT_NE(val1, nullptr); 535 } 536 }