Commit Graph

484 Commits

Author SHA1 Message Date
Ryan Lortie
037c91f845 rec-mutex testcase: add a performance test
Add a reasonable performance test for uncontended and contended cases at
different levels of recursion depth.
2011-10-04 09:45:36 -04:00
Matthias Clasen
ca6a985039 Improve test coverage in the thread tests
Use g_thread_new_full() in some places.
2011-10-04 00:46:10 -04:00
Matthias Clasen
e6fa27a5f8 Improve test coverage in the GString tests 2011-10-04 00:45:42 -04:00
Matthias Clasen
fc32480658 Improve testcoverage in the rec-mutex test
Test g_rec_mutex_trylock() in both locked and unlocked cases.
2011-10-04 00:44:58 -04:00
Matthias Clasen
823e32655e Add a few more tests
This brings test coverage for glist.c and glist.c to the
coveted 100% lines mark.
2011-10-03 23:55:02 -04:00
Matthias Clasen
b74f46db6b Add some more thread tests 2011-10-03 22:25:47 -04:00
Ryan Lortie
2a677d1370 locks: drop _INIT macros
All locks are now zero-initialised, so we can drop the G_*_INIT macros
for them.

Adjust various users around GLib accordingly and change the docs.

https://bugzilla.gnome.org/show_bug.cgi?id=659866
2011-10-02 22:33:10 -04:00
Ryan Lortie
3315aee709 Re-enable 'include' testcase
The bug is fixed now.

https://bugzilla.gnome.org/show_bug.cgi?id=659866
2011-10-02 22:33:10 -04:00
Matthias Clasen
7df7c53557 Add another GCond test
This test shows how to implement a barrier using a GCond.
2011-10-02 19:09:24 -04:00
Matthias Clasen
6d2b2ccaa0 Add tests for GPrivate and GStaticPrivate 2011-10-02 16:51:32 -04:00
Ryan Lortie
406f7d2b39 mutex testcase: add a performance test
Add a reasonable performance test for uncontended and contended cases.
2011-10-02 00:13:18 -04:00
Simon McVittie
c48a0d8813 markup-subparser test: use a real GError domain
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Matthias Clasen <mclasen@redhat.com>
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660371
2011-09-30 13:17:27 +01:00
Dan Winship
0f4b278a4b update .gitignores 2011-09-28 12:20:09 -04:00
Ryan Lortie
6bd959b727 glib tests: Compile new thread tests on win32
They accidentally got added inside of a 'if OS_UNIX'.  Move them out.
2011-09-26 09:05:53 -04:00
Stef Walter
5a95e19a46 gvariant: Add g_variant_get_fixed_array()
Using g_variant_new_from_data() for creating new byte arrays is non-obvious.
This patch adds a g_variant_new_fixed_array() function.

