Mercurial > pidgin.yaz
view libpurple/tests/check_libpurple.c @ 27674:e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
I made configure fail if libidn is unavailable and force_deps is set
because glib's UTF-8 strdown and casefold operations fail one of the
tests I've updated (based on running the tests with libidn).
Running without libidn will still work in almost every case because people
use all-ASCII JabberIDs and I had to search a fair amount to find
characters for which GLib failed. This shouldn't have a performance impact
on top of Mark's optimizations for all-ASCII JIDs.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Fri, 17 Jul 2009 21:11:25 +0000 |
parents | 6c015d2764d3 |
children | 42359a734696 |
line wrap: on
line source
#include <glib.h> #include <stdlib.h> #include "tests.h" #include "../core.h" #include "../eventloop.h" #include "../util.h" /****************************************************************************** * libpurple goodies *****************************************************************************/ static guint purple_check_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data) { /* this is a no-op for now, feel free to implement it */ return 0; } static PurpleEventLoopUiOps eventloop_ui_ops = { g_timeout_add, g_source_remove, purple_check_input_add, g_source_remove, NULL, /* input_get_error */ #if GLIB_CHECK_VERSION(2,14,0) g_timeout_add_seconds, #else NULL, #endif NULL, NULL, NULL }; static void purple_check_init(void) { gchar *home_dir; g_type_init(); purple_eventloop_set_ui_ops(&eventloop_ui_ops); /* build our fake home directory */ home_dir = g_build_path(BUILDDIR, "libpurple", "tests", "home", NULL); purple_util_set_user_dir(home_dir); g_free(home_dir); purple_core_init("check"); } /****************************************************************************** * Check meat and potatoes *****************************************************************************/ Suite* master_suite(void) { Suite *s = suite_create("Master Suite"); return s; } int main(void) { int number_failed; SRunner *sr; /* Make g_return_... functions fatal, ALWAYS. * As this is the test code, this is NOT controlled * by PURPLE_FATAL_ASSERTS. */ g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL); sr = srunner_create (master_suite()); srunner_add_suite(sr, cipher_suite()); srunner_add_suite(sr, jabber_jutil_suite()); srunner_add_suite(sr, util_suite()); /* make this a libpurple "ui" */ purple_check_init(); srunner_run_all (sr, CK_NORMAL); number_failed = srunner_ntests_failed (sr); srunner_free (sr); purple_core_quit(); return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; }