#7109: gtk+-3.18.3 (gtk+3.18.3)
-------------------------+-----------------------
 Reporter:  fo           |       Owner:  fo
     Type:  enhancement  |      Status:  assigned
 Priority:  normal       |   Milestone:  7.9
Component:  BOOK         |     Version:  SVN
 Severity:  normal       |  Resolution:
 Keywords:               |
-------------------------+-----------------------

Comment (by fo):

 One tests fails, now:

 {{{
 ...
 /tmp/gtk+-3.18.3/testsuite/reftests/flipping-icons.ui: FAIL
 ...
 FAIL: gtk-reftest
 ...
 }}}

 Both ''gtk-reftes'' and ''flipping-icons.ui'' are identical to previous
 version ones in gtk+-3.18.2.

 Suspect ''735341 Fix/improve gtk_text_buffer_get_iter_at_*() functions'',
 but it might be another commit. The former changes a lot ''textbuffer.c'':

 {{{
 diff -Naur ./gtk+-3.18.2/testsuite/gtk/textbuffer.c
 ./gtk+-3.18.3/testsuite/gtk/textbuffer.c
 --- ./gtk+-3.18.2/testsuite/gtk/textbuffer.c    2015-03-02
 16:34:04.000000000 -0300
 +++ ./gtk+-3.18.3/testsuite/gtk/textbuffer.c    2015-11-09
 10:35:37.000000000 -0300
 @@ -1434,6 +1434,128 @@
    g_object_unref (buffer);
  }

 +static void
 +test_get_iter (void)
 +{
 +  GtkTextBuffer *buffer;
 +  GtkTextIter iter;
 +  gint offset;
 +
 +  buffer = gtk_text_buffer_new (NULL);
 +
 +  /* ß takes 2 bytes in UTF-8 */
 +  gtk_text_buffer_set_text (buffer, "ab\nßd\r\nef", -1);
 +
 +  /* Test get_iter_at_line() */
 +  g_assert (gtk_text_buffer_get_iter_at_line (buffer, &iter, 0));
 +  g_assert (gtk_text_iter_is_start (&iter));
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line (buffer, &iter, 1));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 3);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line (buffer, &iter, 2));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 7);
 +
 +  g_assert (!gtk_text_buffer_get_iter_at_line (buffer, &iter, 3));
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  /* Test get_iter_at_line_offset() */
 +  g_assert (gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 0,
 0));
 +  g_assert (gtk_text_iter_is_start (&iter));
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 0,
 1));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 1);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 0,
 2));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 2);
 +
 +  g_assert (!gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 0,
 3));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 2);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 1,
 1));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 4);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 2,
 1));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 8);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 2,
 2));
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  g_assert (!gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 2,
 3));
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  g_assert (!gtk_text_buffer_get_iter_at_line_offset (buffer, &iter, 3,
 1));
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  /* Test get_iter_at_line_index() */
 +  g_assert (gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 0,
 0));
 +  g_assert (gtk_text_iter_is_start (&iter));
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 0,
 1));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 1);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 0,
 2));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 2);
 +
 +  g_assert (!gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 0,
 3));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 2);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 1,
 0));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 3);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 1,
 2));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 4);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 1,
 3));
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 5);
 +
 +  g_assert (gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 2,
 2));
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  g_assert (!gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 2,
 3));
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  g_assert (!gtk_text_buffer_get_iter_at_line_index (buffer, &iter, 3,
 1));
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  /* Test get_iter_at_offset() */
 +  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
 +  g_assert (gtk_text_iter_is_start (&iter));
 +
 +  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 1);
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 1);
 +
 +  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 8);
 +  offset = gtk_text_iter_get_offset (&iter);
 +  g_assert_cmpint (offset, ==, 8);
 +  g_assert (!gtk_text_iter_is_end (&iter));
 +
 +  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 9);
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 100);
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  gtk_text_buffer_get_iter_at_offset (buffer, &iter, -1);
 +  g_assert (gtk_text_iter_is_end (&iter));
 +
 +  g_object_unref (buffer);
 +}
 +
  int
  main (int argc, char** argv)
  {
 @@ -1452,6 +1574,7 @@
    g_test_add_func ("/TextBuffer/Fill and Empty", test_fill_empty);
    g_test_add_func ("/TextBuffer/Tag", test_tag);
    g_test_add_func ("/TextBuffer/Clipboard", test_clipboard);
 +  g_test_add_func ("/TextBuffer/Get iter", test_get_iter);

    return g_test_run();
  }
 }}}

 However, there is another modification in the testsuite:

 {{{
 diff -Naur ./gtk+-3.18.2/testsuite/a11y/text.c
 ./gtk+-3.18.3/testsuite/a11y/text.c
 --- ./gtk+-3.18.2/testsuite/a11y/text.c 2014-11-26 23:54:55.000000000
 -0300
 +++ ./gtk+-3.18.3/testsuite/a11y/text.c 2015-11-09 10:35:06.000000000
 -0300
 @@ -36,6 +36,39 @@
  }

  static void
 +append_text (GtkWidget   *widget,
 +             const gchar *text)
 +{
 +  if (GTK_IS_LABEL (widget))
 +    {
 +      gchar *tmp;
 +
 +      tmp = g_strconcat (gtk_label_get_text (GTK_LABEL (widget)), text,
 NULL);
 +      gtk_label_set_text (GTK_LABEL (widget), tmp);
 +      g_free (tmp);
 +    }
 +  else if (GTK_IS_ENTRY (widget))
 +    {
 +      gchar *tmp;
 +
 +      tmp = g_strconcat (gtk_entry_get_text (GTK_ENTRY (widget)), text,
 NULL);
 +      gtk_entry_set_text (GTK_ENTRY (widget), tmp);
 +      g_free (tmp);
 +    }
 +  else if (GTK_IS_TEXT_VIEW (widget))
 +    {
 +      GtkTextBuffer *buffer;
 +      GtkTextIter end;
 +
 +      buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 +      gtk_text_buffer_get_end_iter (buffer, &end);
 +      gtk_text_buffer_insert (buffer, &end, text, -1);
 +    }
 +  else
 +    g_assert_not_reached ();
 +}
 +
 +static void
  test_basic (GtkWidget *widget)
  {
    AtkText *atk_text;
 @@ -95,10 +128,14 @@
  test_text_changed (GtkWidget *widget)
  {
    AtkText *atk_text;
 -  const gchar *text = "Text goes here";
 -  const gchar *text2 = "Text again";
 +  const gchar *text = "Täxt goes here";
 +  const gchar *text2 = "Täxt again";
    SignalData delete_data;
    SignalData insert_data;
 +  gboolean cant_append = FALSE;
 +
 +  if (GTK_IS_LABEL (widget) || GTK_IS_ENTRY (widget))
 +    cant_append = TRUE;

    atk_text = ATK_TEXT (gtk_widget_get_accessible (widget));

 @@ -118,23 +155,40 @@
    g_assert_cmpint (insert_data.position, ==, 0);
    g_assert_cmpint (insert_data.length, ==, g_utf8_strlen (text, -1));

 -  set_text (widget, text2);
 +  delete_data.count = 0;
 +  insert_data.count = 0;

 -  g_assert_cmpint (delete_data.count, ==, 1);
 -  g_assert_cmpint (delete_data.position, ==, 0);
 -  g_assert_cmpint (delete_data.length, ==, g_utf8_strlen (text, -1));
 +  append_text (widget, text2);

 -  g_assert_cmpint (insert_data.count, ==, 2);
 -  g_assert_cmpint (insert_data.position, ==, 0);
 -  g_assert_cmpint (insert_data.length, ==, g_utf8_strlen (text2, -1));
 +  if (cant_append)
 +    {
 +      g_assert_cmpint (delete_data.count, ==, 1);
 +      g_assert_cmpint (delete_data.position, ==, 0);
 +      g_assert_cmpint (delete_data.length, ==, g_utf8_strlen (text, -1));
 +
 +      g_assert_cmpint (insert_data.count, ==, 1);
 +      g_assert_cmpint (insert_data.position, ==, 0);
 +      g_assert_cmpint (insert_data.length, ==, g_utf8_strlen (text, -1) +
 g_utf8_strlen (text2, -1));
 +    }
 +  else
 +    {
 +      g_assert_cmpint (delete_data.count, ==, 0);
 +
 +      g_assert_cmpint (insert_data.count, ==, 1);
 +      g_assert_cmpint (insert_data.position, ==, g_utf8_strlen (text,
 -1));
 +      g_assert_cmpint (insert_data.length, ==, g_utf8_strlen (text2,
 -1));
 +    }
 +
 +  delete_data.count = 0;
 +  insert_data.count = 0;

    set_text (widget, "");

 -  g_assert_cmpint (delete_data.count, ==, 2);
 +  g_assert_cmpint (delete_data.count, ==, 1);
    g_assert_cmpint (delete_data.position, ==, 0);
 -  g_assert_cmpint (delete_data.length, ==, g_utf8_strlen (text2, -1));
 +  g_assert_cmpint (delete_data.length, ==, g_utf8_strlen (text, -1) +
 g_utf8_strlen (text2, -1));

 -  g_assert_cmpint (insert_data.count, ==, 2);
 +  g_assert_cmpint (insert_data.count, ==, 0);

    g_signal_handlers_disconnect_by_func (atk_text, G_CALLBACK
 (text_deleted), &delete_data);
    g_signal_handlers_disconnect_by_func (atk_text, G_CALLBACK
 (text_inserted), &insert_data);
 }}}

 My plan is to include:

 {{{
 If you wish to execute the test suite, first remove one test which fails:

 rm -v testsuite/reftests/flipping-icons.ui

 To test the results you...
 }}}

--
Ticket URL: <http://wiki.linuxfromscratch.org/blfs/ticket/7109#comment:2>
BLFS Trac <http://wiki.linuxfromscratch.org/blfs>
Beyond Linux From Scratch
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to