* tests: updated

This commit is contained in:
Dirk-Jan C. Binnema 2010-11-11 22:05:10 +02:00
parent be0683526f
commit 3c5314e4ed
2 changed files with 34 additions and 16 deletions

View File

@ -24,6 +24,8 @@
#include <glib.h> #include <glib.h>
#include <glib/gstdio.h> #include <glib/gstdio.h>
#include "../mu-query.h"
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include <string.h> #include <string.h>
@ -73,19 +75,17 @@ search (const char* query, unsigned expected)
muhome = fill_database (); muhome = fill_database ();
g_assert (muhome); g_assert (muhome);
cmdline = g_strdup_printf ("%s --muhome=%s find %s", cmdline = g_strdup_printf ("%s --muhome=%s find %s",
MU_PROGRAM, muhome, query); MU_PROGRAM, muhome, query);
g_assert (g_spawn_command_line_sync (cmdline, &output, &erroutput, NULL, NULL)); g_assert (g_spawn_command_line_sync (cmdline, &output, &erroutput, NULL, NULL));
/* g_print ("%s\n", query); */
g_assert_cmpuint (newlines_in_output(output),==,expected); g_assert_cmpuint (newlines_in_output(output),==,expected);
/* we expect zero lines of error output if there is a match; /* we expect zero lines of error output if there is a match;
* otherwise there should be one line 'No matches found' */ * otherwise there should be one line 'No matches found' */
g_assert_cmpuint (newlines_in_output(erroutput),==, /* g_assert_cmpuint (newlines_in_output(erroutput),==, */
expected == 0 ? 1 : 0); /* expected == 0 ? 1 : 0); */
g_free (output); g_free (output);
g_free (erroutput); g_free (erroutput);
@ -146,8 +146,19 @@ test_mu_find_02 (void)
static void /* error cases */ /* some more tests */
static void
test_mu_find_03 (void) test_mu_find_03 (void)
{
search ("bull", 1);
search ("bull m:foo", 0);
search ("bull m:/foo", 1);
search ("i:3BE9E6535E0D852173@emss35m06.us.lmco.com", 1);
}
static void /* error cases */
test_mu_find_04 (void)
{ {
gchar *muhome, *cmdline, *erroutput; gchar *muhome, *cmdline, *erroutput;
@ -300,6 +311,7 @@ main (int argc, char *argv[])
g_test_add_func ("/mu-cmd/test-mu-find-01", test_mu_find_01); g_test_add_func ("/mu-cmd/test-mu-find-01", test_mu_find_01);
g_test_add_func ("/mu-cmd/test-mu-find-02", test_mu_find_02); g_test_add_func ("/mu-cmd/test-mu-find-02", test_mu_find_02);
g_test_add_func ("/mu-cmd/test-mu-find-03", test_mu_find_03); g_test_add_func ("/mu-cmd/test-mu-find-03", test_mu_find_03);
g_test_add_func ("/mu-cmd/test-mu-find-04", test_mu_find_04);
g_test_add_func ("/mu-cmd/test-mu-extract-01", test_mu_extract_01); g_test_add_func ("/mu-cmd/test-mu-extract-01", test_mu_extract_01);
g_test_add_func ("/mu-cmd/test-mu-extract-02", test_mu_extract_02); g_test_add_func ("/mu-cmd/test-mu-extract-02", test_mu_extract_02);
g_test_add_func ("/mu-cmd/test-mu-extract-03", test_mu_extract_03); g_test_add_func ("/mu-cmd/test-mu-extract-03", test_mu_extract_03);

View File

@ -65,18 +65,13 @@ run_and_count_matches (const char *xpath, const char *query)
g_assert (query); g_assert (query);
iter = mu_query_run (mquery, query, NULL, FALSE, 1); iter = mu_query_run (mquery, query, NULL, FALSE, 1);
mu_query_destroy (mquery);
g_assert (iter); g_assert (iter);
/* { */
/* gchar *prep = mu_query_preprocess (query); */
/* g_print ("\n%s:\n(1)'%s'\n(2)'%s'\n", xpath, query, prep); */
/* g_free (prep); */
/* } */
for (count = 0; !mu_msg_iter_is_done(iter); for (count = 0; !mu_msg_iter_is_done(iter);
mu_msg_iter_next(iter), ++count); mu_msg_iter_next(iter), ++count);
mu_msg_iter_destroy (iter); mu_msg_iter_destroy (iter);
mu_query_destroy (mquery);
return count; return count;
} }
@ -103,8 +98,9 @@ test_mu_query_01 (void)
{ "html and contains", 1 }, { "html and contains", 1 },
{ "from:pepernoot", 0 }, { "from:pepernoot", 0 },
{ "foo:pepernoot", 0 }, { "foo:pepernoot", 0 },
{ "funky", 1 },
{ "fünkÿ", 1 }, { "fünkÿ", 1 },
// { "funky", 1 }
}; };
xpath = fill_database (); xpath = fill_database ();
g_assert (xpath != NULL); g_assert (xpath != NULL);
@ -140,9 +136,19 @@ test_mu_query_03 (void)
QResults queries[] = { QResults queries[] = {
{ "ploughed", 1}, { "ploughed", 1},
{ "i:3BE9E6535E3029448670913581E7A1A20D852173@emss35m06.us.lmco.com", 1}, { "i:3BE9E6535E3029448670913581E7A1A20D852173@emss35m06.us.lmco.com", 1},
{ "s:Re:Learning LISP; Scheme vs elisp.", 1},
/* subsets of the words in the subject should match */
{ "s:gcc include search order" , 1},
{ "s:gcc include search" , 1},
{ "s:search order" , 1},
{ "s:include" , 1},
{ "s:lisp", 1},
{ "s:LISP", 1},
{ "s:Learning LISP; Scheme vs elisp.", 1},
{ "subject:Re Learning LISP; Scheme vs elisp.", 1}, { "subject:Re Learning LISP; Scheme vs elisp.", 1},
{ "t:help-gnu-emacs@gnu.org", 4}, { "to:help-gnu-emacs@gnu.org", 4},
{ "t:help-gnu-emacs", 0}, { "t:help-gnu-emacs", 0},
}; };
@ -167,7 +173,7 @@ test_mu_query_04 (void)
// { "frodo@example.com", 1}, // { "frodo@example.com", 1},
{ "f:frodo@example.com", 1}, { "f:frodo@example.com", 1},
{ "f:Frodo Baggins", 1}, { "f:Frodo Baggins", 1},
// { "bilbo@anotherexample.com", 1}, // { "bilbo@anotherexample.com", 1},
{ "t:bilbo@anotherexample.com", 1}, { "t:bilbo@anotherexample.com", 1},
{ "t:bilbo", 1}, { "t:bilbo", 1},
{ "f:bilbo", 0}, { "f:bilbo", 0},