Use the bug ID from crashing input filename when registering reproducer tests.

PiperOrigin-RevId: 828517947
diff --git a/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnCrashingInput/crashing/crashing1 b/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnCrashingInput/crashing/crashing1-crash_sig-input_sig
similarity index 100%
rename from e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnCrashingInput/crashing/crashing1
rename to e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnCrashingInput/crashing/crashing1-crash_sig-input_sig
diff --git a/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnCrashingInput/crashing/invalid-format b/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnCrashingInput/crashing/invalid-format
new file mode 100644
index 0000000..076d9e5
--- /dev/null
+++ b/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnCrashingInput/crashing/invalid-format
@@ -0,0 +1,4 @@
+FUZZTESTv1
+sub {
+  s: "crashing input, but file name has invalid format"
+}
diff --git a/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnFailingTestInput/crashing/crashing1 b/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnFailingTestInput/crashing/crashing1-crash_sig-input_sig
similarity index 100%
rename from e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnFailingTestInput/crashing/crashing1
rename to e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnFailingTestInput/crashing/crashing1-crash_sig-input_sig
diff --git a/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnFailingTestInput/crashing/invalid-format b/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnFailingTestInput/crashing/invalid-format
new file mode 100644
index 0000000..076d9e5
--- /dev/null
+++ b/e2e_tests/testdata/corpus_database/fuzz_tests_for_functional_testing.stripped/MySuite.CrashOnFailingTestInput/crashing/invalid-format
@@ -0,0 +1,4 @@
+FUZZTESTv1
+sub {
+  s: "crashing input, but file name has invalid format"
+}
diff --git a/fuzztest/internal/BUILD b/fuzztest/internal/BUILD
index ef0db10..1a3de14 100644
--- a/fuzztest/internal/BUILD
+++ b/fuzztest/internal/BUILD
@@ -225,9 +225,12 @@
         ":io",
         ":registry",
         ":runtime",
+        "@abseil-cpp//absl/status:statusor",
         "@abseil-cpp//absl/strings",
         "@abseil-cpp//absl/strings:str_format",
         "@abseil-cpp//absl/strings:string_view",
+        "@com_google_fuzztest//common:crashing_input_filename",
+        "@com_google_fuzztest//common:logging",
         "@googletest//:gtest",
     ] + select({
         "@com_google_fuzztest//fuzztest:use_centipede": [":centipede_adaptor"],
diff --git a/fuzztest/internal/CMakeLists.txt b/fuzztest/internal/CMakeLists.txt
index 667a695..5d01571 100644
--- a/fuzztest/internal/CMakeLists.txt
+++ b/fuzztest/internal/CMakeLists.txt
@@ -188,10 +188,13 @@
     fuzztest::io
     fuzztest::registry
     fuzztest::runtime
+    GTest::gtest
+    absl::statusor
     absl::strings
     absl::str_format
     absl::string_view
-    GTest::gtest
+    fuzztest::crashing_input_filename
+    fuzztest::common_logging
 )
 
 fuzztest_cc_library(
diff --git a/fuzztest/internal/googletest_adaptor.cc b/fuzztest/internal/googletest_adaptor.cc
index c989e7a..70ffe85 100644
--- a/fuzztest/internal/googletest_adaptor.cc
+++ b/fuzztest/internal/googletest_adaptor.cc
@@ -3,14 +3,18 @@
 
 #include <cstdlib>
 #include <string>
+#include <string_view>
 #include <type_traits>
 #include <utility>
 #include <vector>
 
 #include "gtest/gtest.h"
+#include "absl/status/statusor.h"
 #include "absl/strings/str_cat.h"
 #include "absl/strings/str_format.h"
 #include "absl/strings/string_view.h"
+#include "./common/crashing_input_filename.h"
+#include "./common/logging.h"
 #include "./fuzztest/internal/configuration.h"
 #include "./fuzztest/internal/corpus_database.h"
 #include "./fuzztest/internal/flag_name.h"
@@ -63,18 +67,28 @@
     const Configuration& configuration) {
   if (!configuration.reproduce_findings_as_separate_tests) return;
 #ifdef FUZZTEST_USE_CENTIPEDE
-  const auto crash_inputs =
+  const std::vector<std::string> crash_inputs =
       ListCrashIdsUsingCentipede(configuration, test.full_name());
 #else
   CorpusDatabase corpus_database(configuration);
-  const auto crash_inputs =
+  const std::vector<std::string> crash_inputs =
       corpus_database.GetCrashingInputsIfAny(test.full_name());
 #endif
   for (const std::string& input : crash_inputs) {
     Configuration updated_configuration = configuration;
     updated_configuration.crashing_input_to_reproduce = input;
-    const std::string suffix =
-        absl::StrCat("/Regression/", std::string(Basename(input)));
+    absl::string_view file_name = Basename(input);
+    const absl::StatusOr<InputFileComponents> components =
+        ParseCrashingInputFilename(
+            std::string_view{file_name.data(), file_name.size()});
+    if (!components.ok()) {
+      FUZZTEST_LOG(WARNING)
+          << "Failed to parse crashing input filename " << file_name
+          << ". Not registering a regression test for it. Status: "
+          << components.status();
+      continue;
+    }
+    const std::string suffix = absl::StrCat("/Regression/", components->bug_id);
     RegisterFuzzTestAsGTest<T>(argc, argv, test, updated_configuration, suffix);
   }
 }