From: <fac...@us...> - 2006-11-26 23:31:17
|
Revision: 17825 http://svn.sourceforge.net/gaim/?rev=17825&view=rev Author: faceprint Date: 2006-11-26 15:31:16 -0800 (Sun, 26 Nov 2006) Log Message: ----------- partition the tests Modified Paths: -------------- trunk/libgaim/tests/Makefile.am trunk/libgaim/tests/check_libgaim.c Added Paths: ----------- trunk/libgaim/tests/test_util.c trunk/libgaim/tests/tests.h Modified: trunk/libgaim/tests/Makefile.am =================================================================== --- trunk/libgaim/tests/Makefile.am 2006-11-26 22:29:21 UTC (rev 17824) +++ trunk/libgaim/tests/Makefile.am 2006-11-26 23:31:16 UTC (rev 17825) @@ -1,7 +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_SOURCES = check_libgaim.c tests.h test_util.c $(top_builddir)/libgaim/util.h check_libgaim_CFLAGS = @CHECK_CFLAGS@ $(GLIB_CFLAGS) check_libgaim_LDADD = @CHECK_LIBS@ $(GLIB_LIBS) $(top_builddir)/libgaim/libgaim.la endif Modified: trunk/libgaim/tests/check_libgaim.c =================================================================== --- trunk/libgaim/tests/check_libgaim.c 2006-11-26 22:29:21 UTC (rev 17824) +++ trunk/libgaim/tests/check_libgaim.c 2006-11-26 23:31:16 UTC (rev 17825) @@ -1,67 +1,21 @@ -#include <glib.h> -#include <check.h> +#include "tests.h" #include <stdlib.h> -#include "../util.h" -START_TEST(test_util_base16_encode) +Suite* +master_suite(void) { - gchar *out = gaim_base16_encode("hello, world!", 14); - fail_unless(strcmp("68656c6c6f2c20776f726c642100", out) == 0, NULL); - g_free(out); -} -END_TEST + Suite *s = suite_create("Master Suite"); -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 *sr = srunner_create (master_suite()); + + srunner_add_suite(sr, util_suite()); + srunner_run_all (sr, CK_NORMAL); number_failed = srunner_ntests_failed (sr); srunner_free (sr); Added: trunk/libgaim/tests/test_util.c =================================================================== --- trunk/libgaim/tests/test_util.c (rev 0) +++ trunk/libgaim/tests/test_util.c 2006-11-26 23:31:16 UTC (rev 17825) @@ -0,0 +1,104 @@ +#include "tests.h" +#include "../util.h" + +START_TEST(test_util_base16_encode) +{ + assert_string_equal_free("68656c6c6f2c20776f726c642100", gaim_base16_encode("hello, world!", 14)); +} +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) +{ + assert_string_equal_free("Zm9ydHktdHdvAA==", gaim_base64_encode("forty-two", 10)); +} +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 + +START_TEST(test_util_escape_filename) +{ + assert_string_equal("foo", gaim_escape_filename("foo")); + assert_string_equal("@oo", gaim_escape_filename("@oo")); + assert_string_equal("#oo", gaim_escape_filename("#oo")); + assert_string_equal("-oo", gaim_escape_filename("-oo")); + assert_string_equal("_oo", gaim_escape_filename("_oo")); + assert_string_equal(".oo", gaim_escape_filename(".oo")); + assert_string_equal("%25oo", gaim_escape_filename("%oo")); + assert_string_equal("%21oo", gaim_escape_filename("!oo")); +} +END_TEST + +START_TEST(test_util_unescape_filename) +{ + assert_string_equal("bar", gaim_unescape_filename("bar")); + assert_string_equal("@ar", gaim_unescape_filename("@ar")); + assert_string_equal("!ar", gaim_unescape_filename("!ar")); + assert_string_equal("!ar", gaim_unescape_filename("%21ar")); + assert_string_equal("%ar", gaim_unescape_filename("%25ar")); +} +END_TEST + + +START_TEST(test_util_text_strip_mnemonic) +{ + assert_string_equal_free("", gaim_text_strip_mnemonic("")); + assert_string_equal_free("foo", gaim_text_strip_mnemonic("foo")); + assert_string_equal_free("foo", gaim_text_strip_mnemonic("_foo")); + +} +END_TEST + +START_TEST(test_util_email_is_valid) +{ + fail_unless(gaim_email_is_valid("gai...@li...")); +} +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); + + tc = tcase_create("Filenames"); + tcase_add_test(tc, test_util_escape_filename); + tcase_add_test(tc, test_util_unescape_filename); + suite_add_tcase(s, tc); + + tc = tcase_create("Strip Mnemonic"); + tcase_add_test(tc, test_util_text_strip_mnemonic); + suite_add_tcase(s, tc); + + tc = tcase_create("Email"); + tcase_add_test(tc, test_util_email_is_valid); + suite_add_tcase(s, tc); + + return s; +} Property changes on: trunk/libgaim/tests/test_util.c ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Added: trunk/libgaim/tests/tests.h =================================================================== --- trunk/libgaim/tests/tests.h (rev 0) +++ trunk/libgaim/tests/tests.h 2006-11-26 23:31:16 UTC (rev 17825) @@ -0,0 +1,25 @@ +#ifndef TESTS_H +# define TESTS_H + +#include <glib.h> +#include <check.h> + +/* define the test suites here */ +/* remember to add the suite to the runner in check_libgaim.c */ +Suite * util_suite(void); + +/* helper macros */ +#define assert_string_equal(expected, actual) { \ + const gchar *a = actual; \ + fail_unless(strcmp(expected, a) == 0, "Expecting '%s' but got '%s'", expected, a); \ +} + +#define assert_string_equal_free(expected, actual) { \ + gchar *a = actual; \ + assert_string_equal(expected, a); \ + g_free(a); \ +} + + +#endif /* ifndef TESTS_H */ + Property changes on: trunk/libgaim/tests/tests.h ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <amc...@us...> - 2006-11-27 02:59:33
|
Revision: 17827 http://svn.sourceforge.net/gaim/?rev=17827&view=rev Author: amc_grim Date: 2006-11-26 18:59:33 -0800 (Sun, 26 Nov 2006) Log Message: ----------- Added tests for MD4, MD5, and SHA-1. Started the basics of making check_libgaim a libgaim "ui" Other assorted things. Modified Paths: -------------- trunk/libgaim/tests/Makefile.am trunk/libgaim/tests/check_libgaim.c trunk/libgaim/tests/tests.h Added Paths: ----------- trunk/libgaim/tests/test_cipher.c Property Changed: ---------------- trunk/libgaim/tests/ Property changes on: trunk/libgaim/tests ___________________________________________________________________ Name: svn:ignore + .deps .libs check_libgaim Makefile Makefile.in *.o Modified: trunk/libgaim/tests/Makefile.am =================================================================== --- trunk/libgaim/tests/Makefile.am 2006-11-27 02:10:19 UTC (rev 17826) +++ trunk/libgaim/tests/Makefile.am 2006-11-27 02:59:33 UTC (rev 17827) @@ -1,7 +1,23 @@ if HAVE_CHECK -TESTS = check_libgaim -check_PROGRAMS = check_libgaim -check_libgaim_SOURCES = check_libgaim.c tests.h test_util.c $(top_builddir)/libgaim/util.h -check_libgaim_CFLAGS = @CHECK_CFLAGS@ $(GLIB_CFLAGS) -check_libgaim_LDADD = @CHECK_LIBS@ $(GLIB_LIBS) $(top_builddir)/libgaim/libgaim.la +TESTS=check_libgaim + +check_PROGRAMS=check_libgaim + +check_libgaim_SOURCES=\ + check_libgaim.c \ + tests.h \ + test_cipher.c \ + test_util.c \ + $(top_builddir)/libgaim/util.h + +check_libgaim_CFLAGS=\ + @CHECK_CFLAGS@ \ + $(GLIB_CFLAGS) \ + -DBUILDDIR=\"$(top_builddir)\" + +check_libgaim_LDADD=\ + @CHECK_LIBS@ \ + $(GLIB_LIBS) \ + $(top_builddir)/libgaim/libgaim.la + endif Modified: trunk/libgaim/tests/check_libgaim.c =================================================================== --- trunk/libgaim/tests/check_libgaim.c 2006-11-27 02:10:19 UTC (rev 17826) +++ trunk/libgaim/tests/check_libgaim.c 2006-11-27 02:59:33 UTC (rev 17827) @@ -1,6 +1,46 @@ -#include "tests.h" +#include <glib.h> #include <stdlib.h> +#include "../core.h" +#include "../eventloop.h" + +#include "tests.h" + +/****************************************************************************** + * libgaim goodies + *****************************************************************************/ +static guint +gaim_check_input_add(gint fd, GaimInputCondition condition, + GaimInputFunction function, gpointer data) +{ + /* this is a no-op for now, feel free to implement it */ + return 0; +} + +static GaimEventLoopUiOps eventloop_ui_ops = { + g_timeout_add, + (guint (*)(guint))g_source_remove, + gaim_check_input_add, + (guint (*)(guint))g_source_remove, +}; + +static void +gaim_check_init(void) { + gchar *home_dir; + + gaim_eventloop_set_ui_ops(&eventloop_ui_ops); + + /* build our fake home directory */ + home_dir = g_build_path(BUILDDIR, "libgaim", "tests", "home", NULL); + gaim_util_set_user_dir(home_dir); + g_free(home_dir); + + gaim_core_init("check"); +} + +/****************************************************************************** + * Check meat and potatoes + *****************************************************************************/ Suite* master_suite(void) { @@ -15,9 +55,16 @@ SRunner *sr = srunner_create (master_suite()); srunner_add_suite(sr, util_suite()); + srunner_add_suite(sr, cipher_suite()); + /* make this a libgaim "ui" */ + gaim_check_init(); + srunner_run_all (sr, CK_NORMAL); number_failed = srunner_ntests_failed (sr); srunner_free (sr); + + gaim_core_quit(); + return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } Added: trunk/libgaim/tests/test_cipher.c =================================================================== --- trunk/libgaim/tests/test_cipher.c (rev 0) +++ trunk/libgaim/tests/test_cipher.c 2006-11-27 02:59:33 UTC (rev 17827) @@ -0,0 +1,235 @@ +#include <glib.h> +#include <check.h> +#include <stdlib.h> +#include <string.h> + +#undef HAVE_DBUS + +#include "../cipher.h" +#include "../signal.h" + +/****************************************************************************** + * MD4 Tests + *****************************************************************************/ +#define MD4_TEST(data, digest) { \ + GaimCipher *cipher = NULL; \ + GaimCipherContext *context = NULL; \ + gchar cdigest[33]; \ + gchar *sdigest = NULL; \ + gboolean ret = FALSE; \ + \ + cipher = gaim_ciphers_find_cipher("md4"); \ + context = gaim_cipher_context_new(cipher, NULL); \ + gaim_cipher_context_append(context, (guchar *)(data), strlen((data))); \ + \ + ret = gaim_cipher_context_digest_to_str(context, sizeof(cdigest), cdigest, \ + NULL); \ + \ + fail_unless(ret == TRUE, NULL); \ + \ + fail_unless(strcmp((digest), cdigest) == 0, NULL); \ + \ + gaim_cipher_context_destroy(context); \ +} + +START_TEST(test_md4_empty_string) { + MD4_TEST("", "31d6cfe0d16ae931b73c59d7e0c089c0"); +} +END_TEST + +START_TEST(test_md4_a) { + MD4_TEST("a", "bde52cb31de33e46245e05fbdbd6fb24"); +} +END_TEST + +START_TEST(test_md4_abc) { + MD4_TEST("abc", "a448017aaf21d8525fc10ae87aa6729d"); +} +END_TEST + +START_TEST(test_md4_message_digest) { + MD4_TEST("message digest", "d9130a8164549fe818874806e1c7014b"); +} +END_TEST + +START_TEST(test_md4_a_to_z) { + MD4_TEST("abcdefghijklmnopqrstuvwxyz", + "d79e1c308aa5bbcdeea8ed63df412da9"); +} +END_TEST + +START_TEST(test_md4_A_to_Z_a_to_z_0_to_9) { + MD4_TEST("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", + "043f8582f241db351ce627e153e7f0e4"); +} +END_TEST + +START_TEST(test_md4_1_to_0_8_times) { + MD4_TEST("123456789012345678901234567890123456789012345678901234567890" + "12345678901234567890", + "e33b4ddc9c38f2199c3e7b164fcc0536"); +} +END_TEST + + +/****************************************************************************** + * MD5 Tests + *****************************************************************************/ +#define MD5_TEST(data, digest) { \ + GaimCipher *cipher = NULL; \ + GaimCipherContext *context = NULL; \ + gchar cdigest[33]; \ + gchar *sdigest = NULL; \ + gboolean ret = FALSE; \ + \ + cipher = gaim_ciphers_find_cipher("md5"); \ + context = gaim_cipher_context_new(cipher, NULL); \ + gaim_cipher_context_append(context, (guchar *)(data), strlen((data))); \ + \ + ret = gaim_cipher_context_digest_to_str(context, sizeof(cdigest), cdigest, \ + NULL); \ + \ + fail_unless(ret == TRUE, NULL); \ + \ + fail_unless(strcmp((digest), cdigest) == 0, NULL); \ + \ + gaim_cipher_context_destroy(context); \ +} + +START_TEST(test_md5_empty_string) { + MD5_TEST("", "d41d8cd98f00b204e9800998ecf8427e"); +} +END_TEST + +START_TEST(test_md5_a) { + MD5_TEST("a", "0cc175b9c0f1b6a831c399e269772661"); +} +END_TEST + +START_TEST(test_md5_abc) { + MD5_TEST("abc", "900150983cd24fb0d6963f7d28e17f72"); +} +END_TEST + +START_TEST(test_md5_message_digest) { + MD5_TEST("message digest", "f96b697d7cb7938d525a2f31aaf161d0"); +} +END_TEST + +START_TEST(test_md5_a_to_z) { + MD5_TEST("abcdefghijklmnopqrstuvwxyz", + "c3fcd3d76192e4007dfb496cca67e13b"); +} +END_TEST + +START_TEST(test_md5_A_to_Z_a_to_z_0_to_9) { + MD5_TEST("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", + "d174ab98d277d9f5a5611c2c9f419d9f"); +} +END_TEST + +START_TEST(test_md5_1_to_0_8_times) { + MD5_TEST("123456789012345678901234567890123456789012345678901234567890" + "12345678901234567890", + "57edf4a22be3c955ac49da2e2107b67a"); +} +END_TEST + +/****************************************************************************** + * SHA-1 Tests + *****************************************************************************/ +#define SHA1_TEST(data, digest) { \ + GaimCipher *cipher = NULL; \ + GaimCipherContext *context = NULL; \ + gchar cdigest[41]; \ + gchar *sdigest = NULL; \ + gboolean ret = FALSE; \ + \ + cipher = gaim_ciphers_find_cipher("sha1"); \ + context = gaim_cipher_context_new(cipher, NULL); \ + \ + if((data)) { \ + gaim_cipher_context_append(context, (guchar *)(data), strlen((data))); \ + } else { \ + gint j; \ + guchar buff[1000]; \ + \ + memset(buff, 'a', 1000); \ + \ + for(j = 0; j < 1000; j++) \ + gaim_cipher_context_append(context, buff, 1000); \ + } \ + \ + ret = gaim_cipher_context_digest_to_str(context, sizeof(cdigest), cdigest, \ + NULL); \ + \ + fail_unless(ret == TRUE, NULL); \ + \ + fail_unless(strcmp((digest), cdigest) == 0, NULL); \ + \ + gaim_cipher_context_destroy(context); \ +} + +START_TEST(test_sha1_a) { + SHA1_TEST("a", "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"); +} +END_TEST + +START_TEST(test_sha1_abc) { + SHA1_TEST("abc", "a9993e364706816aba3e25717850c26c9cd0d89d"); +} +END_TEST + +START_TEST(test_sha1_abcd_gibberish) { + SHA1_TEST("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + "84983e441c3bd26ebaae4aa1f95129e5e54670f1"); +} +END_TEST + +START_TEST(test_sha1_1000_as_1000_times) { + SHA1_TEST(NULL, "34aa973cd4c4daa4f61eeb2bdbad27316534016f"); +} +END_TEST + +/****************************************************************************** + * Suite + *****************************************************************************/ +Suite * +cipher_suite(void) { + Suite *s = suite_create("Cipher Suite"); + TCase *tc = NULL; + + /* md5 tests */ + tc = tcase_create("MD4"); + tcase_add_test(tc, test_md4_empty_string); + tcase_add_test(tc, test_md4_a); + tcase_add_test(tc, test_md4_abc); + tcase_add_test(tc, test_md4_message_digest); + tcase_add_test(tc, test_md4_a_to_z); + tcase_add_test(tc, test_md4_A_to_Z_a_to_z_0_to_9); + tcase_add_test(tc, test_md4_1_to_0_8_times); + suite_add_tcase(s, tc); + + /* md5 tests */ + tc = tcase_create("MD5"); + tcase_add_test(tc, test_md5_empty_string); + tcase_add_test(tc, test_md5_a); + tcase_add_test(tc, test_md5_abc); + tcase_add_test(tc, test_md5_message_digest); + tcase_add_test(tc, test_md5_a_to_z); + tcase_add_test(tc, test_md5_A_to_Z_a_to_z_0_to_9); + tcase_add_test(tc, test_md5_1_to_0_8_times); + suite_add_tcase(s, tc); + + /* sha1 tests */ + tc = tcase_create("SHA1"); + tcase_add_test(tc, test_sha1_a); + tcase_add_test(tc, test_sha1_abc); + tcase_add_test(tc, test_sha1_abcd_gibberish); + tcase_add_test(tc, test_sha1_1000_as_1000_times); + suite_add_tcase(s, tc); + + return s; +} + + Property changes on: trunk/libgaim/tests/test_cipher.c ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Revision Name: svn:eol-style + native Modified: trunk/libgaim/tests/tests.h =================================================================== --- trunk/libgaim/tests/tests.h 2006-11-27 02:10:19 UTC (rev 17826) +++ trunk/libgaim/tests/tests.h 2006-11-27 02:59:33 UTC (rev 17827) @@ -7,6 +7,7 @@ /* define the test suites here */ /* remember to add the suite to the runner in check_libgaim.c */ Suite * util_suite(void); +Suite * cipher_suite(void); /* helper macros */ #define assert_string_equal(expected, actual) { \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fac...@us...> - 2006-12-02 21:12:22
|
Revision: 17878 http://svn.sourceforge.net/gaim/?rev=17878&view=rev Author: faceprint Date: 2006-12-02 13:12:20 -0800 (Sat, 02 Dec 2006) Log Message: ----------- continuing to add tests...now for jabber Modified Paths: -------------- trunk/libgaim/tests/Makefile.am trunk/libgaim/tests/check_libgaim.c trunk/libgaim/tests/tests.h Modified: trunk/libgaim/tests/Makefile.am =================================================================== --- trunk/libgaim/tests/Makefile.am 2006-12-02 19:57:47 UTC (rev 17877) +++ trunk/libgaim/tests/Makefile.am 2006-12-02 21:12:20 UTC (rev 17878) @@ -7,17 +7,20 @@ check_libgaim.c \ tests.h \ test_cipher.c \ + test_jabber_jutil.c \ test_util.c \ $(top_builddir)/libgaim/util.h check_libgaim_CFLAGS=\ @CHECK_CFLAGS@ \ $(GLIB_CFLAGS) \ + -I.. \ -DBUILDDIR=\"$(top_builddir)\" check_libgaim_LDADD=\ @CHECK_LIBS@ \ $(GLIB_LIBS) \ + $(top_builddir)/libgaim/protocols/jabber/libjabber.la \ $(top_builddir)/libgaim/libgaim.la endif Modified: trunk/libgaim/tests/check_libgaim.c =================================================================== --- trunk/libgaim/tests/check_libgaim.c 2006-12-02 19:57:47 UTC (rev 17877) +++ trunk/libgaim/tests/check_libgaim.c 2006-12-02 21:12:20 UTC (rev 17878) @@ -54,8 +54,9 @@ int number_failed; SRunner *sr = srunner_create (master_suite()); + srunner_add_suite(sr, cipher_suite()); + srunner_add_suite(sr, jabber_jutil_suite()); srunner_add_suite(sr, util_suite()); - srunner_add_suite(sr, cipher_suite()); /* make this a libgaim "ui" */ gaim_check_init(); Modified: trunk/libgaim/tests/tests.h =================================================================== --- trunk/libgaim/tests/tests.h 2006-12-02 19:57:47 UTC (rev 17877) +++ trunk/libgaim/tests/tests.h 2006-12-02 21:12:20 UTC (rev 17878) @@ -6,8 +6,9 @@ /* define the test suites here */ /* remember to add the suite to the runner in check_libgaim.c */ +Suite * cipher_suite(void); +Suite * jabber_jutil_suite(void); Suite * util_suite(void); -Suite * cipher_suite(void); /* helper macros */ #define assert_string_equal(expected, actual) { \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |