glib/tests
Philip Withnall 5cddde1fb2 Consistently save errno immediately after the operation setting it
Prevent the situation where errno is set by function A, then function B
is called (which is typically _(), but could be anything else) and it
overwrites errno, then errno is checked by the caller.

errno is a horrific API, and we need to be careful to save its value as
soon as a function call (which might set it) returns. i.e. Follow the
pattern:
  int errsv, ret;
  ret = some_call_which_might_set_errno ();
  errsv = errno;

  if (ret < 0)
    puts (strerror (errsv));

This patch implements that pattern throughout GLib. There might be a few
places in the test code which still use errno directly. They should be
ported as necessary. It doesn’t modify all the call sites like this:
  if (some_call_which_might_set_errno () && errno == ESOMETHING)
since the refactoring involved is probably more harmful than beneficial
there. It does, however, refactor other call sites regardless of whether
they were originally buggy.

https://bugzilla.gnome.org/show_bug.cgi?id=785577
2017-08-03 10:21:13 +01:00
..
collate Add Collation tests. 2005-10-05 17:37:46 +00:00
gobject Consistently save errno immediately after the operation setting it 2017-08-03 10:21:13 +01:00
refcount meson: add tests/gobject and tests/refcount 2017-07-13 19:03:39 -04:00
.gitignore build: Drop nmake/MSC build system for GLib 2017-07-10 11:22:40 +01:00
assert-msg-test.c Use (void) for no parameters, not () 2012-11-01 20:12:02 -04:00
assert-msg-test.gdb assert-msg-test: Explicitly quit gdb session to avoid zombie 2014-06-10 08:57:54 -04:00
asyncqueue-test.c tests: replace most g_print() with g_printerr() 2015-05-11 20:24:56 +01:00
atomic-test.c Remove deprecated atomic functions from tests 2011-06-06 00:30:02 -04:00
bit-test.c all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
casefold.txt unicode: Update test data files for unicode 10.0.0 2017-07-05 17:53:07 +02:00
casemap.txt unicode: Update test data files for unicode 10.0.0 2017-07-05 17:53:07 +02:00
child-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
completion-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
cxx-test.C Add gio/gio.h include to check for c++ problems. 2008-01-08 20:37:43 +00:00
datetime.c License headers: replace current FSF address by a link to gnu.org 2017-01-04 19:12:57 +01:00
dirname-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
env-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
file-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
gen-casefold-txt.pl Restore executability for other files 2014-01-31 09:36:52 -05:00
gen-casemap-txt.pl Restore executability for other files 2014-01-31 09:36:52 -05:00
gio-ls.c Remove g_type_init() calls 2012-10-16 09:39:24 -04:00
gio-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
iochannel-test-infile Modified Files: glib/ChangeLog glib/glib.def glib/glib/giochannel.c 2001-07-20 20:14:37 +00:00
iochannel-test.c iochannel-test: Fix leaks in test 2013-11-10 22:45:04 +01:00
libmoduletestplugin_a.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
libmoduletestplugin_b.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
mainloop-test.c Consistently save errno immediately after the operation setting it 2017-08-03 10:21:13 +01:00
Makefile.am build: Drop nmake/MSC build system for GLib 2017-07-10 11:22:40 +01:00
mapping-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
memchunks.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
meson.build meson: add tests/gobject and tests/refcount 2017-07-13 19:03:39 -04:00
module-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
onceinit.c Remove a bunch of lingering g_thread_init() 2013-05-31 23:03:19 -04:00
qsort-test.c win32: misc warning fixes 2012-11-15 14:19:06 -05:00
relation-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
run-assert-msg-test.sh tests: fix a few recently-broken tests 2013-05-21 11:21:36 -03:00
run-collate-tests.sh Silently skip tests if we can't set LC_COLLATE to en_US. (#336438) 2006-12-24 21:47:05 +00:00
slice-color.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
slice-concurrent.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
slice-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
slice-threadinit.c Fix make check 2011-05-01 17:10:04 -04:00
sources.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
spawn-test-win32-gui.c Consistently save errno immediately after the operation setting it 2017-08-03 10:21:13 +01:00
spawn-test.c Consistently save errno immediately after the operation setting it 2017-08-03 10:21:13 +01:00
testgdate.c Try to make the testgdate test hobble along a little longer 2013-06-17 12:40:47 -04:00
testgdateparser.c Use 'dumb quotes' rather than `really dumb quotes' 2013-05-21 11:23:22 -03:00
testglib.c Consistently save errno immediately after the operation setting it 2017-08-03 10:21:13 +01:00
thread-test.c thread-test: Fix leaks in tests 2013-11-10 22:44:12 +01:00
threadpool-test.c threadpool-test: Fix leaks in tests 2013-11-11 17:37:48 +01:00
timeloop-basic.c Consistently save errno immediately after the operation setting it 2017-08-03 10:21:13 +01:00
timeloop.c Consistently save errno immediately after the operation setting it 2017-08-03 10:21:13 +01:00
type-test.c tests/: LGPLv2+ -> LGPLv2.1+ 2017-05-29 19:53:35 +02:00
unicode-caseconv.c Some final g_test_build_filename() porting 2013-05-31 23:03:19 -04:00
unicode-collate.c build: Add missing "static" keyword where it should be used 2012-11-01 20:12:01 -04:00
unicode-encoding.c tests: Don't test g_utf8_to_ucs4_fast too rigorously 2015-09-07 15:01:16 -04:00
unicode-normalize.c Update to reflect Unicode PR #29 (#348694, Nikolai Weibull) 2006-07-31 04:50:05 +00:00
utf8.txt More clean up for Unicode corrigendum #9 2013-03-18 23:28:27 -04:00