https://bugzilla.gnome.org/show_bug.cgi?id=659923
2011-09-25 07:57:26 +02:00
Matthias Clasen
df9e5c2435 Fix an uninialized variable warning 2011-09-24 19:01:02 -04:00
Matthias Clasen
cf9623767a Add a testcase for bug 659866
Mere inclusion of glib headers should not require you to define
any XYZ_SOURCE macros.
2011-09-24 00:39:59 -04:00
Matthias Clasen
e1f68c1292 Add a test for GCond 2011-09-23 23:38:26 -04:00
Matthias Clasen
a118313599 Add a nontrivial read-write lock test 2011-09-23 22:07:32 -04:00
Matthias Clasen
158a0366be Add GOnce tests 2011-09-23 21:19:53 -04:00
Matthias Clasen
dd002113f1 Make the rec mutex test a little more verbose 2011-09-23 21:11:10 -04:00
Matthias Clasen
cf020d8250 Add a non-trivial GRWLock test
This one tests that the writer lock behaves like a mutex.
Adapted from the corresponding test in GMutex.
2011-09-23 07:25:07 -04:00
Matthias Clasen
0a9885ebd8 Add a non-trivial GRecMutex test
Adapted from the corresponding GMutex test.
2011-09-23 07:25:07 -04:00
Matthias Clasen
de39df9dc1 Remove an unused variable 2011-09-23 07:25:06 -04:00
Matthias Clasen
798a7d5abe Add some more rw lock tests
These test some simple mixed reader/writer api usage.
2011-09-23 06:31:59 -04:00
Matthias Clasen
81b3708184 Add a mutex test
This tests that mutexes do what they are supposed to do.
Copied from a similar test for bitlocks in gthread/tests/bitlock.c.
2011-09-23 06:31:59 -04:00
Matthias Clasen
4f3026ea23 Add headers 2011-09-22 22:45:47 -04:00
Matthias Clasen
ff13913537 Add basic tests for GRWLock
Just basic api usage, no functional test cases yet.
2011-09-22 22:45:47 -04:00
Matthias Clasen
295af777e4 Add trivial tests for GMutex and GRecMutex
Not testing any mutual exclusion with threads yet, just
basic api use. This is already enough to reveal g_rec_mutex_trylock
as broken...
2011-09-22 21:58:54 -04:00
Ryan Lortie
19e7026fe7 GDateTime test: fix a race
We have a GDateTime test that compares the time now (as per the libc) to
the time now (as per GDateTime).  The problem is that the time could
change between those two "now"s.
2011-09-21 20:23:03 -04:00
Philip Van Hoof
ca154c399b GMappedFile: Add API to create from an existing file descriptor
At Tracker we want to mmap files using O_NOATIME. With GMappedFile this is at
the moment impossible. For that reason I added the constructor new_from_fd to
the GMappedFile type.

https://bugzilla.gnome.org/show_bug.cgi?id=659754
2011-09-22 00:01:56 +02:00
Ryan Lortie
3d4102776e Add GRWLock 2011-09-21 16:09:03 -04:00
Matthias Clasen
bb1ada7791 Fix a merge accident 2011-09-18 22:14:44 -04:00
Matthias Clasen
1e82f73f8b Fix g_ascii_formatd tests
The test was not changing to the locales it was looping over.
2011-09-18 14:51:30 -04:00
Matthias Clasen
f18eab2ac7 GMappedFile: return an error when trying to map a device
Previously, we were returning an empty buffer for all filenames
where fstat() gives a size of 0. But this is only appropriate
for regular files.

Also improve the documentation around this issue. Based on a
patch by Ryan Lortie.

Conflicts:

	glib/tests/mappedfile.c

https://bugzilla.gnome.org/show_bug.cgi?id=659212
2011-09-17 20:03:00 -04:00
Matthias Clasen
6274386e52 Only use gcc-specific options when the compiler is gcc
The -Wstrict-aliasing option that we use to compile atomic
tests does not exist with compilers other than gcc, so
don't pass it to those.
https://bugzilla.gnome.org/show_bug.cgi?id=652272
https://bugzilla.gnome.org/show_bug.cgi?id=656152
2011-09-04 20:06:53 -04:00
Dan Winship
749fa587bc fix a few warnings on non-Linux
mostly #ifdeffing functions that are only called by #ifdeffed code
2011-09-04 17:50:41 -04:00
Ryan Lortie
2d7051e3a3 g_date_time_format: improve support for alt digits
Improve a few situations where g_date_time_format() was getting the
padding wrong when displaying alt digits (eg: Arabic numerals) for
formatting time.

We now depend on nl_langinfo (_NL_CTYPE_OUTDIGITn_WC) to do the
conversion, which is very likely glibc-specific, but our previous method
relied on a glibc-specific printf() feature, so no harm done there.

Add a configure check for nl_langinfo (_NL_CTYPE_OUTDIGITn_WC).

Uncomment a few testcases that were failing previously.

https://bugzilla.gnome.org/show_bug.cgi?id=658107
2011-09-03 23:06:18 -04:00
Matthias Clasen
f091c6a99b gdatetime: Fix locale-changing code
As pointed out by Ryan Lortie, the code didn't actually ever
switch back to the old locale.

