File: qsort-test.c

package info (click to toggle)
glib2.0 2.24.2-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 46,108 kB
  • ctags: 31,166
  • sloc: ansic: 239,332; sh: 11,438; xml: 5,729; makefile: 2,551; perl: 1,259; python: 754; cpp: 9
file content (33 lines) | stat: -rw-r--r-- 570 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#undef G_DISABLE_ASSERT
#undef G_LOG_DOMAIN

#include <glib.h>

#define SIZE 100000

guint32 array[SIZE];

static gint
sort (gconstpointer a, gconstpointer b, gpointer user_data)
{
  return *(guint32*)a < *(guint32*)b ? -1 : 1;
}

int
main ()
{
  int i;

  for (i = 0; i < SIZE; i++)
    array[i] = g_random_int ();

  g_qsort_with_data (array, SIZE, sizeof (guint32), sort, NULL);

  for (i = 0; i < SIZE - 1; i++)
    g_assert (array[i] <= array[i+1]);

  /* 0 elemenents is a valid case */
  g_qsort_with_data (array, 0, sizeof (guint32), sort, NULL);

  return 0;
}