commit-mailutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Mailutils branch, master, updated. release-2.2-79-gec989a5


From: Sergey Poznyakoff
Subject: [SCM] GNU Mailutils branch, master, updated. release-2.2-79-gec989a5
Date: Wed, 15 Sep 2010 13:53:31 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mailutils".

http://git.savannah.gnu.org/cgit/mailutils.git/commit/?id=ec989a562f5a64f36909dc0a151fc24b50a733be

The branch, master has been updated
       via  ec989a562f5a64f36909dc0a151fc24b50a733be (commit)
       via  5aa2c0a36b26f096b50f8d674e8626e59b4dcc1c (commit)
      from  0ae3a52ef8c7757c6aebe351355d728db13cbf30 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ec989a562f5a64f36909dc0a151fc24b50a733be
Author: Sergey Poznyakoff <address@hidden>
Date:   Wed Sep 15 16:38:48 2010 +0300

    libmailutils/tests: test list and iterator operations.
    
    * examples/listop.c: Move to libmailutils/tests.
    * examples/Makefile.am (noinst_PROGRAMS): Remove listop.
    * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add listop.
    (TESTSUITE_AT): Add list.at.
    * libmailutils/tests/.gitignore: New file.
    * libmailutils/tests/list.at: New file.
    * libmailutils/tests/testsuite.at: Include list.at.
    
    * libmailutils/list.c (list_itrctl): Fix mu_itrctl_replace.

commit 5aa2c0a36b26f096b50f8d674e8626e59b4dcc1c
Author: Sergey Poznyakoff <address@hidden>
Date:   Wed Sep 15 14:52:15 2010 +0300

    Optimize libmailutils testsuite.
    
    * libmailutils/tests/testsuite.at (MU_TEST_GROUP)
    (MU_TEST_KEYWORDS, MU_TEST_COMMAND): New defines.
    (mu_trimstr, mu_firstline): New macros.
    (MU_GENERIC_TEST): New macro.
    * libmailutils/tests/addr.c: Accept addresses from stdin.
    * libmailutils/tests/address.at (TESTADDR): If the address
    contains single quotes, pass it to the program via stdin.
    Uncomment all such tests.
    * libmailutils/tests/argcv.at (TESTARGS): Rewrite as a wrapper
    over MU_GENERIC_TEST.
    * libmailutils/tests/decode2047.at (TESTDEC2047): Likewise.
    * libmailutils/tests/mailcap.at (MAILCAP): Likewise.
    * libmailutils/tests/url.at (TESTURL): Likewise.
    * libmailutils/tests/mailcap.c: Accept data from stdin.

-----------------------------------------------------------------------

Summary of changes:
 examples/Makefile.am                      |    1 -
 libmailutils/list.c                       |    1 +
 libmailutils/tests/.gitignore             |   15 ++
 libmailutils/tests/Makefile.am            |    2 +
 libmailutils/tests/addr.c                 |   35 +++-
 libmailutils/tests/address.at             |   40 ++----
 libmailutils/tests/argcv.at               |   17 +-
 libmailutils/tests/decode2047.at          |   17 +-
 libmailutils/tests/list.at                |  250 +++++++++++++++++++++++++++++
 {examples => libmailutils/tests}/listop.c |   56 ++++---
 libmailutils/tests/mailcap.at             |   19 ++-
 libmailutils/tests/mailcap.c              |   12 +-
 libmailutils/tests/testsuite.at           |   36 ++++
 libmailutils/tests/url.at                 |   19 ++-
 14 files changed, 420 insertions(+), 100 deletions(-)
 create mode 100644 libmailutils/tests/.gitignore
 create mode 100644 libmailutils/tests/list.at
 rename {examples => libmailutils/tests}/listop.c (94%)

diff --git a/examples/Makefile.am b/examples/Makefile.am
index c283d0d..8a7a6f3 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -40,7 +40,6 @@ noinst_PROGRAMS = \
  header\
  http\
  iconv\
