From 9ac3f19b796497d62f689dd6ea586bc2cbd37901 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 5 Mar 2022 10:57:19 -0800 Subject: [PATCH] ... --- .gitignore | 3 +++ Makefile.am | 2 +- bench/Makefile.am | 16 ++++++++++++++++ bench/add.bench.c | 10 ++++++++++ bench/add_bench | Bin 0 -> 76912 bytes bench/bench_utils.c | 24 ++++++++++++++++++++++++ bench/bench_utils.h | 15 +++++++++++++++ configure.ac | 1 + 8 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 bench/Makefile.am create mode 100644 bench/add.bench.c create mode 100755 bench/add_bench create mode 100644 bench/bench_utils.c create mode 100644 bench/bench_utils.h diff --git a/.gitignore b/.gitignore index 81b5d69..109ba99 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,6 @@ seederd # test files/objects .test/ + +# bench files/objects +.bench/ diff --git a/Makefile.am b/Makefile.am index 65f17a3..cbf7be5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -93,4 +93,4 @@ seederd_SOURCES += \ inc/usage.h \ inc/watch.h -SUBDIRS = . test/unit +SUBDIRS = . test/unit bench diff --git a/bench/Makefile.am b/bench/Makefile.am new file mode 100644 index 0000000..ede76cc --- /dev/null +++ b/bench/Makefile.am @@ -0,0 +1,16 @@ +AM_CPPFLAGS = \ + -DPREFIX=\".bench\" \ + -Wall \ + -Werror + +EXTRA_DIST = \ + bench_utils.h + +bin_PROGRAMS = add_bench + +common_SOURCES = \ + bench_utils.c + +add_bench_SOURCES = \ + $(common_SOURCES) \ + add.bench.c diff --git a/bench/add.bench.c b/bench/add.bench.c new file mode 100644 index 0000000..b964415 --- /dev/null +++ b/bench/add.bench.c @@ -0,0 +1,10 @@ +#include + +int main(); + +int main() { + char template[] = PREFIX "/XXXXXX"; + create_tmp_file(template,10000); + + return EXIT_SUCCESS; +} diff --git a/bench/add_bench b/bench/add_bench new file mode 100755 index 0000000000000000000000000000000000000000..63f205653e6045d40a6d5d2b7d678361e495823e GIT binary patch literal 76912 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 K+acgM6#oKm*7!dF literal 0 HcmV?d00001 diff --git a/bench/bench_utils.c b/bench/bench_utils.c new file mode 100644 index 0000000..c15018e --- /dev/null +++ b/bench/bench_utils.c @@ -0,0 +1,24 @@ +#include + +void create_tmp_file(char *template, size_t size) { + int urandom, fd; + char buf[65636]; + ssize_t i; + + urandom = open("/dev/urandom",O_RDONLY); + assert(urandom!=-1); + + fd = mkstemp(template); + assert(fd!=-1); + + while(size>0) { + i = read(urandom,buf,65636); + assert(i!=-1); + + assert(i==write(fd,buf,i)); + size -= i; + } + + close(urandom); + close(fd); +} diff --git a/bench/bench_utils.h b/bench/bench_utils.h new file mode 100644 index 0000000..ef7d189 --- /dev/null +++ b/bench/bench_utils.h @@ -0,0 +1,15 @@ +#ifndef __BENCH_UTILS_H_ +#define __BENCH_UTILS_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +void create_tmp_file(char*,uint64_t); + +#endif diff --git a/configure.ac b/configure.ac index 096f106..c58bce1 100644 --- a/configure.ac +++ b/configure.ac @@ -74,5 +74,6 @@ AC_FUNC_MALLOC AC_CHECK_FUNCS([atexit]) AC_CONFIG_FILES([Makefile + bench/Makefile test/unit/Makefile]) AC_OUTPUT -- 2.30.2