blob: 5f2c8345bee5caf152649a6fa04cd128ea4cd9ff [file] [log] [blame]
drh9dc7ad12017-01-31 15:29:05 +00001#!/bin/bash
2#
3# A script for running speed tests using kvtest.
4#
5# The test database must be set up first. Recommended
6# command-line:
7#
8# ./kvtest init kvtest.db --count 100K --size 12K --variance 5K
9
10if test "$1" = ""
11then
12 echo "Usage: $0 OUTPUTFILE [OPTIONS]"
13 exit
14fi
15NAME=$1
16shift
17OPTS="-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_DIRECT_OVERFLOW_READ -DUSE_PREAD"
18KVARGS="--count 100K --stats"
19gcc -g -Os -I. $OPTS $* kvtest.c sqlite3.c -o kvtest
20
21# First run using SQL
22rm cachegrind.out.[1-9][0-9]*
23valgrind --tool=cachegrind ./kvtest run kvtest.db $KVARGS 2>&1 | tee summary-kvtest-$NAME.txt
drh0caad092017-01-31 16:49:01 +000024mv cachegrind.out.[1-9][0-9]* cachegrind.out.sql-$NAME
25cg_anno.tcl cachegrind.out.sql-$NAME >cout-kvtest-sql-$NAME.txt
drh9dc7ad12017-01-31 15:29:05 +000026
27# Second run using the sqlite3_blob object
drh9dc7ad12017-01-31 15:29:05 +000028valgrind --tool=cachegrind ./kvtest run kvtest.db $KVARGS --blob-api 2>&1 | tee -a summary-kvtest-$NAME.txt
29mv cachegrind.out.[1-9][0-9]* cachegrind.out.$NAME
30cg_anno.tcl cachegrind.out.$NAME >cout-kvtest-$NAME.txt
31
32# Diff the sqlite3_blob API analysis for non-trunk runs.
33if test "$NAME" != "trunk"; then
34 fossil test-diff --tk cout-kvtest-trunk.txt cout-kvtest-$NAME.txt &
35fi