Fix crashes when filenames end up being NULL in some prpls.
[pidgin-git.git] / libpurple / tests / check_libpurple.c
blob4c927745f2388e6868e3be113085f4c96f4ea75d
1 #include <glib.h>
2 #include <stdlib.h>
4 #include "tests.h"
6 #include "../core.h"
7 #include "../eventloop.h"
8 #include "../util.h"
11 /******************************************************************************
12 * libpurple goodies
13 *****************************************************************************/
14 static guint
15 purple_check_input_add(gint fd, PurpleInputCondition condition,
16 PurpleInputFunction function, gpointer data)
18 /* this is a no-op for now, feel free to implement it */
19 return 0;
22 static PurpleEventLoopUiOps eventloop_ui_ops = {
23 g_timeout_add,
24 g_source_remove,
25 purple_check_input_add,
26 g_source_remove,
27 NULL, /* input_get_error */
28 #if GLIB_CHECK_VERSION(2,14,0)
29 g_timeout_add_seconds,
30 #else
31 NULL,
32 #endif
33 NULL,
34 NULL,
35 NULL
38 static void
39 purple_check_init(void) {
40 gchar *home_dir;
42 g_type_init();
44 purple_eventloop_set_ui_ops(&eventloop_ui_ops);
46 /* build our fake home directory */
47 home_dir = g_build_path(BUILDDIR, "libpurple", "tests", "home", NULL);
48 purple_util_set_user_dir(home_dir);
49 g_free(home_dir);
51 purple_core_init("check");
54 /******************************************************************************
55 * Check meat and potatoes
56 *****************************************************************************/
57 Suite*
58 master_suite(void)
60 Suite *s = suite_create("Master Suite");
62 return s;
65 int main(void)
67 int number_failed;
68 SRunner *sr;
70 /* Make g_return_... functions fatal, ALWAYS.
71 * As this is the test code, this is NOT controlled
72 * by PURPLE_FATAL_ASSERTS. */
73 g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL);
75 sr = srunner_create (master_suite());
77 srunner_add_suite(sr, cipher_suite());
78 srunner_add_suite(sr, jabber_jutil_suite());
79 srunner_add_suite(sr, util_suite());
81 /* make this a libpurple "ui" */
82 purple_check_init();
84 srunner_run_all (sr, CK_NORMAL);
85 number_failed = srunner_ntests_failed (sr);
86 srunner_free (sr);
88 purple_core_quit();
90 return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;