426 Commits

Author SHA1 Message Date
Ryan Lortie
19878998bc GVariant: better support for object path arrays
Add G_VARIANT_TYPE_OBJECT_PATH_ARRAY along with accessor functions
g_variant_new_objv, g_variant_get_objv and g_variant_dup_objv.  Also add
support for '^ao' and '^a&o' format strings for g_variant_new() and
g_variant_get().

https://bugzilla.gnome.org/show_bug.cgi?id=654955
2011-07-20 16:27:30 +02:00
Behdad Esfahbod
0584fe33de Bug 654651 - Better g_unicode_canonical_decomposition()
Add g_unichar_fully_decompose().
Deprecate g_unicode_canonical_decomposition().
2011-07-18 18:12:35 -04:00
Behdad Esfahbod
89a5d17d58 Document, that the second part of a decompose() wouldn't decompose()
This is not directly documented in Unicode, or I couldn't find it,
but the test I just added confirms that it is currently the case.
2011-07-14 16:55:35 -04:00
Behdad Esfahbod
f4cf6c3db0 [test] Move non-utf8 tests into unicode.c 2011-07-14 16:55:35 -04:00
Behdad Esfahbod
a73c66b134 Add tests for Unicode canonical composition/decomposition
Also update compose()/decompose() API corner cases and docs.
2011-07-14 16:55:35 -04:00
Paolo Bonzini
5eee90fbbc add g_regex_escape_nul
The function can be used to let regex compile non-NUL-terminated
strings without redesigning the way the pattern is stored in GRegex
objects and retrieved with g_regex_get_pattern.

https://bugzilla.gnome.org/show_bug.cgi?id=615895
2011-07-11 00:02:22 -04:00
Matthias Clasen
34e571c466 Disable a failing test 2011-07-04 13:11:42 -04:00
Matthias Clasen
9eb65dd3ed Unicode: add a g_utf8_substring convenience api
This function is useful in the GTK+ accessibility implementations,
and seems like a nice thing to have around in general.
2011-06-23 21:31:40 -04:00
Christian Persch
b1b8c95d35 Plug a mem leak in the regex test 2011-06-24 01:03:52 +02:00
Philip Van Hoof
f6ed357101 Add iter_replace API to GHashTableIter
https://bugzilla.gnome.org/show_bug.cgi?id=652822
2011-06-20 23:05:59 -04:00
Matthias Clasen
580e177dcc Add tests for GCache 2011-06-19 01:42:48 -04:00
Matthias Clasen
63fa44251a utils: silence tests unless verbose 2011-06-19 01:05:05 -04:00
Matthias Clasen
e1d4e06ab3 logging: improve test coverage 2011-06-19 01:04:48 -04:00
Matthias Clasen
ed3ac87afe hash: Improve test coverage 2011-06-19 01:04:30 -04:00
Colin Walters
b9c67b4369 glib/tests/unix.c: Also test SIGTERM
We expect this to not kill the process, so it'd be a good one to test.

