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
|
corpora
|
||||||
build
|
build
|
||||||
mnt
|
mnt
|
||||||
|
.R*
|
||||||
|
*.png
|
||||||
|
*.pdf
|
@ -1,4 +1,4 @@
|
|||||||
TIME=7200
|
TIME=1000
|
||||||
|
|
||||||
corpora/%/seed:
|
corpora/%/seed:
|
||||||
mkdir -p $$(dirname $@)
|
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)
|
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:
|
clean:
|
||||||
rm -rf corpora timedump
|
rm -rf corpora timedump
|
@ -1,17 +1,52 @@
|
|||||||
#runtype="sequential"
|
args = commandArgs(trailingOnly=TRUE)
|
||||||
runtype="kernel"
|
|
||||||
target="insertsort"
|
if (length(args)==0) {
|
||||||
file_1=sprintf("~/code/FRET/LibAFL/fuzzers/FRET/benchmark/mnt/timedump/%s/%s",runtype,target)
|
runtype="sequential"
|
||||||
file_2=sprintf("~/code/FRET/LibAFL/fuzzers/FRET/benchmark/mnt/timedump/%s/%s_random",runtype,target)
|
target="g723_enc"
|
||||||
bsort <- read.table(file_1, quote="\"", comment.char="")
|
filename_1="graph.pdf"
|
||||||
bsort_rand <- read.table(file_2, quote="\"", comment.char="")
|
} else {
|
||||||
bsort[[2]]=seq_len(length(bsort[[1]]))
|
runtype=args[1]
|
||||||
bsort_rand[[2]]=seq_len(length(bsort_rand[[1]]))
|
target=args[2]
|
||||||
names(bsort)[1] <- "bsort"
|
filename_1=sprintf("%s.png",args[2])
|
||||||
names(bsort)[2] <- "iter"
|
filename_2=sprintf("%s_maxline.png",args[2])
|
||||||
names(bsort_rand)[1] <- "bsort"
|
# filename_1=args[3]
|
||||||
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='.')
|
file_1=sprintf("~/code/FRET/LibAFL/fuzzers/FRET/benchmark/%s/%s",runtype,target)
|
||||||
abline(lm(bsort ~ iter, data=bsort),col="green")
|
file_2=sprintf("~/code/FRET/LibAFL/fuzzers/FRET/benchmark/%s/%s_random",runtype,target)
|
||||||
abline(lm(bsort ~ iter, data=bsort_rand),col="magenta")
|
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))
|
fuzzer.evaluate_input(&mut state, &mut executor, &mut mgr, BytesInput::new(show_input))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
} else {
|
} 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
|
state
|
||||||
.load_initial_inputs(&mut fuzzer, &mut executor, &mut mgr, &[PathBuf::from(&sf)])
|
.load_initial_inputs(&mut fuzzer, &mut executor, &mut mgr, &[PathBuf::from(&sf)])
|
||||||
.unwrap_or_else(|_| {
|
.unwrap_or_else(|_| {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user