- listop\
  lsf\
  msg-send\
  mta\
diff --git a/libmailutils/list.c b/libmailutils/list.c
index 91f6a6e..7e3a704 100644
--- a/libmailutils/list.c
+++ b/libmailutils/list.c
@@ -599,6 +599,7 @@ list_itrctl (void *owner, enum mu_itrctl_req req, void *arg)
       /* Replace current element */
       if (!arg)
        return EINVAL;
+      ptr = itr->cur;
       if (req == mu_itrctl_replace)
          DESTROY_ITEM (list, ptr);
       ptr = itr->cur;
diff --git a/libmailutils/tests/.gitignore b/libmailutils/tests/.gitignore
new file mode 100644
index 0000000..9d3e2d8
--- /dev/null
+++ b/libmailutils/tests/.gitignore
@@ -0,0 +1,15 @@
+atconfig
+atlocal
+package.m4
+testsuite
+testsuite.dir
+testsuite.log
+addr
+argcv
+decode2047
+encode2047
+fltst
+listop
+mailcap
+mimetest
+url-parse
diff --git a/libmailutils/tests/Makefile.am b/libmailutils/tests/Makefile.am
index 4cee19c..f3092ce 100644
--- a/libmailutils/tests/Makefile.am
+++ b/libmailutils/tests/Makefile.am
@@ -45,6 +45,7 @@ noinst_PROGRAMS = \
  decode2047\
  encode2047\
  fltst\
+ listop\
  mailcap\
  mimetest\
  url-parse
@@ -71,6 +72,7 @@ TESTSUITE_AT = \
  base64e.at\
  decode2047.at\
  encode2047.at\
+ list.at\
  mailcap.at\
  mime.at\
  testsuite.at\
diff --git a/libmailutils/tests/addr.c b/libmailutils/tests/addr.c
index 7e91f99..b6bdaa8 100644
--- a/libmailutils/tests/addr.c
+++ b/libmailutils/tests/addr.c
@@ -20,6 +20,7 @@
 #ifdef HAVE_CONFIG_H
 # include <config.h>
 #endif
+#include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
@@ -28,13 +29,14 @@
 #include <mailutils/errno.h>
 #include <mailutils/kwd.h>
 #include <mailutils/mutil.h>
+#include <mailutils/cstr.h>
+#include <mailutils/cctype.h>
 
 #define EPARSE MU_ERR_NOENT
 
 int
-main (int argc, char *argv[])
+parse (const char *str)
 {
-  char *str;
   size_t i;
   size_t pcount = 0;
   int status;
@@ -42,13 +44,6 @@ main (int argc, char *argv[])
   mu_address_t address = NULL;
   struct mu_address hint;
 
-  if (argc != 2)
-    {
-      fprintf (stderr, "usage: %s address\n", argv[0]);
-      return 2;
-    }
-  str = argv[1];
-  
   hint.domain = "localhost";
   status = mu_address_create_hint (&address, str, &hint, MU_ADDR_HINT_DOMAIN);
   mu_address_get_count (address, &pcount);
@@ -101,3 +96,25 @@ main (int argc, char *argv[])
   mu_address_destroy (&address);
   return 0;
 }
