]> git.cworth.org Git - notmuch/commitdiff
test: add functions to count how much times notmuch was called
authorDmitry Kurochkin <dmitry.kurochkin@gmail.com>
Tue, 29 Nov 2011 21:19:52 +0000 (01:19 +0400)
committerDavid Bremner <bremner@debian.org>
Thu, 8 Dec 2011 00:03:00 +0000 (20:03 -0400)
The patch adds two auxiliary functions and a variable:

  notmuch_counter_reset
  $notmuch_counter_command
  notmuch_counter_value

They allow to count how many times notmuch binary is called.
notmuch_counter_reset() function generates a script that counts how
many times it is called and resets the counter to zero.  The function
sets $notmuch_counter_command variable to the path to the generated
script that should be called instead of notmuch to do the counting.
The notmuch_counter_value() function returns the current counter
value.

test/README
test/test-lib.sh

index 2e757e0eeca8d1c7641848bbb744ee681008fb9c..7b2e96d466a7a1403fa78f03940ffacf15abdd14 100644 (file)
@@ -188,8 +188,8 @@ library for your script to use.
    is to summarize successes and failures in the test script and
    exit with an appropriate error code.
 
    is to summarize successes and failures in the test script and
    exit with an appropriate error code.
 
-There are also a number of mail-specific functions which are useful in
-writing tests:
+There are also a number of notmuch-specific auxiliary functions and
+variables which are useful in writing tests:
 
   generate_message
 
 
   generate_message
 
@@ -213,3 +213,15 @@ writing tests:
     will initialize the mail database to a known state of 50 sample
     messages, (culled from the early history of the notmuch mailing
     list).
     will initialize the mail database to a known state of 50 sample
     messages, (culled from the early history of the notmuch mailing
     list).
+
+  notmuch_counter_reset
+  $notmuch_counter_command
+  notmuch_counter_value
+
+    These allow to count how many times notmuch binary is called.
+    notmuch_counter_reset() function generates a script that counts
+    how many times it is called and resets the counter to zero.  The
+    function sets $notmuch_counter_command variable to the path to the
+    generated script that should be called instead of notmuch to do
+    the counting.  The notmuch_counter_value() function prints the
+    current counter value.
index a97595707bf1dba13a72108afd8863af9d64dafa..a48faf5cf5298dc724cffa510bcc3eb3dec26c4e 100644 (file)
@@ -919,6 +919,38 @@ test_emacs () {
        emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"
 }
 
        emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"
 }
 
+# Creates a script that counts how much time it is executed and calls
+# notmuch.  $notmuch_counter_command is set to the path to the
+# generated script.  Use notmuch_counter_value() function to get the
+# current counter value.
+notmuch_counter_reset () {
+       notmuch_counter_command="$TMP_DIRECTORY/notmuch_counter"
+       if [ ! -x "$notmuch_counter_command" ]; then
+               notmuch_counter_state_path="$TMP_DIRECTORY/notmuch_counter.state"
+               cat >"$notmuch_counter_command" <<EOF || return
+#!/bin/sh
+
+read count < "$notmuch_counter_state_path"
+echo \$((count + 1)) > "$notmuch_counter_state_path"
+
+exec notmuch "\$@"
+EOF
+               chmod +x "$notmuch_counter_command" || return
+       fi
+
+       echo 0 > "$notmuch_counter_state_path"
+}
+
+# Returns the current notmuch counter value.
+notmuch_counter_value () {
+       if [ -r "$notmuch_counter_state_path" ]; then
+               read count < "$notmuch_counter_state_path"
+       else
+               count=0
+       fi
+       echo $count
+}
+
 test_reset_state_ () {
        test -z "$test_init_done_" && test_init_
 
 test_reset_state_ () {
        test -z "$test_init_done_" && test_init_