#Centipede Add support for directly passing a corpus shard in a SeedCorpusSource
PiperOrigin-RevId: 647474909
diff --git a/centipede/BUILD b/centipede/BUILD
index e851c68..8092c65 100644
--- a/centipede/BUILD
+++ b/centipede/BUILD
@@ -101,6 +101,7 @@
cc_proto_library(
name = "seed_corpus_config_cc_proto",
+ visibility = EXTENDED_API_VISIBILITY,
deps = [":seed_corpus_config_proto"],
)
@@ -1057,6 +1058,7 @@
name = "seed_corpus_maker_lib",
srcs = ["seed_corpus_maker_lib.cc"],
hdrs = ["seed_corpus_maker_lib.h"],
+ visibility = EXTENDED_API_VISIBILITY,
deps = [
":corpus_io",
":feature",
diff --git a/centipede/seed_corpus_config.proto b/centipede/seed_corpus_config.proto
index 8abc201..f71799d 100644
--- a/centipede/seed_corpus_config.proto
+++ b/centipede/seed_corpus_config.proto
@@ -34,6 +34,9 @@
// A relative glob used to find corpus shards in each `dir_glob`-matching dir.
// Required.
string shard_rel_glob = 3;
+ // Path directly to a corpus shard. Will be added to the shards specified by
+ // `dir_glob`.
+ string corpus_shard_path = 6;
// An absolute or relative number of corpus elements to sample from all the
// corpus shards in all `dir_glob` matching dirs of this source. Optional: the
// default is to take all the elements.
diff --git a/centipede/seed_corpus_maker_lib.cc b/centipede/seed_corpus_maker_lib.cc
index b43d7e9..2239a2b 100644
--- a/centipede/seed_corpus_maker_lib.cc
+++ b/centipede/seed_corpus_maker_lib.cc
@@ -182,6 +182,12 @@
}
LOG(INFO) << "Found " << corpus_shard_fnames.size()
<< " shard(s) total in source " << source.dir_glob();
+ if (!source.corpus_shard_path().empty()) {
+ LOG(INFO) << "Adding corpus shard path: " << source.corpus_shard_path();
+ corpus_shard_fnames.push_back(source.corpus_shard_path());
+ }
+ LOG(INFO) << "Total number of corpus shards found: "
+ << corpus_shard_fnames.size();
if (corpus_shard_fnames.empty()) {
LOG(WARNING) << "Skipping empty source " << source.dir_glob();