sl@0: /* Portion Copyright © 2008-09 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.*/
sl@0: #undef G_DISABLE_ASSERT
sl@0: #undef G_LOG_DOMAIN
sl@0: 
sl@0: #include <glib.h>
sl@0: 
sl@0: #include <stdio.h>
sl@0: #ifdef __SYMBIAN32__
sl@0: #include "mrt2_glib2_test.h"
sl@0: #endif /*__SYMBIAN32__*/
sl@0: 
sl@0: 
sl@0: #define SIZE 100000
sl@0: 
sl@0: guint32 array[SIZE];
sl@0: 
sl@0: static gint
sl@0: sort (gconstpointer a, gconstpointer b, gpointer user_data)
sl@0: {
sl@0:   return *(guint32*)a < *(guint32*)b ? -1 : 1;
sl@0: }
sl@0: 
sl@0: int
sl@0: main ()
sl@0: {
sl@0:   int i;
sl@0: 
sl@0:   #ifdef __SYMBIAN32__
sl@0:   g_log_set_handler (NULL,  G_LOG_FLAG_FATAL| G_LOG_FLAG_RECURSION | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG, &mrtLogHandler, NULL);
sl@0:   g_set_print_handler(mrtPrintHandler);
sl@0:   #endif /*__SYMBIAN32__*/
sl@0: 	  
sl@0: 
sl@0:   for (i = 0; i < SIZE; i++)
sl@0:     array[i] = g_random_int ();
sl@0: 
sl@0:   g_qsort_with_data (array, SIZE, sizeof (guint32), sort, NULL);
sl@0: 
sl@0:   for (i = 0; i < SIZE - 1; i++)
sl@0:     g_assert (array[i] <= array[i+1]);
sl@0: 
sl@0:   /* 0 elemenents is a valid case */
sl@0:   g_qsort_with_data (array, 0, sizeof (guint32), sort, NULL);
sl@0: 
sl@0: #ifdef __SYMBIAN32__
sl@0:   testResultXml("qsort-test");
sl@0: #endif /* EMULATOR */
sl@0:   return 0;
sl@0: }