mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-05 06:28:01 +02:00
[skiplist] Inline testing.
Add a loop to create a skip list to allow manual checking.
This commit is contained in:
parent
e44c1f26e4
commit
032be9849d
2 changed files with 40 additions and 1 deletions
|
|
@ -84,9 +84,12 @@ TESTS += check-link$(EXEEXT)
|
|||
endif
|
||||
|
||||
EXTRA_DIST += $(TESTS_SH) check-has-hidden-symbols.c
|
||||
check_PROGRAMS += check-link
|
||||
check_PROGRAMS += check-link check-skiplist
|
||||
check_link_LDADD = libcairo.la
|
||||
|
||||
check_skiplist_SOURCES = cairo-skiplist.c
|
||||
check_skiplist_CPPFLAGS = -DMAIN $(AM_CPPFLAGS)
|
||||
|
||||
check: headers-standalone
|
||||
|
||||
PREPROCESS_ARGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)
|
||||
|
|
|
|||
|
|
@ -305,3 +305,39 @@ _cairo_skip_list_delete_given (cairo_skip_list_t *list, skip_elt_t *given)
|
|||
list->max_level--;
|
||||
free_elt (list, elt);
|
||||
}
|
||||
|
||||
#if MAIN
|
||||
typedef struct {
|
||||
int n;
|
||||
skip_elt_t elt;
|
||||
} test_elt_t;
|
||||
|
||||
static int
|
||||
test_cmp (void *list, void *A, void *B)
|
||||
{
|
||||
const test_elt_t *a = A, *b = B;
|
||||
return a->n - b->n;
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
cairo_skip_list_t list;
|
||||
test_elt_t elt;
|
||||
int n;
|
||||
|
||||
_cairo_skip_list_init (&list, test_cmp, sizeof (test_elt_t));
|
||||
for (n = 0; n < 10000000; n++) {
|
||||
void *elt_and_data;
|
||||
elt.n = n;
|
||||
elt_and_data = _cairo_skip_list_insert (&list, &elt, TRUE);
|
||||
assert (elt_and_data != NULL);
|
||||
}
|
||||
_cairo_skip_list_fini (&list);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* required supporting stubs */
|
||||
cairo_status_t _cairo_error (cairo_status_t status) { return status; }
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue