random seeds, better plots
This commit is contained in:
parent
4c90144db5
commit
8d31196614
3
fuzzers/FRET/benchmark/.gitignore
vendored
3
fuzzers/FRET/benchmark/.gitignore
vendored
@ -2,3 +2,6 @@ timedump
|
||||
corpora
|
||||
build
|
||||
mnt
|
||||
.R*
|
||||
*.png
|
||||
*.pdf
|
@ -1,4 +1,4 @@
|
||||
TIME=7200
|
||||
TIME=1000
|
||||
|
||||
corpora/%/seed:
|
||||
mkdir -p $$(dirname $@)
|
||||
@ -32,5 +32,16 @@ all_sequential: timedump/sequential/mpeg2$(FUZZ_RANDOM) timedump/sequential/dijk
|
||||
|
||||
all_kernel: timedump/kernel/bsort$(FUZZ_RANDOM) timedump/kernel/insertsort$(FUZZ_RANDOM) #timedump/kernel/fft$(FUZZ_RANDOM)
|
||||
|
||||
graphics:
|
||||
Rscript --vanilla plot_comparison.r sequential audiobeam
|
||||
Rscript --vanilla plot_comparison.r sequential dijkstra
|
||||
Rscript --vanilla plot_comparison.r sequential epic
|
||||
Rscript --vanilla plot_comparison.r sequential g723_enc
|
||||
# Rscript --vanilla plot_comparison.r sequential gsm_enc
|
||||
# Rscript --vanilla plot_comparison.r sequential huff_dec
|
||||
Rscript --vanilla plot_comparison.r sequential mpeg2
|
||||
Rscript --vanilla plot_comparison.r sequential rijndael_dec
|
||||
Rscript --vanilla plot_comparison.r sequential rijndael_enc
|
||||
|
||||
clean:
|
||||
rm -rf corpora timedump
|
@ -1,17 +1,52 @@
|
||||
#runtype="sequential"
|
||||
runtype="kernel"
|
||||
target="insertsort"
|
||||
file_1=sprintf("~/code/FRET/LibAFL/fuzzers/FRET/benchmark/mnt/timedump/%s/%s",runtype,target)
|
||||
file_2=sprintf("~/code/FRET/LibAFL/fuzzers/FRET/benchmark/mnt/timedump/%s/%s_random",runtype,target)
|
||||
bsort <- read.table(file_1, quote="\"", comment.char="")
|
||||
bsort_rand <- read.table(file_2, quote="\"", comment.char="")
|
||||
bsort[[2]]=seq_len(length(bsort[[1]]))
|
||||
bsort_rand[[2]]=seq_len(length(bsort_rand[[1]]))
|
||||
names(bsort)[1] <- "bsort"
|
||||
names(bsort)[2] <- "iter"
|
||||
names(bsort_rand)[1] <- "bsort"
|
||||
names(bsort_rand)[2] <- "iter"
|
||||
plot(bsort[[2]],bsort[[1]], col="#99bbff", xlab="iters", ylab="wcet", pch='.')
|
||||
points(bsort_rand[[2]],bsort_rand[[1]], col="#ffbb99", pch='.')
|
||||
abline(lm(bsort ~ iter, data=bsort),col="green")
|
||||
abline(lm(bsort ~ iter, data=bsort_rand),col="magenta")
|
||||
args = commandArgs(trailingOnly=TRUE)
|
||||
|
||||
if (length(args)==0) {
|
||||
runtype="sequential"
|
||||
target="g723_enc"
|
||||
filename_1="graph.pdf"
|
||||
} else {
|
||||
runtype=args[1]
|
||||
target=args[2]
|
||||
filename_1=sprintf("%s.png",args[2])
|
||||
filename_2=sprintf("%s_maxline.png",args[2])
|
||||
# filename_1=args[3]
|
||||
}
|
||||
|
||||
file_1=sprintf("~/code/FRET/LibAFL/fuzzers/FRET/benchmark/%s/%s",runtype,target)
|
||||
file_2=sprintf("~/code/FRET/LibAFL/fuzzers/FRET/benchmark/%s/%s_random",runtype,target)
|
||||
timetrace <- read.table(file_1, quote="\"", comment.char="")
|
||||
timetrace_rand <- read.table(file_2, quote="\"", comment.char="")
|
||||
timetrace[[2]]=seq_len(length(timetrace[[1]]))
|
||||
timetrace_rand[[2]]=seq_len(length(timetrace_rand[[1]]))
|
||||
names(timetrace)[1] <- "timetrace"
|
||||
names(timetrace)[2] <- "iter"
|
||||
names(timetrace_rand)[1] <- "timetrace"
|
||||
names(timetrace_rand)[2] <- "iter"
|
||||
|
||||
png(file=filename_1)
|
||||
# pdf(file=filename_1,width=8, height=8)
|
||||
plot(timetrace[[2]],timetrace[[1]], col="#99bbff", xlab="iters", ylab="wcet", pch='.')
|
||||
points(timetrace_rand[[2]],timetrace_rand[[1]], col="#ffbb99", pch='.')
|
||||
abline(lm(timetrace ~ iter, data=timetrace),col="green")
|
||||
abline(lm(timetrace ~ iter, data=timetrace_rand),col="magenta")
|
||||
dev.off()
|
||||
|
||||
# Takes a flat list
|
||||
trace2maxline <- function(tr) {
|
||||
maxline = tr
|
||||
for (var in seq_len(length(maxline))[2:length(maxline)]) {
|
||||
maxline[var] = max(maxline[var],maxline[var-1])
|
||||
}
|
||||
#plot(seq_len(length(maxline)),maxline,"l",xlab="Index",ylab="WOET")
|
||||
return(maxline)
|
||||
}
|
||||
timetrace[[1]] <- trace2maxline(timetrace[[1]])
|
||||
timetrace_rand[[1]] <- trace2maxline(timetrace_rand[[1]])
|
||||
|
||||
png(file=filename_2)
|
||||
# pdf(file=filename_1,width=8, height=8)
|
||||
plot(timetrace[[2]],timetrace[[1]], col="#99bbff", xlab="iters", ylab="wcet", pch='.')
|
||||
points(timetrace_rand[[2]],timetrace_rand[[1]], col="#ffbb99", pch='.')
|
||||
abline(lm(timetrace ~ iter, data=timetrace),col="green")
|
||||
abline(lm(timetrace ~ iter, data=timetrace_rand),col="magenta")
|
||||
dev.off()
|
@ -289,7 +289,18 @@ pub fn fuzz() {
|
||||
fuzzer.evaluate_input(&mut state, &mut executor, &mut mgr, BytesInput::new(show_input))
|
||||
.unwrap();
|
||||
} else {
|
||||
if let Ok(sf) = env::var("SEED_DIR") {
|
||||
if let Ok(_) = env::var("SEED_RANDOM") {
|
||||
unsafe {
|
||||
let mut generator = RandBytesGenerator::new(MAX_INPUT_SIZE);
|
||||
state
|
||||
.generate_initial_inputs_forced(&mut fuzzer, &mut executor, &mut generator, &mut mgr, 100)
|
||||
.unwrap_or_else(|_| {
|
||||
println!("Failed to load initial corpus at {:?}", &corpus_dirs);
|
||||
process::exit(0);
|
||||
});
|
||||
}
|
||||
}
|
||||
else if let Ok(sf) = env::var("SEED_DIR") {
|
||||
state
|
||||
.load_initial_inputs(&mut fuzzer, &mut executor, &mut mgr, &[PathBuf::from(&sf)])
|
||||
.unwrap_or_else(|_| {
|
||||
|
Loading…
x
Reference in New Issue
Block a user