summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2002-11-08 15:54:50 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2002-11-08 15:54:50 +0000
commit7f258230934134a08a24b547a1d0570180afbd9c (patch)
tree3dc80c6365db9cd3d36391736e81a47b372651bd
parent8576c199ee2aef061f5d7501a002a9f22aad77ae (diff)
downloadmailutils-7f258230934134a08a24b547a1d0570180afbd9c.tar.gz
mailutils-7f258230934134a08a24b547a1d0570180afbd9c.tar.bz2
New file. Provides standard sieve tests (all noops, so far)
-rw-r--r--libsieve/tests.c149
1 files changed, 149 insertions, 0 deletions
diff --git a/libsieve/tests.c b/libsieve/tests.c
new file mode 100644
index 000000000..4ab0f14f7
--- /dev/null
+++ b/libsieve/tests.c
@@ -0,0 +1,149 @@
+/* GNU mailutils - a suite of utilities for electronic mail
+ Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <sieve.h>
+
+#define TAG_LOCALPART 0
+#define TAG_DOMAIN 1
+#define TAG_ALL 2
+#define TAG_COMPARATOR 3
+#define TAG_IS 4
+#define TAG_CONTAINS 5
+#define TAG_MATCHES 6
+#define TAG_REGEX 7
+#define TAG_UNDER 8
+#define TAG_OVER 9
+
+int
+sieve_test_address (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_header (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_envelope (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_size (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_true (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_false (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_exists (sieve_machine_t *mach, list_t *args)
+{
+}
+
+#define ADDRESS_PART \
+ { "localpart", TAG_LOCALPART, SVT_VOID },\
+ { "domain", TAG_DOMAIN, SVT_VOID },\
+ { "all", TAG_ALL, SVT_VOID }
+
+#define MATCH_PART \
+ { "is", TAG_IS, SVT_VOID },\
+ { "contains", TAG_CONTAINS, SVT_VOID },\
+ { "matches", TAG_MATCHES, SVT_VOID },\
+ { "regex", TAG_REGEX, SVT_VOID }
+
+#define COMP_PART \
+ { "comparator", TAG_COMPARATOR, SVT_STRING }
+
+#define SIZE_PART \
+ { "under", TAG_UNDER, SVT_VOID },\
+ { "over", TAG_OVER, SVT_VOID }
+
+
+sieve_tag_def_t address_tags[] = {
+ ADDRESS_PART,
+ COMP_PART,
+ MATCH_PART,
+ { NULL }
+};
+
+sieve_data_type address_req_args[] = {
+ SVT_STRING_LIST,
+ SVT_STRING_LIST,
+ SVT_VOID
+};
+
+sieve_tag_def_t size_tags[] = {
+ SIZE_PART,
+ { NULL }
+};
+
+sieve_data_type size_req_args[] = {
+ SVT_NUMBER,
+ SVT_VOID
+};
+
+sieve_tag_def_t envelope_tags[] = {
+ COMP_PART,
+ ADDRESS_PART,
+ MATCH_PART,
+ { NULL }
+};
+
+sieve_data_type exists_req_args[] = {
+ SVT_STRING_LIST,
+ SVT_VOID
+};
+
+sieve_tag_def_t header_tags[] = {
+ COMP_PART,
+ MATCH_PART,
+ { NULL },
+};
+
+void
+sieve_register_standard_tests ()
+{
+ sieve_register_test ("false", sieve_test_false, NULL, NULL, 1);
+ sieve_register_test ("true", sieve_test_false, NULL, NULL, 1);
+ sieve_register_test ("address", sieve_test_address,
+ address_req_args, address_tags, 1);
+ sieve_register_test ("size", sieve_test_size,
+ size_req_args, size_tags, 1);
+ sieve_register_test ("envelope", sieve_test_envelope,
+ address_req_args, envelope_tags, 1);
+ sieve_register_test ("exists", sieve_test_exists,
+ exists_req_args, NULL, 1);
+ sieve_register_test ("header", sieve_test_header,
+ address_req_args, header_tags, 1);
+}

Return to:

Send suggestions and report system problems to the System administrator.