libpurple/protocols/jabber/tests/test_jabber_scram.c

changeset 37610
8e7c187310d5
parent 37605
599b01f2f5a7
child 38306
3751be7f48c3
--- a/libpurple/protocols/jabber/tests/test_jabber_scram.c	Sun Mar 20 15:59:16 2016 -0500
+++ b/libpurple/protocols/jabber/tests/test_jabber_scram.c	Sun Mar 20 23:28:05 2016 -0500
@@ -1,10 +1,10 @@
 #include <string.h>
 
 #include "tests.h"
-#include "../util.h"
-#include "../protocols/jabber/auth_scram.h"
-#include "../protocols/jabber/jutil.h"
-#include "../ciphers/sha1hash.h"
+#include "util.h"
+#include "protocols/jabber/auth_scram.h"
+#include "protocols/jabber/jutil.h"
+#include "ciphers/sha1hash.h"
 
 static JabberScramHash sha1_mech = { "-SHA-1", purple_sha1_hash_new, 20 };
 
@@ -12,14 +12,14 @@
 	GString *p = g_string_new(password); \
 	GString *s = g_string_new(salt); \
 	guchar *result = jabber_scram_hi(&sha1_mech, p, s, count); \
-	fail_if(result == NULL, "Hi() returned NULL"); \
-	fail_if(0 != memcmp(result, expected, 20), "Hi() returned invalid result"); \
+	g_assert_nonnull(result); \
+	g_assert_cmpmem(result, 20, expected, 20); \
 	g_string_free(s, TRUE); \
 	g_string_free(p, TRUE); \
 }
 
-START_TEST(test_pbkdf2)
-{
+static void
+test_jabber_scram_pbkdf2(void) {
 	assert_pbkdf2_equal("password", "salt", 1, "\x0c\x60\xc8\x0f\x96\x1f\x0e\x71\xf3\xa9\xb5\x24\xaf\x60\x12\x06\x2f\xe0\x37\xa6");
 	assert_pbkdf2_equal("password", "salt", 2, "\xea\x6c\x01\x4d\xc7\x2d\x6f\x8c\xcd\x1e\xd9\x2a\xce\x1d\x41\xf0\xd8\xde\x89\x57");
 	assert_pbkdf2_equal("password", "salt", 4096, "\x4b\x00\x79\x01\xb7\x65\x48\x9a\xbe\xad\x49\xd9\x26\xf7\x21\xd0\x65\xa4\x29\xc1");
@@ -29,10 +29,9 @@
 	assert_pbkdf2_equal("password", "salt", 16777216, "\xee\xfe\x3d\x61\xcd\x4d\xa4\xe4\xe9\x94\x5b\x3d\x6b\xa2\x15\x8c\x26\x34\xe9\x84");
 #endif
 }
-END_TEST
 
-START_TEST(test_proofs)
-{
+static void
+test_jabber_scram_proofs(void) {
 	JabberScramData *data = g_new0(JabberScramData, 1);
 	gboolean ret;
 	GString *salt;
@@ -48,14 +47,13 @@
 
 	salt = g_string_new("salt");
 	ret = jabber_scram_calc_proofs(data, salt, 1);
-	fail_if(ret == FALSE, "Failed to calculate SCRAM proofs!");
+	g_assert_true(ret);
 
-	fail_unless(0 == memcmp(client_proof, data->client_proof->str, 20));
+	g_assert_cmpmem(client_proof, 20, data->client_proof->str, 20);
 	g_string_free(salt, TRUE);
 
 	jabber_scram_data_destroy(data);
 }
-END_TEST
 
 #define assert_successful_exchange(pw, nonce, start_data, challenge1, response1, success) { \
 	JabberScramData *data = g_new0(JabberScramData, 1); \
@@ -65,25 +63,25 @@
 	data->step = 1; \
 	data->hash = &sha1_mech; \
 	data->password = jabber_saslprep(pw); \
-	fail_if(data->password == NULL); \
+	g_assert_nonnull(data->password); \
 	data->cnonce = g_strdup(nonce); \
 	data->auth_message = g_string_new(start_data); \
 	\
 	ret = jabber_scram_feed_parser(data, challenge1, &out); \
-	fail_unless(ret == TRUE); \
-	fail_unless(g_str_equal(out, response1), "Got unexpected response to challenge. Expected %s, got %s", response1, out); \
+	g_assert_true(ret); \
+	g_assert_cmpstr(response1, ==, out); \
 	g_free(out); \
 	\
 	data->step = 2; \
 	ret = jabber_scram_feed_parser(data, success, &out); \
-	fail_unless(ret == TRUE); \
-	fail_unless(out == NULL); \
+	g_assert_true(ret); \
+	g_assert_null(out); \
 	\
 	jabber_scram_data_destroy(data); \
 }
 
-START_TEST(test_mech)
-{
+static void
+test_jabber_scram_exchange(void) {
 	assert_successful_exchange("password", "H7yDYKAWBCrM2Fa5SxGa4iez",
 			"n=paul,r=H7yDYKAWBCrM2Fa5SxGa4iez",
 			"r=H7yDYKAWBCrM2Fa5SxGa4iezFPVDPpDUcGxPkH3RzP,s=3rXeErP/os7jUNqU,i=4096",
@@ -98,23 +96,17 @@
 			"v=4TkZwKWy6JHNmrUbU2+IdAaXtos=");
 #endif
 }
-END_TEST
 
-Suite *
-jabber_scram_suite(void)
-{
-	Suite *s = suite_create("Jabber SASL SCRAM functions");
+gint
+main(gint argc, gchar **argv) {
+	g_test_init(&argc, &argv, NULL);
 
-	TCase *tc = tcase_create("PBKDF2 Functionality");
-	tcase_add_test(tc, test_pbkdf2);
-	suite_add_tcase(s, tc);
+	g_test_add_func("/jabber/scram/pbkdf2",
+	                test_jabber_scram_pbkdf2);
+	g_test_add_func("/jabber/scram/proofs",
+	                test_jabber_scram_proofs);
+	g_test_add_func("/jabber/scram/exchange",
+	                test_jabber_scram_exchange);
 
-	tc = tcase_create("SCRAM Proofs");
-	tcase_add_test(tc, test_proofs);
-	suite_add_tcase(s, tc);
-
-	tc = tcase_create("SCRAM exchange");
-	tcase_add_test(tc, test_mech);
-	suite_add_tcase(s, tc);
-	return s;
+	return g_test_run();
 }

mercurial