https://bugzilla.gnome.org/show_bug.cgi?id=652072
2011-06-14 19:23:36 -04:00
Matthias Clasen
25a797fa25 Silence a compiler warning
Even though we are confident the filename will always
end in .gmarkup, the compiler doesn't know that...
2011-06-14 10:16:35 -04:00
Matthias Clasen
4dc3d3e999 Use a realistic timeout in a test
Who knew that g_test_trap_fork() takes a timeout in microseconds...
2011-06-13 22:50:02 -04:00
Dan Winship
7412e073d1 update .gitignores 2011-06-12 16:17:30 -04:00
Matthias Clasen
d4be2925e4 Add a testcase for the previous fix 2011-06-06 23:25:42 -04:00
Matthias Clasen
782cf86f12 GMappedFile: improve test coverage 2011-06-06 01:14:23 -04:00
Matthias Clasen
698bb5d962 GKeyFile: improve test coverage 2011-06-06 01:14:00 -04:00
Matthias Clasen
7cf16c3094 GConvert: improve test coverage 2011-06-06 01:13:46 -04:00
Matthias Clasen
e02d8165d9 Improve GChecksum test coverage 2011-06-06 01:13:26 -04:00
Matthias Clasen
ae96118395 Improve test coverage of gtimezone.c 2011-06-06 00:31:52 -04:00
Matthias Clasen
f0b14653f8 Improve test coverage of GVariant 2011-06-06 00:31:40 -04:00
Matthias Clasen
70c082127f Improve test coverage of glist.c 2011-06-06 00:31:24 -04:00
Matthias Clasen
3e93fa7a25 Improve test coverage of glib-unix.c 2011-06-06 00:31:06 -04:00
Matthias Clasen
bb0cbc2ae1 Improve test coverage of gurifuncs.c 2011-06-06 00:30:50 -04:00
Matthias Clasen
059fa31ad1 Improve test coverage
Duplicate the atomic tests for the functions, and
test the new atomic operations as well.
2011-06-06 00:28:38 -04:00
Matthias Clasen
1e88c5321c Add a test for the previous fix 2011-06-03 23:38:46 -04:00
Mikhail Zabaluev
1b101a3873 Added performance tests for UTF-8 decoding functions
https://bugzilla.gnome.org/show_bug.cgi?id=619418
2011-06-03 22:28:34 -04:00
Ryan Lortie
d09443fe20 optimise bitlocks with new atomic operations
Add a performance test for bitlocks.

Make use of the new g_atomic_int_{and,or} to avoid having to do the
usual compare-and-exchange loop.

On a test machine, the change increases performance from approximately
20 million uncontended acquire/releases per second to 31 million.
2011-05-28 17:39:12 -04:00
Ryan Lortie
8382135265 glib: Rewrite gatomic.[ch]
- remove all inline assembly versions

 - implement the atomic operations using either GCC intrinsics, the
   Windows interlocked API or a mutex-based fallback

 - drop gatomic-gcc.c since these are now defined in the header file.
   Adjust Makefile.am accordingly.

 - expand the set of operations: support 'get', 'set', 'compare and
   exchange', 'add', 'or', and 'xor' for both integers and pointers

 - deprecate g_atomic_int_exchange_and_add since g_atomic_int_add (as
   with all the new arithmetic operations) now returns the prior value

 - unify the use of macros: all functions are now wrapped in macros that
   perform the proper casts and checks

 - remove G_GNUC_MAY_ALIAS use; it was never required for the integer
   operations (since casting between pointers that only vary in
   signedness of the target is explicitly permitted) and we avoid the
   need for the pointer operations by using simple 'void *' instead of
   'gpointer *' (which caused the 'type-punned pointer' warning)

 - provide function implementations of g_atomic_int_inc and
   g_atomic_int_dec_and_test: these were strictly macros before

 - improve the documentation to make it very clear exactly which types
   of pointers these operations may be used with

 - remove a few uses of the now-deprecated g_atomic_int_exchange_and_add

 - drop initialisation of gatomic from gthread (by using a GStaticMutex
   instead of a GMutex)

 - update glib.symbols and documentation sections files

Closes #650823 and #650935
2011-05-28 16:10:44 -04:00
Ryan Lortie
edd65baa6d Add a test case for atomic ops
Make sure that the macros work properly with the range of types that
they are documented to work with and ensure that no strict aliasing
warnings are issued (even at the highest warning level).

https://bugzilla.gnome.org/show_bug.cgi?id=650935
2011-05-27 23:00:14 -04:00
Matthias Clasen
5345d21150 forgotten test 2011-05-27 16:09:34 -04:00
Matthias Clasen
120b85a31b Enforce rules about modifying hash tables in callbacks
We have the infrastructure to do this, so lets do it.
Also add tests for find and foreach to the testsuite.
Bug 650688
2011-05-20 15:07:08 -04:00
Matthias Clasen
afc5319a27 Be more careful when calling destroy notifies
If we are, we can allow modification of the hash table
from destroy notifies.

