datetime: Port tests to GTest

test-timezone is still disabled though, as it is too noisy still.
This commit is contained in:
Bastien Nocera 2016-06-10 14:33:32 +02:00
parent d18411dbe2
commit 1428b52fdc
5 changed files with 76 additions and 48 deletions

View file

@ -1,3 +1,5 @@
include $(top_srcdir)/Makefile.decl
# This is used in PANEL_CFLAGS # This is used in PANEL_CFLAGS
cappletname = datetime cappletname = datetime
@ -23,7 +25,9 @@ AM_CPPFLAGS = \
-DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \ -DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \
$(NULL) $(NULL)
noinst_PROGRAMS = test-timezone-gfx test-endianess test-timezone # test-timezone is still too noisy
noinst_PROGRAMS = $(TEST_PROGS) test-timezone
TEST_PROGS += test-timezone-gfx test-endianess
test_timezone_SOURCES = test-timezone.c cc-timezone-map.h cc-timezone-map.c tz.c tz.h cc-datetime-resources.c cc-datetime-resources.h test_timezone_SOURCES = test-timezone.c cc-timezone-map.h cc-timezone-map.c tz.c tz.h cc-datetime-resources.c cc-datetime-resources.h
test_timezone_LDADD = $(DATETIME_PANEL_LIBS) -lm test_timezone_LDADD = $(DATETIME_PANEL_LIBS) -lm
@ -37,16 +41,8 @@ test_endianess_SOURCES = test-endianess.c date-endian.c date-endian.h
test_endianess_LDADD = $(DATETIME_PANEL_LIBS) test_endianess_LDADD = $(DATETIME_PANEL_LIBS)
test_endianess_CFLAGS = $(DATETIME_PANEL_CFLAGS) test_endianess_CFLAGS = $(DATETIME_PANEL_CFLAGS)
all-local: check-local
check-local: test-timezone-gfx test-endianess test-timezone
$(builddir)/test-timezone-gfx $(srcdir)/data
$(builddir)/test-endianess
# $(builddir)/test-timezone
noinst_LTLIBRARIES = libdate_time.la noinst_LTLIBRARIES = libdate_time.la
# This requires running d-bus session and accessible timedate1 daemon # This requires running d-bus session and accessible timedate1 daemon
# FIXME: need to find a way how to filter out unnecessary d-bus stuff (introspectable, properties) # FIXME: need to find a way how to filter out unnecessary d-bus stuff (introspectable, properties)
#timedated1-interface.xml: #timedated1-interface.xml:

View file

@ -15,6 +15,8 @@ NLSPACKAGE = $(GETTEXT_PACKAGE)-timezones
%.mo: %.po %.mo: %.po
$(AM_V_GEN) msgfmt -o $@ $< $(AM_V_GEN) msgfmt -o $@ $<
test:
install: $(CATALOGS) install: $(CATALOGS)
@mkdir -p $(DESTDIR)$(localedir) @mkdir -p $(DESTDIR)$(localedir)
for n in $(CATALOGS); do \ for n in $(CATALOGS); do \

View file

@ -20,14 +20,35 @@ print_endianess (const char *lang)
g_print ("\t\t%s\n", date_endian_to_string (endianess)); g_print ("\t\t%s\n", date_endian_to_string (endianess));
} }
int main (int argc, char **argv) static void
test_endianess (void)
{ {
GDir *dir; GDir *dir;
const char *name; const char *name;
dir = g_dir_open ("/usr/share/i18n/locales/", 0, NULL);
if (dir == NULL) {
/* Try with /usr/share/locale/
* https://bugzilla.gnome.org/show_bug.cgi?id=646780 */
dir = g_dir_open ("/usr/share/locale/", 0, NULL);
if (dir == NULL) {
g_assert_not_reached ();
}
}
while ((name = g_dir_read_name (dir)) != NULL)
print_endianess (name);
}
int main (int argc, char **argv)
{
setlocale (LC_ALL, ""); setlocale (LC_ALL, "");
bind_textdomain_codeset ("libc", "UTF-8"); bind_textdomain_codeset ("libc", "UTF-8");
g_test_init (&argc, &argv, NULL);
g_setenv ("G_DEBUG", "fatal_warnings", FALSE);
if (argv[1] != NULL) { if (argv[1] != NULL) {
verbose = 1; verbose = 1;
@ -38,18 +59,7 @@ int main (int argc, char **argv)
return 0; return 0;
} }
dir = g_dir_open ("/usr/share/i18n/locales/", 0, NULL); g_test_add_func ("/datetime/endianess", test_endianess);
if (dir == NULL) {
/* Try with /usr/share/locale/
* https://bugzilla.gnome.org/show_bug.cgi?id=646780 */
dir = g_dir_open ("/usr/share/locale/", 0, NULL);
if (dir == NULL) {
return 1;
}
}
while ((name = g_dir_read_name (dir)) != NULL) return g_test_run ();
print_endianess (name);
return 0;
} }

