More warning fixes
[platform/upstream/glib.git] / tests / utf8-pointer.c
index 3072851..6ac2566 100644 (file)
@@ -24,6 +24,7 @@
  * GLib at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#include <string.h>
 #include <glib.h>
 
 /* Test conversions between offsets and pointers */
@@ -64,9 +65,35 @@ gchar *longline = "asdasdas dsaf asfd as fdasdf asfd asdf as dfas dfasdf a"
 "asd fasdf asdf asdf asd fasfd as fdasfd asdf as fdas ffsd asfd as fdASASASAs D"
 "Asfdsf sdfg sdfg dsfg dfg sdfgsdfgsdfgsdfg sdfgsdfg sdfg sdfg sdf gsdfg sdfg sd\n\nlalala\n";
 
+static void
+test_length (void)
+{
+  g_assert (g_utf8_strlen ("1234", -1) == 4);
+  g_assert (g_utf8_strlen ("1234", 0) == 0);
+  g_assert (g_utf8_strlen ("1234", 1) == 1);
+  g_assert (g_utf8_strlen ("1234", 2) == 2);
+  g_assert (g_utf8_strlen ("1234", 3) == 3);
+  g_assert (g_utf8_strlen ("1234", 4) == 4);
+  g_assert (g_utf8_strlen ("1234", 5) == 4);
+
+  g_assert (g_utf8_strlen (longline, -1) == 762);
+  g_assert (g_utf8_strlen (longline, strlen (longline)) == 762);
+  g_assert (g_utf8_strlen (longline, 1024) == 762);
+
+  g_assert (g_utf8_strlen (NULL, 0) == 0);
+
+  g_assert (g_utf8_strlen ("a\340\250\201c", -1) == 3);
+  g_assert (g_utf8_strlen ("a\340\250\201c", 1) == 1);
+  g_assert (g_utf8_strlen ("a\340\250\201c", 2) == 1);
+  g_assert (g_utf8_strlen ("a\340\250\201c", 3) == 1);
+  g_assert (g_utf8_strlen ("a\340\250\201c", 4) == 2);
+  g_assert (g_utf8_strlen ("a\340\250\201c", 5) == 3);
+}
+
 int main (int argc, char *argv[])
 {
   test_utf8 (longline);
-  
+  test_length ();
+
   return 0;
 }