#!/bin/bash # # This script runs the wordcount program in different ways, comparing # the output from each. # # Run the wordcount command with argument supplied and with --summary. # Store the results in wc-out.txt and report the run-time. # function time_wordcount { /usr/bin/time --format='%e %C' ./wordcount --summary $* >wc-out.txt } # Compare wc-out.txt against wc-baseline.txt and report any differences. # function compare_results { if cmp -s wc-out.txt wc-baseline.txt; then echo hi >/dev/null; else echo ERROR:; diff -u wc-baseline.txt wc-out.txt; fi } # Select the source text to be analyzed. # if test "x$1" = "x"; then echo "Usage: $0 FILENAME [ARGS...]"; exit 1; fi # Do test runs # rm -f wcdb1.db time_wordcount wcdb1.db $* --insert mv wc-out.txt wc-baseline.txt rm -f wcdb2.db time_wordcount wcdb2.db $* --insert --without-rowid compare_results rm -f wcdb1.db time_wordcount wcdb1.db $* --replace compare_results rm -f wcdb2.db time_wordcount wcdb2.db $* --replace --without-rowid compare_results rm -f wcdb1.db time_wordcount wcdb1.db $* --select compare_results rm -f wcdb2.db time_wordcount wcdb2.db $* --select --without-rowid compare_results time_wordcount wcdb1.db $* --query mv wc-out.txt wc-baseline.txt time_wordcount wcdb2.db $* --query --without-rowid compare_results time_wordcount wcdb1.db $* --delete mv wc-out.txt wc-baseline.txt time_wordcount wcdb2.db $* --delete --without-rowid compare_results # Clean up temporary files created. # rm -rf wcdb1.db wcdb2.db wc-out.txt wc-baseline.txt