diff libgaim/tests/check_libgaim.c @ 15040:ba149ceb20b7

[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 <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sun, 26 Nov 2006 22:03:23 +0000
parents
children edd78a0c6698
line wrap: on
line diff
--- /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 <glib.h>
+#include <check.h>
+#include <stdlib.h>
+#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;
+}