Fix the validation of `Arbitrary<string_view>`.

PiperOrigin-RevId: 915468584
diff --git a/domain_tests/BUILD b/domain_tests/BUILD
index 8d8d251..ea40cd7 100644
--- a/domain_tests/BUILD
+++ b/domain_tests/BUILD
@@ -281,8 +281,10 @@
         ":domain_testing",
         "@abseil-cpp//absl/container:flat_hash_set",
         "@abseil-cpp//absl/random",
+        "@abseil-cpp//absl/strings:string_view",
         "@com_google_fuzztest//fuzztest:domain_core",
         "@com_google_fuzztest//fuzztest/internal:table_of_recent_compares",
+        "@com_google_fuzztest//fuzztest/internal/domains:core_domains_impl",
         "@googletest//:gtest_main",
     ],
 )
diff --git a/domain_tests/CMakeLists.txt b/domain_tests/CMakeLists.txt
index 6eac153..da7ef0f 100644
--- a/domain_tests/CMakeLists.txt
+++ b/domain_tests/CMakeLists.txt
@@ -275,6 +275,8 @@
     fuzztest::domain_testing
     absl::flat_hash_set
     absl::random_random
+    absl::status
+    absl::strings
     fuzztest::domain_core
     fuzztest::table_of_recent_compares
     GTest::gmock_main
diff --git a/domain_tests/string_domains_test.cc b/domain_tests/string_domains_test.cc
index 0ad0906..c615e17 100644
--- a/domain_tests/string_domains_test.cc
+++ b/domain_tests/string_domains_test.cc
@@ -26,8 +26,10 @@
 #include "gtest/gtest.h"
 #include "absl/container/flat_hash_set.h"
 #include "absl/random/random.h"
+#include "absl/strings/string_view.h"
 #include "./fuzztest/domain_core.h"
 #include "./domain_tests/domain_testing.h"
+#include "./fuzztest/internal/domains/container_of_impl.h"
 #include "./fuzztest/internal/table_of_recent_compares.h"
 
 namespace fuzztest {
@@ -225,5 +227,21 @@
   EXPECT_THAT(mutants, Contains(HasSubstr("1234")));
 }
 
+TEST(StringViewTest, ValidationFailsWhenExceedingDefaultMaxSize) {
+  auto domain = Arbitrary<std::string_view>();
+
+  // Value larger than default max size should be invalid.
+  std::vector<char> invalid_corpus(internal::kDefaultContainerMaxSize + 1, 'a');
+  EXPECT_FALSE(domain.ValidateCorpusValue(invalid_corpus).ok());
+}
+
+TEST(AbslStringViewTest, ValidationFailsWhenExceedingDefaultMaxSize) {
+  auto domain = Arbitrary<absl::string_view>();
+
+  // Value larger than default max size should be invalid.
+  std::vector<char> invalid_corpus(internal::kDefaultContainerMaxSize + 1, 'a');
+  EXPECT_FALSE(domain.ValidateCorpusValue(invalid_corpus).ok());
+}
+
 }  // namespace
 }  // namespace fuzztest
diff --git a/fuzztest/internal/domains/arbitrary_impl.h b/fuzztest/internal/domains/arbitrary_impl.h
index d31c31b..f5717cf 100644
--- a/fuzztest/internal/domains/arbitrary_impl.h
+++ b/fuzztest/internal/domains/arbitrary_impl.h
@@ -364,8 +364,8 @@
     return IRObject::FromCorpus(v);
   }
 
-  absl::Status ValidateCorpusValue(const corpus_type&) const {
-    return absl::OkStatus();  // Nothing to validate.
+  absl::Status ValidateCorpusValue(const corpus_type& val) const {
+    return inner_.ValidateCorpusValue(val);
   }
 
  private:
@@ -423,8 +423,8 @@
     return IRObject::FromCorpus(v);
   }
 
-  absl::Status ValidateCorpusValue(const corpus_type&) const {
-    return absl::OkStatus();  // Nothing to validate.
+  absl::Status ValidateCorpusValue(const corpus_type& val) const {
+    return inner_.ValidateCorpusValue(val);
   }
 
  private: