Merge "Re-plumb fuzz corpora."

This commit is contained in:
Treehugger Robot
2019-10-18 02:43:26 +00:00
committed by Gerrit Code Review
2 changed files with 18 additions and 9 deletions

View File

@@ -308,15 +308,13 @@ func (fuzz *fuzzBinary) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkDa
var fuzzFiles []string var fuzzFiles []string
for _, d := range fuzz.corpus { for _, d := range fuzz.corpus {
rel := d.Rel() fuzzFiles = append(fuzzFiles,
path := d.String() filepath.Dir(fuzz.corpusIntermediateDir.String())+":corpus/"+d.Base())
path = strings.TrimSuffix(path, rel)
fuzzFiles = append(fuzzFiles, path+":corpus/"+d.Base())
} }
if fuzz.dictionary != nil { if fuzz.dictionary != nil {
path := strings.TrimSuffix(fuzz.dictionary.String(), fuzz.dictionary.Rel()) fuzzFiles = append(fuzzFiles,
fuzzFiles = append(fuzzFiles, path+":"+fuzz.dictionary.Base()) filepath.Dir(fuzz.dictionary.String())+":"+fuzz.dictionary.Base())
} }
if len(fuzzFiles) > 0 { if len(fuzzFiles) > 0 {

View File

@@ -53,9 +53,10 @@ type fuzzBinary struct {
*binaryDecorator *binaryDecorator
*baseCompiler *baseCompiler
Properties FuzzProperties Properties FuzzProperties
corpus android.Paths dictionary android.Path
dictionary android.Path corpus android.Paths
corpusIntermediateDir android.Path
} }
func (fuzz *fuzzBinary) linkerProps() []interface{} { func (fuzz *fuzzBinary) linkerProps() []interface{} {
@@ -103,6 +104,16 @@ func (fuzz *fuzzBinary) install(ctx ModuleContext, file android.Path) {
fuzz.binaryDecorator.baseInstaller.install(ctx, file) fuzz.binaryDecorator.baseInstaller.install(ctx, file)
fuzz.corpus = android.PathsForModuleSrc(ctx, fuzz.Properties.Corpus) fuzz.corpus = android.PathsForModuleSrc(ctx, fuzz.Properties.Corpus)
builder := android.NewRuleBuilder()
intermediateDir := android.PathForModuleOut(ctx, "corpus")
for _, entry := range fuzz.corpus {
builder.Command().Text("cp").
Input(entry).
Output(intermediateDir.Join(ctx, entry.Base()))
}
builder.Build(pctx, ctx, "copy_corpus", "copy corpus")
fuzz.corpusIntermediateDir = intermediateDir
if fuzz.Properties.Dictionary != nil { if fuzz.Properties.Dictionary != nil {
fuzz.dictionary = android.PathForModuleSrc(ctx, *fuzz.Properties.Dictionary) fuzz.dictionary = android.PathForModuleSrc(ctx, *fuzz.Properties.Dictionary)
if fuzz.dictionary.Ext() != ".dict" { if fuzz.dictionary.Ext() != ".dict" {