# HG changeset patch # User Nathan Walp # Date 1164578603 0 # Node ID ba149ceb20b7a822160a45be840bda7ccb463f15 # Parent 9a69964d8c1889b047d7a85b4a3451c671e9af6b [gaim-migrate @ 17823] baby steps: 4 unit tests for libgaim to run these, you'll need check (http://check.sf.net/) 0.9.4 or later installed they run when you run 'make check' committer: Tailor Script diff -r 9a69964d8c18 -r ba149ceb20b7 configure.ac --- a/configure.ac Sun Nov 26 20:45:29 2006 +0000 +++ b/configure.ac Sun Nov 26 22:03:23 2006 +0000 @@ -1807,6 +1807,14 @@ fi dnl ####################################################################### +dnl # Check for check +dnl ####################################################################### +PKG_CHECK_MODULES(CHECK, check >= 0.9.4, have_check=yes, have_check=no) +AM_CONDITIONAL(HAVE_CHECK, test "x$have_check" = "xyes") +AC_SUBST(CHECK_CFLAGS) +AC_SUBST(CHECK_LIBS) + +dnl ####################################################################### dnl # Check for Doxygen and dot (part of GraphViz) dnl ####################################################################### AC_ARG_ENABLE(doxygen, @@ -1906,6 +1914,7 @@ libgaim/protocols/toc/Makefile libgaim/protocols/yahoo/Makefile libgaim/protocols/zephyr/Makefile + libgaim/tests/Makefile console/Makefile console/libgnt/Makefile console/libgnt/gnt.pc diff -r 9a69964d8c18 -r ba149ceb20b7 libgaim/Makefile.am --- a/libgaim/Makefile.am Sun Nov 26 20:45:29 2006 +0000 +++ b/libgaim/Makefile.am Sun Nov 26 22:03:23 2006 +0000 @@ -23,7 +23,7 @@ GCONF_DIR=gconf endif -SUBDIRS = $(GCONF_DIR) plugins protocols +SUBDIRS = $(GCONF_DIR) plugins protocols tests gaim_coresources = \ account.c \ diff -r 9a69964d8c18 -r ba149ceb20b7 libgaim/tests/Makefile.am --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgaim/tests/Makefile.am Sun Nov 26 22:03:23 2006 +0000 @@ -0,0 +1,7 @@ +if HAVE_CHECK +TESTS = check_libgaim +check_PROGRAMS = check_libgaim +check_libgaim_SOURCES = check_libgaim.c $(top_builddir)/libgaim/gaim.h +check_libgaim_CFLAGS = @CHECK_CFLAGS@ $(GLIB_CFLAGS) +check_libgaim_LDADD = @CHECK_LIBS@ $(GLIB_LIBS) $(top_builddir)/libgaim/libgaim.la +endif diff -r 9a69964d8c18 -r ba149ceb20b7 libgaim/tests/check_libgaim.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgaim/tests/check_libgaim.c Sun Nov 26 22:03:23 2006 +0000 @@ -0,0 +1,69 @@ +#include +#include +#include +#include "../util.h" + +START_TEST(test_util_base16_encode) +{ + gchar *out = gaim_base16_encode("hello, world!", 14); + fail_unless(strcmp("68656c6c6f2c20776f726c642100", out) == 0, NULL); + g_free(out); +} +END_TEST + +START_TEST(test_util_base16_decode) +{ + gsize sz = 0; + guchar *out = gaim_base16_decode("21646c726f77202c6f6c6c656800", &sz); + fail_unless(sz == 14, NULL); + fail_unless(strcmp("!dlrow ,olleh", out) == 0, NULL); + g_free(out); +} +END_TEST + +START_TEST(test_util_base64_encode) +{ + gchar *out = gaim_base64_encode("forty-two", 10); + fail_unless(strcmp("Zm9ydHktdHdvAA==",out) == 0, NULL); + g_free(out); +} +END_TEST + +START_TEST(test_util_base64_decode) +{ + gsize sz; + guchar *out = gaim_base64_decode("b3d0LXl0cm9mAA==", &sz); + fail_unless(sz == 10, NULL); + fail_unless(strcmp("owt-ytrof", out) == 0, NULL); + g_free(out); +} +END_TEST + +Suite * +util_suite(void) +{ + Suite *s = suite_create("Utility Functions"); + + TCase *tc = tcase_create("Base16"); + tcase_add_test(tc, test_util_base16_encode); + tcase_add_test(tc, test_util_base16_decode); + suite_add_tcase(s, tc); + + tc = tcase_create("Base64"); + tcase_add_test(tc, test_util_base64_encode); + tcase_add_test(tc, test_util_base64_decode); + suite_add_tcase(s, tc); + + return s; +} + +int main(void) +{ + int number_failed; + Suite *s = util_suite (); + SRunner *sr = srunner_create (s); + srunner_run_all (sr, CK_NORMAL); + number_failed = srunner_ntests_failed (sr); + srunner_free (sr); + return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; +}