aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2016-07-25 12:37:52 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2016-07-25 12:54:39 +0300
commit364f4246159b8d338c2fafc70b868ffc83816c2f (patch)
treed6609a1a066d657df4d7615f55834a29f45c6c6f /tests
parentde7834e96602695db1cb6efd6238398b84d2ca60 (diff)
downloadgdbm-364f4246159b8d338c2fafc70b868ffc83816c2f.tar.gz
gdbm-364f4246159b8d338c2fafc70b868ffc83816c2f.tar.bz2
Add debug info.
* configure.ac: Fix description wording. * src/Makefile.am [GDBM_COND_DEBUG_ENABLE]: Don't define GDBM_DEBUG_ENABLE. * tests/Makefile.am: Likewise. * src/debug.c (gdbm_debug_printer) (gdbm_debug_flags): New globals. (gdbm_debug_token, gdbm_debug_parse_state) (gdbm_debug_datum): New functions. * src/gdbm.h.in [@GDBM_DEBUG_ENABLE@]: Define GDBM_DEBUG_ENABLE. (gdbm_debug_printer_t): New typedef. (gdbm_debug_printer, gdbm_debug_flags): New externs. (GDBM_DEBUG_ERR,GDBM_DEBUG_OPEN) (GDBM_DEBUG_READ,GDBM_DEBUG_STORE) (GDBM_DEBUG_LOOKUP,GDBM_DEBUG_ALL): New defines. (gdbm_debug_token,gdbm_debug_parse_state) (gdbm_debug_datum): New protos. * src/gdbmdefs.h (GDBM_DEBUG,GDBM_DEBUG_DATUM): New macros. * src/findkey.c: Add debugging info. * src/gdbmfetch.c: Likewise. * src/gdbmopen.c: Likewise. * src/gdbmseq.c: Likewise. * src/gdbmstore.c: Likewise. * src/gdbmtool.c (open_handler): Allow the use of ~/ (command) <repeat,variadic>: New members. (run_command): Handle variadic functions. (run_last_command): New command. In interactive mode, repeats the last command if it was marked with repeat=1 (currently, only "next"). New command: "debug". (all functions): Use terror instead of fprintf(stderr,...); * src/gdbmtool.h (handler_param) <vararg>: New member. (run_last_command): New proto. * src/gram.y: Call run_last_command) on empty input. * tests/gtload.c: New option: -debug=
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am4
-rw-r--r--tests/gtload.c33
2 files changed, 33 insertions, 4 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ae6cbb9..2e68e69 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -120,10 +120,6 @@ check_PROGRAMS = \
120 120
121AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src $(DBMINCLUDES) 121AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src $(DBMINCLUDES)
122 122
123if GDBM_COND_DEBUG_ENABLE
124 AM_CPPFLAGS += -DGDBM_DEBUG_ENABLE=1
125endif
126
127noinst_HEADERS=progname.h 123noinst_HEADERS=progname.h
128 124
129LDADD = ../src/libgdbm.la 125LDADD = ../src/libgdbm.la
diff --git a/tests/gtload.c b/tests/gtload.c
index f9f1bb1..10f65c3 100644
--- a/tests/gtload.c
+++ b/tests/gtload.c
@@ -120,9 +120,23 @@ install_hook (char *id)
120 } 120 }
121 } 121 }
122 } 122 }
123#ifdef GDBM_DEBUG_ENABLE
123 _gdbm_debug_hook_install (id, hookfn, clos); 124 _gdbm_debug_hook_install (id, hookfn, clos);
125#endif
124} 126}
125 127
128#ifdef GDBM_DEBUG_ENABLE
129void
130debug_printer (char const *fmt, ...)
131{
132 va_list ap;
133
134 va_start (ap, fmt);
135 vfprintf (stderr, fmt, ap);
136 va_end (ap);
137}
138#endif
139
126int 140int
127main (int argc, char **argv) 141main (int argc, char **argv)
128{ 142{
@@ -146,6 +160,10 @@ main (int argc, char **argv)
146 int rcvr_flags = 0; 160 int rcvr_flags = 0;
147 161
148 progname = canonical_progname (argv[0]); 162 progname = canonical_progname (argv[0]);
163#ifdef GDBM_DEBUG_ENABLE
164 gdbm_debug_printer = debug_printer;
165#endif
166
149 while (--argc) 167 while (--argc)
150 { 168 {
151 char *arg = *++argv; 169 char *arg = *++argv;
@@ -209,6 +227,21 @@ main (int argc, char **argv)
209 rcvr.max_failures = read_size (arg + 20); 227 rcvr.max_failures = read_size (arg + 20);
210 rcvr_flags |= GDBM_RCVR_MAX_FAILED_BUCKETS; 228 rcvr_flags |= GDBM_RCVR_MAX_FAILED_BUCKETS;
211 } 229 }
230#ifdef GDBM_DEBUG_ENABLE
231 else if (strncmp (arg, "-debug=", 7) == 0)
232 {
233 char *p;
234
235 for (p = strtok (arg + 7, ","); p; p = strtok (NULL, ","))
236 {
237 int f = gdbm_debug_token (p);
238 if (!f)
239 fprintf (stderr, "%s: unknown flag: %s\n", progname, p);
240 else
241 gdbm_debug_flags |= f;
242 }
243 }
244#endif
212 else if (strcmp (arg, "--") == 0) 245 else if (strcmp (arg, "--") == 0)
213 { 246 {
214 --argc; 247 --argc;

Return to:

Send suggestions and report system problems to the System administrator.