View file

@ -3,24 +3,13 @@
#include "tz.h" #include "tz.h"
int main (int argc, char **argv) static void
test_timezone_gfx (gconstpointer data)
{ {
const char *pixmap_dir = data;
TzDB *db; TzDB *db;
GPtrArray *locs; GPtrArray *locs;
guint i; guint i;
char *pixmap_dir;
int retval = 0;
setlocale (LC_ALL, "");
if (argc == 2) {
pixmap_dir = g_strdup (argv[1]);
} else if (argc == 1) {
pixmap_dir = g_strdup ("data/");
} else {
g_message ("Usage: %s [PIXMAP DIRECTORY]", argv[0]);
return 1;
}
db = tz_load_db (); db = tz_load_db ();
locs = tz_get_locations (db); locs = tz_get_locations (db);
@ -42,14 +31,34 @@ int main (int argc, char **argv)
if (g_file_test (path, G_FILE_TEST_IS_REGULAR) == FALSE) { if (g_file_test (path, G_FILE_TEST_IS_REGULAR) == FALSE) {
g_message ("File '%s' missing for zone '%s'", filename, loc->zone); g_message ("File '%s' missing for zone '%s'", filename, loc->zone);
retval = 1; g_test_fail ();
} }
g_free (filename); g_free (filename);
g_free (path); g_free (path);
} }
tz_db_free (db); tz_db_free (db);
g_free (pixmap_dir); }
return retval; int main (int argc, char **argv)
{
char *pixmap_dir;
setlocale (LC_ALL, "");
g_test_init (&argc, &argv, NULL);
g_setenv ("G_DEBUG", "fatal_warnings", FALSE);
if (argc == 2) {
pixmap_dir = g_strdup (argv[1]);
} else if (argc == 1) {
pixmap_dir = g_strdup ("data/");
} else {
g_message ("Usage: %s [PIXMAP DIRECTORY]", argv[0]);
return 1;
}
g_test_add_data_func ("/datetime/timezone-gfx", pixmap_dir, test_timezone_gfx);
return g_test_run ();
} }

View file

@ -1,3 +1,4 @@
#include <locale.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include "cc-timezone-map.h" #include "cc-timezone-map.h"
@ -56,15 +57,13 @@ get_timezone_list (GList *tzs,
return tzs; return tzs;
} }
int main (int argc, char **argv) static void
test_timezone (void)
{ {
CcTimezoneMap *map; CcTimezoneMap *map;
TzDB *tz_db; TzDB *tz_db;
GList *tzs, *l; GList *tzs, *l;
GHashTable *ht; GHashTable *ht;
int ret = 0;
gtk_init (&argc, &argv);
ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
map = cc_timezone_map_new (); map = cc_timezone_map_new ();
@ -83,12 +82,13 @@ int main (int argc, char **argv)
else else
g_print ("Failed to locate timezone '%s' (original name: '%s')\n", clean_tz, timezone); g_print ("Failed to locate timezone '%s' (original name: '%s')\n", clean_tz, timezone);
g_hash_table_insert (ht, g_strdup (clean_tz), GINT_TO_POINTER (TRUE)); g_hash_table_insert (ht, g_strdup (clean_tz), GINT_TO_POINTER (TRUE));
g_test_fail ();
} }
/* We don't warn for those two, we'll just fallback /* We don't warn for those two, we'll just fallback
* in the panel code */ * in the panel code */
if (!g_str_equal (clean_tz, "posixrules") && if (!g_str_equal (clean_tz, "posixrules") &&
!g_str_equal (clean_tz, "Factory")) !g_str_equal (clean_tz, "Factory"))
ret = 1; g_test_fail ();
} }
g_free (timezone); g_free (timezone);
g_free (clean_tz); g_free (clean_tz);
@ -96,6 +96,17 @@ int main (int argc, char **argv)
g_list_free (tzs); g_list_free (tzs);
tz_db_free (tz_db); tz_db_free (tz_db);
g_hash_table_destroy (ht); g_hash_table_destroy (ht);
}
return ret;
int main (int argc, char **argv)
{
setlocale (LC_ALL, "");
gtk_init (NULL, NULL);
g_test_init (&argc, &argv, NULL);
g_setenv ("G_DEBUG", "fatal_warnings", FALSE);
g_test_add_func ("/datetime/timezone", test_timezone);
return g_test_run ();
} }