mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-07-30 22:03:29 +02:00
debian
docs
glib
gmodule
gobject
gthread
m4macros
po
tests
gobject
markups
.cvsignore
Makefile.am
array-test.c
atomic-test.c
casefold.txt
casemap.txt
child-test.c
completion-test.c
cxx-test.C
date-test.c
dirname-test.c
env-test.c
file-test.c
gen-casefold-txt.pl
gen-casemap-txt.pl
gio-test.c
hash-test.c
iochannel-test-infile
iochannel-test.c
libmoduletestplugin_a.c
libmoduletestplugin_b.c
list-test.c
mainloop-test.c
makefile.mingw.in
makefile.msc.in
markup-escape-test.c
markup-test.c
module-test.c
node-test.c
patterntest.c
printf-test.c
qsort-test.c
queue-test.c
rand-test.c
relation-test.c
run-markup-tests.sh
shell-test.c
slist-test.c
spawn-test-win32-gui.c
spawn-test.c
strfunc-test.c
string-test.c
strtod-test.c
testgdate.c
testgdateparser.c
testglib.c
thread-test.c
threadpool-test.c
timeloop-basic.c
timeloop-closure.c
timeloop.c
tree-test.c
type-test.c
unicode-caseconv.c
unicode-collate.c
unicode-encoding.c
unicode-normalize.c
uri-test.c
utf8.txt
.cvsignore
AUTHORS
COPYING
ChangeLog
ChangeLog.pre-1-2
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
HACKING
INSTALL
INSTALL.in
Makefile.am
NEWS
NEWS.pre-1-3
README
README.in
README.win32
TODO.xml
acglib.m4
acinclude.m4
autogen.sh
config.h.win32.in
configure.in
glib-2.0-uninstalled.pc.in
glib-2.0.pc.in
glib-gettextize.in
glib-zip.in
glib.spec.in
glibconfig.h.win32.in
gmodule-2.0-uninstalled.pc.in
gmodule-2.0.pc.in
gobject-2.0-uninstalled.pc.in
gobject-2.0.pc.in
gthread-2.0-uninstalled.pc.in
gthread-2.0.pc.in
makefile.mingw
makefile.msc
msvc_recommended_pragmas.h
sanity_check
win32-fixup.pl
* glib/gstrfuncs.c: (g_ascii_strdown), (g_ascii_strup): Add missing const. (g_strsplit): Add g_return_val_if_fail for case of empty delimiter, which can result in an infinite loop otherwise. * glib/gstrfuncs.h: Add missing const. * tests/.cvsignore: Ignore a generated file. * tests/array-test.c: * tests/dirname-test.c: * tests/hash-test.c: * tests/list-test.c: * tests/node-test.c: * tests/relation-test.c: * tests/shell-test.c: * tests/slist-test.c: * tests/spawn-test.c: * tests/strfunc-test.c: * tests/string-test.c: * tests/testglib.c: * tests/tree-test.c: * tests/type-test.c: Add an #undef G_DISABLE_ASSERT so all tests will assert even if asserts are disabled inside glib itself.
140 lines
3.9 KiB
C
140 lines
3.9 KiB
C
/* GLIB - Library of useful routines for C programming
|
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
/*
|
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
|
* file for a list of people on the GLib Team. See the ChangeLog
|
|
* files for a list of changes. These files are distributed with
|
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
|
*/
|
|
|
|
#undef G_DISABLE_ASSERT
|
|
#undef G_LOG_DOMAIN
|
|
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include "glib.h"
|
|
|
|
int array[10000];
|
|
gboolean failed = FALSE;
|
|
|
|
#define TEST(m,cond) G_STMT_START { failed = !(cond); \
|
|
if (failed) \
|
|
{ if (!m) \
|
|
g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
|
|
else \
|
|
g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
|
|
} \
|
|
else \
|
|
g_print ("."); fflush (stdout); \
|
|
} G_STMT_END
|
|
|
|
#define C2P(c) ((gpointer) ((long) (c)))
|
|
#define P2C(p) ((gchar) ((long) (p)))
|
|
|
|
#define GLIB_TEST_STRING "el dorado "
|
|
#define GLIB_TEST_STRING_5 "el do"
|
|
|
|
typedef struct {
|
|
guint age;
|
|
gchar name[40];
|
|
} GlibTestInfo;
|
|
|
|
|
|
|
|
int
|
|
main (int argc,
|
|
char *argv[])
|
|
{
|
|
gint i;
|
|
GRelation *relation;
|
|
GTuples *tuples;
|
|
gint data [1024];
|
|
|
|
|
|
relation = g_relation_new (2);
|
|
|
|
g_relation_index (relation, 0, g_int_hash, g_int_equal);
|
|
g_relation_index (relation, 1, g_int_hash, g_int_equal);
|
|
|
|
for (i = 0; i < 1024; i += 1)
|
|
data[i] = i;
|
|
|
|
for (i = 1; i < 1023; i += 1)
|
|
{
|
|
g_relation_insert (relation, data + i, data + i + 1);
|
|
g_relation_insert (relation, data + i, data + i - 1);
|
|
}
|
|
|
|
for (i = 2; i < 1022; i += 1)
|
|
{
|
|
g_assert (! g_relation_exists (relation, data + i, data + i));
|
|
g_assert (! g_relation_exists (relation, data + i, data + i + 2));
|
|
g_assert (! g_relation_exists (relation, data + i, data + i - 2));
|
|
}
|
|
|
|
for (i = 1; i < 1023; i += 1)
|
|
{
|
|
g_assert (g_relation_exists (relation, data + i, data + i + 1));
|
|
g_assert (g_relation_exists (relation, data + i, data + i - 1));
|
|
}
|
|
|
|
for (i = 2; i < 1022; i += 1)
|
|
{
|
|
g_assert (g_relation_count (relation, data + i, 0) == 2);
|
|
g_assert (g_relation_count (relation, data + i, 1) == 2);
|
|
}
|
|
|
|
g_assert (g_relation_count (relation, data, 0) == 0);
|
|
|
|
g_assert (g_relation_count (relation, data + 42, 0) == 2);
|
|
g_assert (g_relation_count (relation, data + 43, 1) == 2);
|
|
g_assert (g_relation_count (relation, data + 41, 1) == 2);
|
|
g_relation_delete (relation, data + 42, 0);
|
|
g_assert (g_relation_count (relation, data + 42, 0) == 0);
|
|
g_assert (g_relation_count (relation, data + 43, 1) == 1);
|
|
g_assert (g_relation_count (relation, data + 41, 1) == 1);
|
|
|
|
tuples = g_relation_select (relation, data + 200, 0);
|
|
|
|
g_assert (tuples->len == 2);
|
|
|
|
#if 0
|
|
for (i = 0; i < tuples->len; i += 1)
|
|
{
|
|
printf ("%d %d\n",
|
|
*(gint*) g_tuples_index (tuples, i, 0),
|
|
*(gint*) g_tuples_index (tuples, i, 1));
|
|
}
|
|
#endif
|
|
|
|
g_assert (g_relation_exists (relation, data + 300, data + 301));
|
|
g_relation_delete (relation, data + 300, 0);
|
|
g_assert (!g_relation_exists (relation, data + 300, data + 301));
|
|
|
|
g_tuples_destroy (tuples);
|
|
|
|
g_relation_destroy (relation);
|
|
|
|
relation = NULL;
|
|
|
|
return 0;
|
|
}
|
|
|