https://bugzilla.gnome.org/show_bug.cgi?id=658104
2011-09-02 23:37:12 -04:00
Ryan Lortie
bdb34e3217 GDateTime: test _format against strftime()
Test g_date_time_format() against strftime().  This test found quite a
few cases of incorrect behaviour on our part (fixes already committed
for those).
2011-09-02 21:08:35 -04:00
Ryan Lortie
dcbfeb579a GDateTime test: plug a couple of leaks 2011-09-02 21:05:53 -04:00
Ryan Lortie
1b04f0d973 g_date_time_format: rip out non-working %W format
Our implementation of %W is incorrect.  Nobody should want to use this
format anyway and the implementation is non-trivial, so rip it out
rather than fixing it.

Remove the testcase for %W as well.
2011-09-02 21:05:40 -04:00
Ryan Lortie
65fe8b73c5 g_date_time_format: fix padding for some formats
%e is supposed to be space-padded and %W is supposed to be 0-padded

Adjust the testcase accordingly since it expects the wrong behaviour.
2011-09-02 21:05:23 -04:00
Ryan Lortie
b4591aa3dc GDateTime test: don't test removed %N 2011-09-02 21:05:23 -04:00
Ryan Lortie
ab8938c64d Revert "gdatetime: Add g_date_time_source_new()"
This reverts three commits:

 - 1feb752996
 - 5763c63147
 - 21a5389340

https://bugzilla.gnome.org/show_bug.cgi?id=655129
2011-08-31 12:56:28 -04:00
Ryan Lortie
c0eb77bfc8 unix signal watch: make API match other sources
Change the unix signal watch API to match other sources in both
available functions, names of those functions and order of the
parameters to the _full function.

https://bugzilla.gnome.org/show_bug.cgi?id=657705
2011-08-30 19:22:54 -04:00
Colin Walters
1feb752996 gdatetime: Add g_date_time_source_new()
Several different codebases in GNOME want to implement wall clocks.
While we could pretty easily share a private library, it's not a
substantial amount of code, and GLib already has a lot of the
necessary system-specific detection and handling infrastructure.

Note this initial implementation just wakes up once a second in the
cancel_on_set case; we'll add the Linux-specific handling in a
subsequent commit.

https://bugzilla.gnome.org/show_bug.cgi?id=655129
2011-08-29 10:24:08 -04:00
Colin Walters
5b68b49b20 GTimeZoneMonitor: Revert addition of this class
The main rationale for adding it was to avoid having gnome-shell
mmap'ing /etc/localtime once a second.  However, we can just as easily
run inotify there, and given no one else was clamoring for a way to
detect when the time zone changes, I don't see a need for public API
here - at least not yet.

In the bigger picture, I just don't believe that the vast majority of
applications are going to go out of their way to instantiate and keep
around a random GTimeZoneMonitor class.  And if they do, it's has the
side effect that for other bits of code in the process, local GDateTime
instances may start varying again!

So, if code can't rely on local GDateTime instances being in a
consistent state anyways, let's just do that always.  The
documentation now says that this is the case.  Applications have
always been able to work in a consistent local time zone by
instantiating a zone and then using it for GDateTime constructors.

We fix the "gnome-shell stats /etc/localtime once a second" issue by
using timerfd (in glib) and inotify (in gnome-shell).

https://bugzilla.gnome.org/show_bug.cgi?id=655129
2011-08-22 11:12:37 -04:00
Stef Walter
acbcb8f7e3 hmac: Implementation of HMAC in glib
This implements g_hmac_xxx() functionality using the standard checksum
functions supported by glib.

HMAC is a secure way to hash a key and a password. Many other
approaches fraught with append and prepend issues.

Includes test cases defined in relevant RFCs

https://bugzilla.gnome.org/show_bug.cgi?id=652480
2011-08-14 09:27:45 +02:00
Matthias Clasen
655299a057 gdatetime: Add a test for %OM 2011-08-13 15:48:47 -04:00