2626#include " gtest/gtest.h"
2727#include " absl/container/flat_hash_set.h"
2828#include " absl/random/random.h"
29+ #include " absl/strings/string_view.h"
2930#include " ./fuzztest/domain_core.h"
3031#include " ./domain_tests/domain_testing.h"
32+ #include " ./fuzztest/internal/domains/container_of_impl.h"
3133#include " ./fuzztest/internal/table_of_recent_compares.h"
3234
3335namespace fuzztest {
@@ -43,8 +45,10 @@ using ::testing::HasSubstr;
4345using ::testing::IsTrue;
4446using ::testing::Lt;
4547using ::testing::Matches;
48+ using ::testing::Not;
4649using ::testing::ResultOf;
4750using ::testing::SizeIs;
51+ using ::testing::status::IsOk;
4852
4953template <typename T>
5054class HandleTypeTest : public testing ::Test {};
@@ -225,5 +229,21 @@ TEST(Domain, AsciiStringUsesDictionary) {
225229 EXPECT_THAT (mutants, Contains (HasSubstr (" 1234" )));
226230}
227231
232+ TEST (StringViewTest, ValidationFailsWhenExceedingDefaultMaxSize) {
233+ auto domain = Arbitrary<std::string_view>();
234+
235+ // Value larger than default max size should be invalid.
236+ std::vector<char > invalid_corpus (internal::kDefaultContainerMaxSize + 1 , ' a' );
237+ EXPECT_THAT (domain.ValidateCorpusValue (invalid_corpus), Not (IsOk ()));
238+ }
239+
240+ TEST (AbslStringViewTest, ValidationFailsWhenExceedingDefaultMaxSize) {
241+ auto domain = Arbitrary<absl::string_view>();
242+
243+ // Value larger than default max size should be invalid.
244+ std::vector<char > invalid_corpus (internal::kDefaultContainerMaxSize + 1 , ' a' );
245+ EXPECT_THAT (domain.ValidateCorpusValue (invalid_corpus), Not (IsOk ()));
246+ }
247+
228248} // namespace
229249} // namespace fuzztest
0 commit comments