+
+int
+main (int argc, char *argv[])
+{
+  char buf[256];
+
+  if (argc > 2)
+    {
+      fprintf (stderr, "usage: %s [address]\n", argv[0]);
+      return 2;
+    }
+
+  if (argc == 2)
+    exit (parse (argv[1]));
+  
+  while (fgets (buf, sizeof buf, stdin))
+    {
+      mu_rtrim_class (buf, MU_CTYPE_SPACE);
+      parse (buf);
+    }
+  return 0;
+}
diff --git a/libmailutils/tests/address.at b/libmailutils/tests/address.at
index 9ce9fa3..c62dc22 100644
--- a/libmailutils/tests/address.at
+++ b/libmailutils/tests/address.at
@@ -22,7 +22,10 @@ dnl
 m4_define([TESTADDR],[
 AT_SETUP([Address: [$1]])
 AT_KEYWORDS([address $2])
-AT_CHECK([addr '[$1]'],m4_shift(m4_shift($@)))
+AT_CHECK([m4_if(m4_index([$1],[']),-1,[addr '[$1]'],
+[AT_DATA([input],[$1
+])
+addr < input])],m4_shift(m4_shift($@)))
 AT_CLEANUP
 ])
 
@@ -320,9 +323,7 @@ personal <#369>
 local-part <guug-bugs-closed> domain <guug.de>
 ])
 
