Add a rather specially crafted test case
This commit is contained in:
		@ -1053,6 +1053,44 @@ specific_sort_filter_remove_root (void)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					specific_root_mixed_visibility (void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int i;
 | 
				
			||||||
 | 
					  /* A bit nasty, apologies */
 | 
				
			||||||
 | 
					  GtkWidget *view;
 | 
				
			||||||
 | 
					  GtkTreeModel *filter;
 | 
				
			||||||
 | 
					  FilterTest fixture;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fixture.store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (i = 0; i < LEVEL_LENGTH; i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      GtkTreeIter iter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      gtk_tree_store_insert (fixture.store, &iter, NULL, i);
 | 
				
			||||||
 | 
					      if (i % 2 == 0)
 | 
				
			||||||
 | 
					        create_tree_store_set_values (fixture.store, &iter, TRUE);
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        create_tree_store_set_values (fixture.store, &iter, FALSE);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (fixture.store), NULL);
 | 
				
			||||||
 | 
					  fixture.filter = GTK_TREE_MODEL_FILTER (filter);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_tree_model_filter_set_visible_column (fixture.filter, 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* In order to trigger the potential bug, we should not access
 | 
				
			||||||
 | 
					   * the filter model here (so don't call the check functions).
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Change visibility of an odd row to TRUE */
 | 
				
			||||||
 | 
					  set_path_visibility (&fixture, "3", TRUE);
 | 
				
			||||||
 | 
					  check_filter_model (&fixture);
 | 
				
			||||||
 | 
					  check_level_length (fixture.filter, NULL, 4);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
specific_filter_add_child (void)
 | 
					specific_filter_add_child (void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -1649,6 +1687,8 @@ main (int    argc,
 | 
				
			|||||||
                   specific_sort_filter_remove_node);
 | 
					                   specific_sort_filter_remove_node);
 | 
				
			||||||
  g_test_add_func ("/FilterModel/specific/sort-filter-remove-root",
 | 
					  g_test_add_func ("/FilterModel/specific/sort-filter-remove-root",
 | 
				
			||||||
                   specific_sort_filter_remove_root);
 | 
					                   specific_sort_filter_remove_root);
 | 
				
			||||||
 | 
					  g_test_add_func ("/FilterModel/specific/root-mixed-visibility",
 | 
				
			||||||
 | 
					                   specific_root_mixed_visibility);
 | 
				
			||||||
  g_test_add_func ("/FilterModel/specific/filter-add-child",
 | 
					  g_test_add_func ("/FilterModel/specific/filter-add-child",
 | 
				
			||||||
                   specific_filter_add_child);
 | 
					                   specific_filter_add_child);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user