https://bugzilla.gnome.org/show_bug.cgi?id=650459
2011-05-19 23:51:43 -04:00
Colin Walters
9966fe4493 g_key_file_has_key_full: New function to fix g_key_file_has_key()'s GError semantics
See https://bugzilla.gnome.org/show_bug.cgi?id=649657 for discussion
of why it's bad for bindings for gerror return values to both signal
errors and carry meaning.

https://bugzilla.gnome.org/show_bug.cgi?id=650345
2011-05-18 11:53:21 -04:00
Matthias Clasen
f96dc555d5 Rename a problematic test binary
Having a binary called printf is apparently asking for trouble,
so lets not do that.

http://bugzilla.gnome.org/show_bug.cgi?id=650078
2011-05-16 14:39:53 -04:00
Matthias Clasen
17d8d2cc44 Add tests for new GDateTime functionality 2011-05-05 14:57:09 -04:00
Colin Walters
542215b78a Rename g_unix_pipe_flags to g_unix_open_pipe
From IRC discussion, people liked this name more.

https://bugzilla.gnome.org/show_bug.cgi?id=649322
2011-05-03 23:34:17 -04:00
Dan Winship
bdc23c44e8 Fix compiler warnings 2011-05-02 11:50:23 -04:00
Behdad Esfahbod
c1d61f1971 Bug 648966 - Update g_unichar_iswide and g_unichar_iswide_cjk
Add tests.
2011-05-02 11:43:18 -04:00
Dan Winship
181763438a Update .gitignores 2011-05-02 09:54:15 -04:00
Matthias Clasen
ddcb095fb2 Avoid an unused variable warning
Also, clean up some whitespace
2011-05-01 20:43:04 -04:00
Matthias Clasen
d09df426ba GHash: make sets with refcounted keys work correctly
When keys == values, we have to be careful about the order in
which we replace their elements.
2011-05-01 10:55:24 -04:00
Matthias Clasen
be991170fa GHash: introduce a "set" mode
Make hash tables start out in a mode in which they don't store
values at all, until the first insertion of a non-identical
key-value pair.

This reduces memory requirements by 1/3 when using hash tables
to store sets.

Based on a patch by Morten Welinder,
https://bugzilla.gnome.org/show_bug.cgi?id=644437
2011-04-30 23:11:18 -04:00
Colin Walters
a1fbe7ae84 Drop stray reference to gthread.la
We now build this test multithreaded in gthread/tests.
2011-04-27 19:09:38 -04:00
Colin Walters
549d895fa4 glib-unix: New API to watch some Unix signals
This new API allows watching a few select Unix signals;
looking through the list on my system, I didn't see anything
else that I think it'd reasonable to watch.

We build on the previous patch to make the child watch helper thread
that existed on Unix handle these signals in the threaded case.
In the non-threaded case, they're just global variables.

https://bugzilla.gnome.org/show_bug.cgi?id=644941
2011-04-27 16:01:39 -04:00
Colin Walters
0ff211f520 glib-unix: New Unix-specific API
GLib historically has been designed to be "mostly" portable; there
are some functions only available on Unix like g_io_channel_unix_new(),
but these are typically paired with obvious counterparts for Win32.

However, as GLib is used not only by portable software, but components
targeting Unix (or even just Linux), there are a few cases where it
would be very convenient if GLib shipped built-in functionality.

This initial patch is a basic wrapper around pipe2(), including
fallbacks for older kernels.  This pairs well with the
existing g_spawn_*() API and its child_setup functionality.

However, in the future, I want to add a signal() wrapper here,
complete with proxying the signal to a mainloop.  I have initial code
for this, but doing it sanely (including factoring out gmain.c's
private worker thread), is a complex task, and I don't want to block
on that.

See also gwin32.h for Win32 specific functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=644941
2011-04-27 13:29:38 -04:00