| 68 | auto Def = std::make_shared<Definition>(); |
| 69 | Def->DataType = nullptr; |
| 70 | ASSERT_DEATH(FuzzInput Input(Def), ""); |
| 71 | } |
| 72 | |
| 73 | TEST_F(TestProtobufMutator, ArrayLenWhoseArrayIsStringPtrP) { |
| 74 | auto ArrayT = Type::createCharPointerType(); |
| 75 | auto ArrayD = std::make_shared<Definition>(); |
| 76 | ArrayD->Array = true; |
| 77 | ArrayD->DataType = ArrayT; |
| 78 | ArrayD->ID = 0; |
| 79 | |
| 80 | FuzzInput ArrayInput(ArrayD); |
| 81 | |
| 82 | auto ArrayLenT = std::make_shared<Type>(Type::TypeID_Integer); |
| 83 | ArrayLenT->setASTTypeName("unsigned"); |
| 84 | |
| 85 | auto ArrayLenD = std::make_shared<Definition>(); |
| 86 | ArrayLenD->ArrayLen = true; |
| 87 | ArrayLenD->DataType = ArrayLenT; |
| 88 | ArrayLenD->ID = 1; |
| 89 | |
| 90 | FuzzInput ArrayLenInput(ArrayLenD); |
| 91 | |
| 92 | ArrayInput.ArrayLenDef = ArrayLenD.get(); |
| 93 | ArrayLenInput.ArrayDef = ArrayD.get(); |
| 94 | |
| 95 | Mutator.addInput(ArrayInput); |
| 96 | Mutator.addInput(ArrayLenInput); |
| 97 | verifyGenerateResult(); |
| 98 | } |
| 99 | |
| 100 | TEST_F(TestProtobufMutator, NoArrayDefInArrayLenInputN) { |
| 101 | auto ArrayLenT = std::make_shared<Type>(Type::TypeID_Integer); |
| 102 | ArrayLenT->setASTTypeName("unsigned"); |
| 103 | |
| 104 | auto ArrayLenD = std::make_shared<Definition>(); |
| 105 | ArrayLenD->ArrayLen = true; |
| 106 | ArrayLenD->DataType = ArrayLenT; |
| 107 | ArrayLenD->ID = 1; |
| 108 | |
| 109 | FuzzInput ArrayLenInput(ArrayLenD); |
| 110 | |
| 111 | ProtobufMutator Mutator; |
| 112 | ASSERT_DEATH(Mutator.addInput(ArrayLenInput), ""); |
| 113 | } |
| 114 | |
| 115 | TEST_F(TestProtobufMutator, NoArrayTypeInArrayLenInputN) { |
| 116 | auto ArrayD = std::make_shared<Definition>(); |