-dnl --------------------------------------------------------------------------
-dnl FIXME:
-m4_if([TESTADDR(["'Aernoudt Bottemanne'"        <address@hidden>],[],
+TESTADDR(["'Aernoudt Bottemanne'"       <address@hidden>],[],
 [0],
 [naddr: 1
 1. email <address@hidden>:
@@ -369,12 +370,12 @@ local-part <paul> domain <pitbull-productions.com>
 ])
 
 TESTADDR(["'address@hidden'" <address@hidden>, "'address@hidden'"],[],
-[1],
+[0],
 [],
 [MU_ERR_BAD_822_FORMAT
 ])
 
-TESTADDR(["'address@hidden'" <address@hidden>],[]
+TESTADDR(["'address@hidden'" <address@hidden>],[],
 [0],
 [naddr: 1
 1. email <address@hidden>:
@@ -382,9 +383,6 @@ personal <'address@hidden'>
 local-part <sroberts> domain <certicom.ca>
 ])
 
-])
-dnl --------------------------------------------------------------------------
-
 TESTADDR(["=?iso-8859-1?Q?Juan_Carlos_Marcos_Rodr=EDguez?=" 
<address@hidden>],[],
 [0],
 [naddr: 1
@@ -477,8 +475,6 @@ local-part <jpalme> domain <dsv.su.se>
 local-part <drums> domain <cs.utk.edu>
 ])
 
-dnl FIXME
-m4_if([
 TESTADDR(["Jakob 'sparky' Kaivo" <address@hidden>],[],
 [0],
 [naddr: 1
@@ -486,7 +482,6 @@ TESTADDR(["Jakob 'sparky' Kaivo" <address@hidden>],[],
 personal <Jakob 'sparky' Kaivo>
 local-part <jkaivo> domain <elijah.nodomainname.net>
 ])
-])
 
 TESTADDR(["Lee R. Copp" <address@hidden>],[],
 [0],
@@ -528,8 +523,6 @@ personal <fmartens-2000>
 local-part <fmartens-2000> domain <planet.nl>
 ])
 
-dnl FIXME
-m4_if([
 TESTADDR(["g'o'tz ohnesorge" <address@hidden>],[],
 [0],
 [naddr: 1
@@ -538,8 +531,6 @@ personal <g'o'tz ohnesorge>
 local-part <gohnesorge> domain <lh-computertechnik.de>
 ])
 
-])
-
 TESTADDR(["gao jie" <address@hidden>],[],
 [0],
 [naddr: 1
@@ -607,16 +598,12 @@ personal <address@hidden>
 local-part <zwk%f36.n480.z2.fidonet.org> domain <f36.n480.z2.fidonet.org>
 ])
 
-dnl FIXME
-m4_if([
 TESTADDR(['Dan Dall'Acqua' <address@hidden>, 'Dave Shyong'],[],
-[1],
+[0],
 [],
 [MU_ERR_BAD_822_FORMAT
 ])
 
-])
-
 TESTADDR(address@hidden,[],
 [0],
 [naddr: 1
@@ -914,15 +901,13 @@ personal <Jose C. Garcia Sogo>
 local-part <jose> domain <jaimedelamo.eu.org>
 ])
 
-dnl FIXME
-m4_if([
-TESTADDR([Marco d'Itri <address@hidden>,[],
+TESTADDR([Marco d'Itri <address@hidden>],[],
 [0],
+[naddr: 1
 1. email <address@hidden>:
 personal <Marco d'Itri>
 local-part <md> domain <Linux.IT>
 ])
-])
 
 TESTADDR(address@hidden,[],
 [0],
@@ -1007,8 +992,6 @@ personal <ktb>
 local-part <x.y.f> domain <home.com>
 ])
 
-dnl FIXME
-m4_if([
 TESTADDR(address@hidden, address@hidden, Kieran.O'address@hidden,[],
 [0],
 [naddr: 3
@@ -1019,7 +1002,6 @@ local-part <aposner> domain <usaid.gov>
 3. email <Kieran.O'address@hidden>:
 local-part <Kieran.O'Leary> domain <anpost.ie>
 ])
-])
 
 TESTADDR(address@hidden@dikke.penguin.nl],[],
 [1],
@@ -1034,8 +1016,6 @@ TESTADDR([root],[],
 local-part <root> domain <localhost>
 ])
 
-dnl FIXME srr <address@hidden>=> error MU_ERR_BAD_822_FORMAT
-
 TESTADDR([whom it may concern: ;;whom.it.may.concern: ;],[],
 [1],
 [],
diff --git a/libmailutils/tests/argcv.at b/libmailutils/tests/argcv.at
index 5e40527..9ef8652 100644
--- a/libmailutils/tests/argcv.at
+++ b/libmailutils/tests/argcv.at
@@ -19,14 +19,14 @@ dnl 
------------------------------------------------------------
 dnl TESTARGS([NAME], [KW = `'], [INPUT], [STDOUT = `'],
 dnl          [STDERR = `'], [RUN-IF-FAIL], [RUN-IF-PASS])
 dnl
-m4_define([TESTARGS],[
-AT_SETUP([Argcv: $1])
-AT_KEYWORDS([argcv $2])
-AT_CHECK([
-AT_DATA([input],[$3
-])
-argcv < input],[0],m4_shift(m4_shift(m4_shift($@))))
-AT_CLEANUP
+m4_pushdef([TESTARGS],[
+m4_pushdef([MU_TEST_GROUP],[Argcv])
+m4_pushdef([MU_TEST_KEYWORDS],[argcv])
+m4_pushdef([MU_TEST_COMMAND],[argcv])
+MU_GENERIC_TEST([$1],[$2],[$3],[],[$4],[$5])
+m4_popdef([MU_TEST_COMMAND])
+m4_popdef([MU_TEST_KEYWORDS])
+m4_popdef([MU_TEST_GROUP])
 ])
 
 dnl ------------------------------------------------------------
@@ -84,6 +84,7 @@ TESTARG([unbalanced quote 3],[],
 [1: "\""
 ])
 
+m4_popdef([TESTARGS])
 
 
 
diff --git a/libmailutils/tests/decode2047.at b/libmailutils/tests/decode2047.at
index 4f52d8d..c33e1fb 100644
--- a/libmailutils/tests/decode2047.at
+++ b/libmailutils/tests/decode2047.at
@@ -19,14 +19,14 @@ dnl 
------------------------------------------------------------
 dnl TESTDEC2047([NAME], [KW = `'], [INPUT], [STDOUT = `'],
 dnl         [STDERR = `'], [RUN-IF-FAIL], [RUN-IF-PASS])
 dnl
-m4_define([TESTDEC2047],[
-AT_SETUP([Decode 2047: m4_if([$1],[],[$3],[$1])])
-AT_KEYWORDS([decode2047 decode $2])
-AT_CHECK([
-AT_DATA([input],[$3
-])
-decode2047 -p < input],[0],m4_shift(m4_shift(m4_shift($@))))
-AT_CLEANUP
+m4_pushdef([TESTDEC2047],[
+m4_pushdef([MU_TEST_GROUP],[Decode 2047])
+m4_pushdef([MU_TEST_KEYWORDS],[decode2047 decode])
+m4_pushdef([MU_TEST_COMMAND],[decode2047 -p])
+MU_GENERIC_TEST([$1],[$2],[$3],[],[$4],[$5])
+m4_popdef([MU_TEST_COMMAND])
+m4_popdef([MU_TEST_KEYWORDS])
+m4_popdef([MU_TEST_GROUP])
 ])
 
 dnl ------------------------------------------------------------
@@ -56,5 +56,6 @@ TESTDEC2047([malformed input],[decode05],
 [Fwd: \322\305\307\311\323\324\322\301\303\311\321 \304\317\315\305
 ])
 
+m4_popdef([TESTDEC2047])
 
 
diff --git a/libmailutils/tests/list.at b/libmailutils/tests/list.at
new file mode 100644
index 0000000..2309120
--- /dev/null
+++ b/libmailutils/tests/list.at
@@ -0,0 +1,250 @@
+# This file is part of GNU Mailutils. -*- Autotest -*-
+# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+#
+# GNU Mailutils is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3, 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
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>.
+# This file is part of Mailfromd testsuite. 
+
+dnl ------------------------------------------------------------
+dnl TESTLIST([NAME], [KW = `'], [INPUT], [STDOUT = `'],
+dnl          [STDERR = `'], [RUN-IF-FAIL], [RUN-IF-PASS])
+dnl
+m4_pushdef([TESTLIST],[
+m4_pushdef([MU_TEST_KEYWORDS],[list])
+m4_pushdef([MU_TEST_COMMAND],[listop])
+MU_GENERIC_TEST([$1],[$2],[$3],[],[$4],[$5])
+m4_popdef([MU_TEST_COMMAND])
+m4_popdef([MU_TEST_KEYWORDS])
+])
+
+
+# ------------------------------------------------------------
+# Lists
+# ------------------------------------------------------------
+
+m4_pushdef([MU_TEST_GROUP],[List])
+
+TESTLIST([build],[],
+[add en to tre fire fem
+print],
+[# items: 5
+en
+to
+tre
+fire
+fem
+])
+
+TESTLIST([insert after],[],
+[add en tre fire fem
+ins after en to
+print],
+[# items: 5
+en
+to
+tre
+fire
+fem
+])
+
+TESTLIST([insert before],[],
+[add en tre fire fem
+ins before tre to
+print],
+[# items: 5
+en
+to
+tre
+fire
+fem
+])
+
+TESTLIST([prepend],[],
+[add en to tre fire fem
+prep null jeden dwa trzy
+print],
+[# items: 9
+trzy
+dwa
+jeden
+null
+en
+to
+tre
+fire
+fem
+])
+
+TESTLIST([delete],[],
+[add en to tre fire fem
+del to fire
+print],
+[# items: 3
+en
+tre
+fem
+])
+
+TESTLIST([get],[],
+[add en to tre fire fem
+3],
+[fire
+])
+
+
+# ------------------------------------------------------------
+# Iterators
+# ------------------------------------------------------------
+
+m4_define([MU_TEST_GROUP],[Iterator])
+m4_define([MU_TEST_KEYWORDS],MU_TEST_KEYWORDS[ iterator itr])
+
+TESTLIST([forward],[],
+[add en to tre fire fem
+first
+cur
+next 3
+cur],
+[0:0:en
+0:3:fire
+])
+
+TESTLIST([locate],[],
+[add en to tre fire fem
+find tre
+cur],
+[0:2:tre
+])
+
+TESTLIST([backward],[],
+[add en to tre fire fem
+ictl dir backwards
+find fem
+cur
+next
+cur
+next 2
+cur
+],
+[0:4:fem
+0:3:fire
+0:1:to
+])
+
+TESTLIST([delete],[],
+[add en to tre fire fem
+find tre
+cur
+ictl del
+cur
+print
+],
+[0:2:tre
+0:2:fire
+# items: 4
+en
+to
+fire
+fem
+])
+
+TESTLIST([insert],[],
+[add en to fire
+find to
+cur
+ictl ins tre
+cur
+next
+cur
+next
+cur
+print
+],
+[0:1:to
+0:1:to
+0:2:tre
+0:3:fire
+# items: 4
+en
+to
+tre
+fire
+])
+
+TESTLIST([replace],[],
+[add en to tre fire fem
+find tre
+cur
+ictl repl trzy
+cur
+print
+],
+[0:2:tre
+0:2:trzy
+# items: 5
+en
+to
+trzy
+fire
+fem
+])
+
+TESTLIST([interaction],[],
+[add en to tre fire fem
+first
+iter 1
+find tre
+cur
+iter 0
+cur
+],
+[1:2:tre
+0:0:en
+])
+
+TESTLIST([interaction: moves],[],
+[add en to tre fire fem
+first
+iter 1
+find tre
+iter 0
+next
+iter 1
+next
+iter 0
+cur
+iter 1
+cur
+],
+[0:1:to
+1:3:fire
+])
+
+TESTLIST([interaction: deletes],[],
+[add en to tre fire fem
+find tre
+iter 1
+find tre
+ictl del
+cur
+iter 0
+cur
+],
+[1:2:fire
+0:2:fire
+])
+
+dnl ------------------------------------------------------------
+dnl Cleanup
+m4_popdef([TESTLIST])
+m4_popdef([MU_TEST_GROUP])
diff --git a/examples/listop.c b/libmailutils/tests/listop.c
similarity index 94%
rename from examples/listop.c
rename to libmailutils/tests/listop.c
index 01e7e7b..176dd20 100644
--- a/examples/listop.c
+++ b/libmailutils/tests/listop.c
@@ -26,12 +26,7 @@
 #include <mailutils/argcv.h>
 #include <mailutils/mailutils.h>
 
-void
-usage(int code)
-{
-  printf ("usage: listop [item..]\n");
-  exit (code);
-}
+static int interactive;
 
 void
 lperror (char *text, int rc)
@@ -413,9 +408,34 @@ find (mu_iterator_t itr, char *arg)
 }
 
 void
+cur (int num, mu_iterator_t itr)
+{
+  char *text;
+  size_t pos;
+  int rc;
+
+  printf ("%lu:", (unsigned long) num);
+  rc = mu_iterator_ctl (itr, mu_itrctl_tell, &pos);
+  if (rc == MU_ERR_NOENT)
+    {
+      printf ("iterator not initialized\n");
+      return;
+    }
+  if (rc)
+    lperror ("mu_iterator_ctl", rc);
+  printf ("%lu:", (unsigned long) pos);
+
+  rc = mu_iterator_current (itr, (void**) &text);
+  if (rc)
+    lperror ("mu_iterator_current", rc);
+  printf ("%s\n", text);
+}
+
+void
 help ()
 {
   printf ("count\n");
+  printf ("cur\n");
   printf ("next [count]\n");
   printf ("first\n");
   printf ("find item\n");
@@ -447,7 +467,7 @@ shell (mu_list_t list)
   num = 0;
   while (1)
     {
-      char *text;
+      char *text = NULL;
       char buf[80];
       int argc;
       char **argv;
@@ -464,7 +484,8 @@ shell (mu_list_t list)
       if (rc)
        lperror ("mu_iterator_current", rc);
 
-      printf ("%d:(%s)> ", num, text ? text : "NULL");
+      if (interactive)
+       printf ("%d:(%s)> ", num, text ? text : "NULL");
       if (fgets (buf, sizeof buf, stdin) == NULL)
        return;
 
@@ -494,6 +515,8 @@ shell (mu_list_t list)
            ictl (itr[num], argc, argv);
          else if (strcmp (argv[0], "print") == 0)
            print (list);
+         else if (strcmp (argv[0], "cur") == 0)
+           cur (num, itr[num]);
          else if (strcmp (argv[0], "quit") == 0)
            return;
          else if (strcmp (argv[0], "iter") == 0)
@@ -555,25 +578,16 @@ main (int argc, char **argv)
 {
   mu_list_t list;
   int rc;
-  
-  while ((rc = getopt (argc, argv, "h")) != EOF)
-    switch (rc)
-      {
-      case 'h':
-       usage (0);
-       
-      default:
-       usage (1);
-      }
-
-  argc -= optind;
-  argv += optind;
 
+  interactive = isatty (0);
   rc = mu_list_create (&list);
   if (rc)
     lperror ("mu_list_create", rc);
   mu_list_set_comparator (list, string_comp);
   mu_list_set_destroy_item (list, mu_list_free_item);
+
+  argc--;
+  argv++;
   
   while (argc--)
     {
diff --git a/libmailutils/tests/mailcap.at b/libmailutils/tests/mailcap.at
index fa9a767..ef071c6 100644
--- a/libmailutils/tests/mailcap.at
+++ b/libmailutils/tests/mailcap.at
@@ -19,14 +19,15 @@ dnl 
------------------------------------------------------------
 dnl MAILCAP([NAME], [KW = `'], [INPUT], [STDOUT = `'],
 dnl         [STDERR = `'], [RUN-IF-FAIL], [RUN-IF-PASS])
 dnl
-m4_define([MAILCAP],[
-AT_SETUP([Mailcap: [$1]])
-AT_KEYWORDS([mailcap $2])
-AT_CHECK([
-AT_DATA([input],[$3
-])
-mailcap input],[0],m4_shift(m4_shift(m4_shift($@))))
-AT_CLEANUP
+
+m4_pushdef([MAILCAP],[
+m4_pushdef([MU_TEST_GROUP],[Mailcap])
+m4_pushdef([MU_TEST_KEYWORDS],[mailcap])
+m4_pushdef([MU_TEST_COMMAND],[mailcap])
+MU_GENERIC_TEST([$1],[$2],[$3],[],[$4],[$5])
+m4_popdef([MU_TEST_COMMAND])
+m4_popdef([MU_TEST_KEYWORDS])
+m4_popdef([MU_TEST_GROUP])
 ])
 
 dnl ------------------------------------------------------------
@@ -277,3 +278,5 @@ nametemplate=%s.au],
        fields[2]: nametemplate=%s.au
 
 ]])
+
+m4_popdef([MAILCAP])
diff --git a/libmailutils/tests/mailcap.c b/libmailutils/tests/mailcap.c
index cacb752..c4f8818 100644
--- a/libmailutils/tests/mailcap.c
+++ b/libmailutils/tests/mailcap.c
@@ -31,22 +31,22 @@ main (int argc, char **argv)
 {
   mu_stream_t stream = NULL;
   int status = 0;
-  char *file = argc == 1 ? "/etc/mailcap" : argv[1];
   mu_mailcap_t mailcap = NULL;
 
-  status = mu_file_stream_create (&stream, file, MU_STREAM_READ);
+  status = mu_stdio_stream_create (&stream, MU_STDIN_FD,
+                                  MU_STREAM_READ|MU_STREAM_SEEK);
   if (status)
     {
-      mu_error ("cannot create file stream %s: %s",
-               file, mu_strerror (status));
+      mu_error ("cannot create input stream: %s",
+               mu_strerror (status));
       exit (1);
     }
 
   status = mu_stream_open (stream);
   if (status)
     {
-      mu_error ("cannot open file stream %s: %s",
-               file, mu_strerror (status));
+      mu_error ("cannot open input stream: %s",
+               mu_strerror (status));
       exit (1);
     }
 
diff --git a/libmailutils/tests/testsuite.at b/libmailutils/tests/testsuite.at
index 9ac73d9..bbf01e8 100644
--- a/libmailutils/tests/testsuite.at
+++ b/libmailutils/tests/testsuite.at
@@ -17,8 +17,44 @@
 
 m4_include([testsuite.inc])
 
+dnl ------------------------------------------------------------
+m4_define([MU_TEST_GROUP],[generic])
+dnl ------------------------------------------------------------
+m4_define([MU_TEST_KEYWORDS])
+dnl ------------------------------------------------------------
+m4_define([MU_TEST_COMMAND])
+
+m4_define([mu_trimstr],[m4_if([$2],-1,[$1],[m4_substr($1,0,$2)...])])
+m4_define([mu_firstline],[mu_trimstr([$1],m4_index([$1],[
+]))])
+
+dnl ------------------------------------------------------------
+dnl MU_GENERIC_TEST([NAME], [KW = `'], [INPUT],
+dnl                 [CODE], [STDOUT = `'], [STDERR = `'],
+dnl                 [RUN-IF-FAIL], [RUN-IF-PASS])
+dnl
+dnl NAME        $1
+dnl KW          $2
+dnl INPUT       $3
+dnl CODE        $4
+dnl STDOUT      $5
+dnl STDERR      $6
+dnl RUN-IF-FAIL $7
+dnl RUN-IF-PASS $8
+dnl
+m4_define([MU_GENERIC_TEST],[
+AT_SETUP([m4_if(MU_TEST_GROUP,[],,MU_TEST_GROUP: 
)m4_if([$1],[],mu_firstline([$3]),[$1])])
+AT_KEYWORDS([MU_TEST_KEYWORDS $2])
+AT_CHECK([
+AT_DATA([input],[$3
+])
+MU_TEST_COMMAND < input],[$4],[$5],[$6],[$7],[$8])
+AT_CLEANUP
+])
+
 AT_INIT
 
+m4_include([list.at])
 m4_include([address.at])
 m4_include([argcv.at])
 m4_include([mime.at])
diff --git a/libmailutils/tests/url.at b/libmailutils/tests/url.at
index 63a3c1c..f942c81 100644
--- a/libmailutils/tests/url.at
+++ b/libmailutils/tests/url.at
@@ -19,14 +19,15 @@ dnl 
------------------------------------------------------------
 dnl TESTURL([NAME], [KW = `'], [INPUT], [STDOUT = `'],
 dnl         [STDERR = `'], [RUN-IF-FAIL], [RUN-IF-PASS])
 dnl
-m4_define([TESTURL],[
-AT_SETUP([URL: m4_if([$1],[],[$3],[$1])])
-AT_KEYWORDS([url $2])
-AT_CHECK([
-AT_DATA([input],[$3
-])
-url-parse < input],[0],m4_shift(m4_shift(m4_shift($@))))
-AT_CLEANUP
+
+m4_pushdef([TESTURL],[
+m4_pushdef([MU_TEST_GROUP],[Url])
+m4_pushdef([MU_TEST_KEYWORDS],[url])
+m4_pushdef([MU_TEST_COMMAND],[url-parse])
+MU_GENERIC_TEST([$1],[$2],[$3],[],[$4],[$5])
+m4_popdef([MU_TEST_COMMAND])
+m4_popdef([MU_TEST_KEYWORDS])
+m4_popdef([MU_TEST_GROUP])
 ])
 
 dnl ------------------------------------------------------------
@@ -773,4 +774,4 @@ query[1] <arg 1>
 query[2] <arg 2>
 ]])
 
-
+m4_popdef([TESTURL])


hooks/post-receive
-- 
GNU Mailutils



reply via email to

[Prev in Thread] Current Thread [Next in Thread]