Tag
Hash :
c0fea97c
Author :
Date :
2007-05-28T16:49:41
Unconditionally include <config.h> in unit tests. * tests/test-alloca-opt.c: Remove #ifdef HAVE_CONFIG_H. * tests/test-allocsa.c, tests/test-arcfour.c, tests/test-arctwo.c, tests/test-argmatch.c, tests/test-argp.c, tests/test-array_list.c, tests/test-array_oset.c, tests/test-atexit.c, test-avltree_list.c, test-avltree_oset.c, test-avltreehash_list.c, test-base64.c, test-binary-io.c, test-c-ctype.c, test-c-strcasecmp.c, test-c-strcasestr.c, test-c-strncasecmp.c, test-c-strstr.c, test-canonicalize-lgpl.c, test-carray_list.c, test-crc.c, test-des.c, test-dirname.c, test-fflush.c, test-fprintf-posix.c, test-gc-arcfour.c, test-gc-arctwo.c, test-gc-des.c, test-gc-hmac-md5.c, test-gc-hmac-sha1.c, test-gc-md2.c, test-gc-md4.c, test-gc-md5.c, test-gc-pbkdf2-sha1.c, test-gc-rijndael.c, test-gc-sha1.c, test-gc.c, test-getpass.c, test-hmac-md5.c, test-hmac-sha1.c, test-iconv.c, test-linked_list.c, test-linkedhash_list.c, test-lock.c, test-mbscasecmp.c, test-mbscasestr1.c, test-mbscasestr2.c, test-mbscasestr3.c, test-mbscasestr4.c, test-mbschr.c, test-mbscspn.c, test-mbsncasecmp.c, test-mbspbrk.c, test-mbspcasecmp.c, test-mbsrchr.c, test-mbsspn.c, test-mbsstr1.c, test-mbsstr2.c, test-mbsstr3.c, test-md2.c, test-md4.c, test-md5.c, test-memmem.c, test-printf-posix.c, test-rbtree_list.c, test-rbtree_oset.c, test-rbtreehash_list.c, test-read-file.c, test-rijndael.c, test-snprintf-posix.c, test-snprintf.c, test-sprintf-posix.c, test-stdint.c, test-strcasestr.c, test-striconv.c, test-striconveh.c, test-striconveha.c, test-tls.c, test-vasnprintf-posix.c, test-vasnprintf-posix2.c, test-vasnprintf.c, test-vasprintf-posix.c, test-vasprintf.c, test-verify.c, test-vfprintf-posix.c, test-vprintf-posix.c, test-vsnprintf-posix.c, test-vsnprintf.c, test-vsprintf-posix.c, test-xvasprintf.c: Likewise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
/* Test of exact or abbreviated match search.
Copyright (C) 1990, 1998-1999, 2001-2007 Free Software Foundation, Inc.
This program 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 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007, based on test code
by David MacKenzie <djm@gnu.ai.mit.edu>. */
#include <config.h>
#include "argmatch.h"
#include <stdio.h>
#include <stdlib.h>
#include "progname.h"
#define ASSERT(expr) \
do \
{ \
if (!(expr)) \
{ \
fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
abort (); \
} \
} \
while (0)
enum backup_type
{
no_backups,
simple_backups,
numbered_existing_backups,
numbered_backups
};
static const char *const backup_args[] =
{
"no", "none", "off",
"simple", "never", "single",
"existing", "nil", "numbered-existing",
"numbered", "t", "newstyle",
NULL
};
static const enum backup_type backup_vals[] =
{
no_backups, no_backups, no_backups,
simple_backups, simple_backups, simple_backups,
numbered_existing_backups, numbered_existing_backups, numbered_existing_backups,
numbered_backups, numbered_backups, numbered_backups
};
int
main (int argc, char *argv[])
{
set_program_name (argv[0]);
/* Not found. */
ASSERT (ARGMATCH ("klingon", backup_args, backup_vals) == -1);
/* Exact match. */
ASSERT (ARGMATCH ("none", backup_args, backup_vals) == 1);
ASSERT (ARGMATCH ("nil", backup_args, backup_vals) == 7);
/* Too long. */
ASSERT (ARGMATCH ("nilpotent", backup_args, backup_vals) == -1);
/* Abbreviated. */
ASSERT (ARGMATCH ("simpl", backup_args, backup_vals) == 3);
ASSERT (ARGMATCH ("simp", backup_args, backup_vals) == 3);
ASSERT (ARGMATCH ("sim", backup_args, backup_vals) == 3);
/* Exact match and abbreviated. */
ASSERT (ARGMATCH ("numbered", backup_args, backup_vals) == 9);
ASSERT (ARGMATCH ("numbere", backup_args, backup_vals) == -2);
ASSERT (ARGMATCH ("number", backup_args, backup_vals) == -2);
ASSERT (ARGMATCH ("numbe", backup_args, backup_vals) == -2);
ASSERT (ARGMATCH ("numb", backup_args, backup_vals) == -2);
ASSERT (ARGMATCH ("num", backup_args, backup_vals) == -2);
ASSERT (ARGMATCH ("nu", backup_args, backup_vals) == -2);
ASSERT (ARGMATCH ("n", backup_args, backup_vals) == -2);
/* Ambiguous abbreviated. */
ASSERT (ARGMATCH ("ne", backup_args, backup_vals) == -2);
/* Ambiguous abbreviated, but same value. */
ASSERT (ARGMATCH ("si", backup_args, backup_vals) == 3);
ASSERT (ARGMATCH ("s", backup_args, backup_vals) == 3);
return 0;
}