diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2021-08-31 16:36:35 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2021-09-03 13:23:50 +0300 |
commit | b171cc6c59f377d28cd2afca76cb0d67162c7787 (patch) | |
tree | c215e6930f0852d5e2f5a00b054347f387fd68e6 | |
parent | 7f4301c5701e308d72d5bd9ea98ae429b8c79fb6 (diff) | |
download | gdbm-b171cc6c59f377d28cd2afca76cb0d67162c7787.tar.gz |
Add seed builder script and runcom file for gdbm_fuzzer
-rw-r--r-- | fuzz/build_seed.sh | 109 | ||||
-rw-r--r-- | fuzz/gdbm_fuzzer.rc | 31 |
2 files changed, 140 insertions, 0 deletions
diff --git a/fuzz/build_seed.sh b/fuzz/build_seed.sh new file mode 100644 index 0000000..5e92924 --- /dev/null +++ b/fuzz/build_seed.sh @@ -0,0 +1,109 @@ +#!/bin/sh +# This file is part of GDBM. +# Copyright (C) 2021 Free Software Foundation, Inc. +# +# GDBM is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GDBM is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GDBM. If not, see <http://www.gnu.org/licenses/>. */ + +set -e + +unset wd +while getopts "C:" OPTION +do + case $OPTION in + C) wd=$OPTARG;; + esac +done + +if [ -n "$wd" ]; then + if [ ! -d $wd ]; then + mkdir $wd + fi + cd $wd +fi + +for format in standard numsync; do + gdbmtool <<EOF +set format=$format +open empty_$format +close + +open one_$format +store key1 value1 +close + +set blocksize=512 +open empty_b512_$format +close + +set cachesize=512 +open empty_b512_c512_$format +close + +open one_b512_c512_$format +store key1 value1 +close + +open ten_b512_c512_$format +store key1 value1 +store key2 value2 +store key3 value3 +store key4 value4 +store key5 value5 +store key6 value6 +store key7 value7 +store key8 value8 +store key9 value9 +store key10 value10 + +open nine_b512_c512_$format +store key1 value1 +store key2 value2 +store key3 value3 +store key4 value4 +store key5 value5 +store key6 value6 +store key7 value7 +store key8 value8 +store key9 value9 +store key10 value10 +delete key1 +close + +open one_b512_c512_ku_cs_$format +define key { uint k } +define content { string s } +store 1 value1 +close + +open one_b512_c512_ku_cu_$format +define key { uint k } +define content { uint v } +store 1 1 +define key { string k } +store key1 1 +define key { uint k } +define content { uint v[2] } +store 1 { { 1 , 2 } } +list +close + +open one_b512_c512_ku_cusz_$format +define key { uint k } +define content { uint v, stringz s } +store 1 { 1 , value1 } +list +close +quit +EOF +done diff --git a/fuzz/gdbm_fuzzer.rc b/fuzz/gdbm_fuzzer.rc new file mode 100644 index 0000000..781aa75 --- /dev/null +++ b/fuzz/gdbm_fuzzer.rc @@ -0,0 +1,31 @@ +# Run commands for gdbm_fuzzer +# Copyright (C) 2021 Free Software Foundation, Inc. +# License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> +# This is free software: you are free to change and redistribute it. +# There is NO WARRANTY, to the extent permitted by law. +set errorexit +open +set noerrorexit +set errormask +avail +cache +count +dir +header +current +first +next +status +set coalesce +set centfree +recover +reorganize +fetch 1 +delete 1 +store 1 1 +delete 1 +bucket 1 +upgrade +downgrade +close +quit |