Skip to content

Commit

Permalink
test(fuzz): Add fuzz target (index)
Browse files Browse the repository at this point in the history
  • Loading branch information
glennib committed Dec 29, 2024
1 parent 7cd4ad0 commit ba3fdd6
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 0 deletions.
7 changes: 7 additions & 0 deletions fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,10 @@ path = "fuzz_targets/parse_walk.rs"
test = false
doc = false
bench = false

[[bin]]
name = "index"
path = "fuzz_targets/index.rs"
test = false
doc = false
bench = false
1 change: 1 addition & 0 deletions fuzz/fuzz_targets/index-input.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(dusty,sable,permissible,narrow(side,alleged,comparison,unaccountable,bolt,abortive,peel,pathetic(icky(homeless(tiny(erratic(page(glib)))))),prose,ill,park,lopsided,petite,chalk,humdrum,previous,sand,confused),introduce(rest,smell(invite,quiet,scrawny,grubby,excite,onerous,spiky,eatable,tax,children,arrogant,ruthless,troubled,grandiose,adjustment,divergent,tow,spicy,dance),lopsided,wholesale,record,pretend,certain,gaudy,humdrum(joyous,creepy,bag,fork,spring,tight,valuable,board,rude,mellow,squeak,talk,ajar,bridge,calculator,moldy,river,twist),eggnog,venomous,release,macabre,lean,resolute,silver(calendar,giants,farm,hellish,baby,disapprove,zesty,languid,road,scream,measure,cross,increase,glass,deeply,hushed,stay,escape,stuff,scene,ruin,aromatic,pack),resonant,bored,naughty,joke,simple,watery(sophisticated,soak,whimsical,occur,fumbling,whip,woozy,cynical,thread,nimble,willing,heavenly,love,arch,curious,mature,oil,wing,joke,lucky,truck,remove,pray,turn,annoying,knotty,ancient,scientific,owe),suggest,channel,contain,defective,overjoyed,acceptable,dolls,skip,beginner,poke,stone,coil,disappear),cough,manage,psychotic,free,destroy,exotic,arithmetic,skinny,ruthless,thrill,homely(defeated,use,modern,symptomatic,gusty,umbrella,satisfy,crate,damaged,filthy,whirl,mighty,intelligent,current,thread,fire,grouchy,squash,gruesome,potato,great),delight,irritating,fix,sticky,owe,racial,selection,special,ball,domineering,loud,nimble,potato,pigs(kittens,alcoholic,high-pitched,stain,distinct,title,serve,face,wilderness,morning,untidy,embarrass,empty,mundane,number,destroy,cautious,pleasant,refuse,holiday,brush,sore,perform,craven,beds,blue-eyed,frame,violet,beautiful,ambiguous,surprise,fasten,harmonious),knock,grandfather,coach,groan,competition,show,straw,roof,valuable,bashful,entertaining,health,salt,library,teeny(subtract,dog,attraction,unsightly,grain,crack,thankful,earthquake,market,advise),imminent,bath,fabulous,blink(relieved,fat,remember,ban,tough,fabulous,arm,wiggly,supply,umbrella,grouchy,hysterical,third,distribution,crazy,pause),rot,melt,pet,barbarous,messy,pig,start(comparison,range,inform,trail,employ,slave,push,slip,swim,vegetable,yam,flowers,vagabond,excited,preach,boundary,spade,coach,axiomatic,search,offbeat,hour,complex,lace,berserk,gentle,boil,cannon,useful,ajar,lush,throne,calculator,smart,wipe),recess,acoustic,strong,fuel,obscene(young,children,frightening,foregoing,unbecoming,trip,unwritten,measly,expand,deadpan,competition,subtract,division,vanish,channel,grieving),used,carve,busy,wool,miniature,development(flippant,smile,growth,accidental,cure,arrogant,terrible,squealing,fertile,challenge,approve,unpack,geese,cattle,basket,gratis),tin,tawdry,bruise,remain,rhetorical,spiteful,average(condemned,transport,string,long-term,absent,jazzy,thunder,mysterious,muscle,scare,cause,compare,glorious,bright,count,honey,beg),lacking,highfalutin,mist,pale,cloistered,scatter,mere,collar,judicious,stomach,close,melted,concentrate,volcano,phobic,keen,analyze,precede(toy,pot,post,clear,dynamic,clumsy,oval,adaptable,decay,stove,makeshift,old-fashioned,act,unique,nutty,nest,unusual,lopsided,sneaky,cause,black,sky,squeak,scare,full,witty,destroy,judicious,calendar,business,dolls,existence,flash,rely,joyous,grade,possessive,chubby,form,smooth,top,miss,spiteful,wobble,wander,island,cure,tested,silver,wretched,sleep,wail,approve,unbiased,tire,sponge,vacuous,bead,pet,trousers,knife,air,mute,complex,phobic,noxious,tough,observe,apathetic,care,bite,time,rural,prepare,analyze,selfish,glossy,governor,wreck,elfin,deadpan,daffy,beef,sheet,sweater,giraffe,rhyme,numberless,dry,awful,decisive,fruit,left,crown,earsplitting,expert,peep,pinch,representative,stuff))
20 changes: 20 additions & 0 deletions fuzz/fuzz_targets/index.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#![no_main]

use libfuzzer_sys::Corpus;
use libfuzzer_sys::fuzz_target;
use z157::Tree;

fuzz_target!(|data: &[u8]| -> Corpus {
let Ok(s) = std::str::from_utf8(data) else {
return Corpus::Reject;
};
let paths: Vec<Vec<&str>> = s.lines().map(|line| line.split('.').collect()).collect();
let tree = Tree::parse(include_str!("index-input.txt")).unwrap();
for path in paths {
if let Some(field) = tree.index(&path) {
let _ = field.name();
}
}

Corpus::Keep
});

0 comments on commit ba3fdd6

Please sign in to comment.