+++ /dev/null
-bench_BIN := \
- bench_lru
-
-# Dependencies
-bench_DEPEND := $(libkres)
-bench_LIBS := $(libkres_TARGET) $(libkres_LIBS)
-
-# Make bench binaries
-define make_bench
-$(1)_CFLAGS := -fPIE
-$(1)_SOURCES := bench/$(1).c
-$(1)_LIBS := $(bench_LIBS)
-$(1)_DEPEND := $(bench_DEPEND)
-$(call make_bin,$(1),bench)
-endef
-
-$(foreach bench,$(bench_BIN),$(eval $(call make_bench,$(bench))))
-
-# Targets
-.PHONY: bench bench-clean
-bench-clean: $(foreach bench,$(bench_BIN),$(bench)-clean)
-bench: $(foreach bench,$(bench_BIN),bench/$(bench))
- @echo "Test LRU with increasing overfill, misses should increase ~ linearly" >&2
- $(preload_syms) ./bench/bench_lru 23 bench/bench_lru_set1.tsv - 65536 # fill ~ 1
- $(preload_syms) ./bench/bench_lru 23 bench/bench_lru_set1.tsv - 32768 # fill ~ 2
- $(preload_syms) ./bench/bench_lru 23 bench/bench_lru_set1.tsv - 16384 # fill ~ 4
- $(preload_syms) ./bench/bench_lru 23 bench/bench_lru_set1.tsv - 8192 # fill ~ 8
- $(preload_syms) ./bench/bench_lru 23 bench/bench_lru_set1.tsv - 4096 # fill ~ 16
} while (0)
#define p_err(...) fprintf(stderr, __VA_ARGS__)
+#ifndef LRU_RTT_SIZE
+#define LRU_RTT_SIZE 65536 /**< NS RTT cache size */
+#endif
+
static int die(const char *cause)
{
fprintf(stderr, "%s: %s\n", cause, strerror(errno));
--- /dev/null
+# bench
+
+bench_lru_src = [
+ 'bench_lru.c',
+]
+
+cc = meson.get_compiler('c')
+m_dep = cc.find_library('m', required : false)
+
+bench_lru = executable(
+ 'bench_lru',
+ bench_lru_src,
+ dependencies: [
+ contrib_dep,
+ libkres_dep,
+ m_dep,
+ ],
+)
+
+run_target(
+ 'bench',
+ command: '../scripts/bench.sh',
+)
--- /dev/null
+#!/bin/bash
+set -o errexit -o nounset
+
+# Run benchmark
+cd "${MESON_SOURCE_ROOT}"
+
+echo "Test LRU with increasing overfill, misses should increase ~ linearly"
+
+for num in 65536 32768 16384 8192 4096; do
+ "${MESON_BUILD_ROOT}/${MESON_SUBDIR}/bench_lru" 23 "${MESON_SOURCE_ROOT}/${MESON_SUBDIR}/bench_lru_set1.tsv" - "${num}"
+done