From: Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
Subject: [PATCH] Add test for gpsbabel

GPSbabel is at the core of viking. It could be really important
to do some test for checking compatibility.

Signed-off-by: Guilhem Bonnefille <guilhem.bonnefille@gmail.com>

---
 test/Makefile.am  |    7 ++++++-
 test/dump_babel.c |   28 ++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/test/Makefile.am b/test/Makefile.am
index f8334e2..a6aab3c 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -7,7 +7,7 @@ endif
 
 TESTS = check_degrees_conversions.sh
 
-check_PROGRAMS = degrees_converter gpx2gpx test_vikgotoxmltool test_coord_conversion
+check_PROGRAMS = degrees_converter gpx2gpx test_vikgotoxmltool test_coord_conversion dump_babel
 
 check_SCRIPTS = check_degrees_conversions.sh
 
@@ -32,3 +32,8 @@ test_coord_conversion_SOURCES = test_coord_conversion.c
 test_coord_conversion_LDADD = \
   $(top_builddir)/src/libviking.a \
   $(LDADD)
+
+dump_babel_SOURCES = dump_babel.c
+dump_babel_LDADD = \
+  $(top_builddir)/src/libviking.a \
+  $(LDADD)
diff --git a/test/dump_babel.c b/test/dump_babel.c
new file mode 100644
index 0000000..81c0c61
--- /dev/null
+++ b/test/dump_babel.c
@@ -0,0 +1,28 @@
+#include "babel.h"
+
+void dump_file (gpointer elem, gpointer user_data)
+{
+  const gchar *prefix =  (gchar*)(user_data);
+  const BabelFile *file = ((BabelFile*)elem);
+  printf ("%s%s, %s, %s\n", prefix, file->name, file->label, file->ext);
+}
+
+
+void dump_device (gpointer elem, gpointer user_data)
+{
+  const gchar *prefix =  (gchar*)(user_data);
+  const BabelDevice *device = ((BabelDevice*)elem);
+  printf ("%s%s, %s\n", prefix, device->name, device->label);
+}
+
+int main(int argc, char *argv[])
+{
+  a_babel_init();
+  /* Dump file formats */
+  printf ("%d file entries\n", g_list_length (a_babel_file_list));
+  g_list_foreach (a_babel_file_list, dump_file, "File: ");
+  /* Dump device list */
+  printf ("%d device entries\n", g_list_length (a_babel_device_list));
+  g_list_foreach (a_babel_device_list, dump_device, "Device: ");
+
+}
-- 
tg: (c3cf4e3..) t/test/dump-babel (depends on: master)
