[glib] Some fixes
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] Some fixes
- Date: Mon, 21 Jun 2010 02:20:02 +0000 (UTC)
commit bad7f1e54f03284cfd6235d345270ecada4379b5
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jun 20 22:18:30 2010 -0400
Some fixes
glib/tests/collate.c | 2 +
glib/tests/utf8-pointer.c | 39 +++++++++++++-----------
glib/tests/utf8-validate.c | 68 +++++++++++++++++--------------------------
3 files changed, 50 insertions(+), 59 deletions(-)
---
diff --git a/glib/tests/collate.c b/glib/tests/collate.c
index b831e5d..eaae049 100644
--- a/glib/tests/collate.c
+++ b/glib/tests/collate.c
@@ -1,5 +1,7 @@
#include <glib.h>
#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
typedef struct {
const gchar **input;
diff --git a/glib/tests/utf8-pointer.c b/glib/tests/utf8-pointer.c
index 91df96e..2c5e386 100644
--- a/glib/tests/utf8-pointer.c
+++ b/glib/tests/utf8-pointer.c
@@ -21,7 +21,7 @@
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/.
+ * GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#include <string.h>
@@ -29,29 +29,30 @@
/* Test conversions between offsets and pointers */
-static void test_utf8 (gchar *string)
+static void test_utf8 (gconstpointer d)
{
gint num_chars;
- gchar **p;
+ const gchar **p;
gint i, j;
-
+ const gchar *string = d;
+
g_assert (g_utf8_validate (string, -1, NULL));
-
+
num_chars = g_utf8_strlen (string, -1);
-
- p = (gchar **) g_malloc (num_chars * sizeof (gchar *));
-
+
+ p = (const gchar **) g_malloc (num_chars * sizeof (gchar *));
+
p[0] = string;
for (i = 1; i < num_chars; i++)
p[i] = g_utf8_next_char (p[i-1]);
-
+
for (i = 0; i < num_chars; i++)
- for (j = 0; j < num_chars; j++)
+ for (j = 0; j < num_chars; j++)
{
- g_assert (g_utf8_offset_to_pointer (p[i], j - i) == p[j]);
- g_assert (g_utf8_pointer_to_offset (p[i], p[j]) == j - i);
+ g_assert (g_utf8_offset_to_pointer (p[i], j - i) == p[j]);
+ g_assert (g_utf8_pointer_to_offset (p[i], p[j]) == j - i);
}
-
+
g_free (p);
}
@@ -104,9 +105,11 @@ test_misc (void)
int main (int argc, char *argv[])
{
- test_utf8 (longline);
- test_length ();
- test_misc ();
-
- return 0;
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_data_func ("/utf8/offsets", longline, test_utf8);
+ g_test_add_func ("/utf8/lengths", test_length);
+ g_test_add_func ("/utf8/reverse", test_misc);
+
+ return g_test_run ();
}
diff --git a/glib/tests/utf8-validate.c b/glib/tests/utf8-validate.c
index 98f0b1f..e570d5a 100644
--- a/glib/tests/utf8-validate.c
+++ b/glib/tests/utf8-validate.c
@@ -26,15 +26,14 @@
((Char) & 0xFFFE) != 0xFFFE)
-
-static gboolean any_failed = FALSE;
-
-struct {
+typedef struct {
const gchar *text;
gint max_len;
gint offset;
gboolean valid;
-} test[] = {
+} Test;
+
+Test test[] = {
/* some tests to check max_len handling */
/* length 1 */
{ "abcde", -1, 5, TRUE },
@@ -42,14 +41,14 @@ struct {
{ "abcde", 5, 5, TRUE },
{ "abcde", 7, 5, FALSE },
/* length 2 */
- { "\xc2\xa9\xc2\xa9\xc2\xa9", -1, 6, TRUE },
- { "\xc2\xa9\xc2\xa9\xc2\xa9", 1, 0, FALSE },
- { "\xc2\xa9\xc2\xa9\xc2\xa9", 2, 2, TRUE },
- { "\xc2\xa9\xc2\xa9\xc2\xa9", 3, 2, FALSE },
- { "\xc2\xa9\xc2\xa9\xc2\xa9", 4, 4, TRUE },
- { "\xc2\xa9\xc2\xa9\xc2\xa9", 5, 4, FALSE },
- { "\xc2\xa9\xc2\xa9\xc2\xa9", 6, 6, TRUE },
- { "\xc2\xa9\xc2\xa9\xc2\xa9", 7, 6, FALSE },
+ { "\xc2\xa9\xc2\xa9\xc2\xa9", -1, 6, TRUE },
+ { "\xc2\xa9\xc2\xa9\xc2\xa9", 1, 0, FALSE },
+ { "\xc2\xa9\xc2\xa9\xc2\xa9", 2, 2, TRUE },
+ { "\xc2\xa9\xc2\xa9\xc2\xa9", 3, 2, FALSE },
+ { "\xc2\xa9\xc2\xa9\xc2\xa9", 4, 4, TRUE },
+ { "\xc2\xa9\xc2\xa9\xc2\xa9", 5, 4, FALSE },
+ { "\xc2\xa9\xc2\xa9\xc2\xa9", 6, 6, TRUE },
+ { "\xc2\xa9\xc2\xa9\xc2\xa9", 7, 6, FALSE },
/* length 3 */
{ "\xe2\x89\xa0\xe2\x89\xa0", -1, 6, TRUE },
{ "\xe2\x89\xa0\xe2\x89\xa0", 1, 0, FALSE },
@@ -274,46 +273,33 @@ struct {
{ NULL, }
};
-static void
-do_test (gint index,
- const gchar *text,
- gint max_len,
- gint offset,
- gboolean valid)
+static void
+do_test (gconstpointer d)
{
+ const Test *test = d;
const gchar *end;
gboolean result;
-
- result = g_utf8_validate (text, max_len, &end);
- if (result != valid || end - text != offset)
- {
- GString *str;
- const gchar *p;
+ result = g_utf8_validate (test->text, test->max_len, &end);
- any_failed = TRUE;
-
- str = g_string_new (0);
- for (p = text; *p; p++)
- g_string_append_printf (str, "\\x%02hhx", *p);
- g_print ("%d: g_utf8_validate (\"%s\", %d) failed, "
- "expected %s %d, got %s %d\n",
- index,
- str->str, max_len,
- valid ? "TRUE" : "FALSE", offset,
- result ? "TRUE" : "FALSE", (gint) (end - text));
- g_string_free (str, FALSE);
- }
+ g_assert (result == test->valid);
+ g_assert (end - test->text == test->offset);
}
int
main (int argc, char *argv[])
{
gint i;
+ gchar *path;
+
+ g_test_init (&argc, &argv, NULL);
for (i = 0; test[i].text; i++)
- do_test (i, test[i].text, test[i].max_len,
- test[i].offset, test[i].valid);
+ {
+ path = g_strdup_printf ("/utf8/validate/%d", i);
+ g_test_add_data_func (path, &test[i], do_test);
+ g_free (path);
+ }
- return any_failed ? 1 : 0;
+ return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]