This crash (see https://github.com/google/sanitizers/issues/1353)
happens sporadically but regularly enough to be annoying, so try to work
around it by rerunning the test and hope that it doesn't happen twice in
a row.
Each step executes in its own shell, so it's not necessary to restore
the previous working directory and a simple "cd" would do just fine but,
in fact, we don't even need this as we can just set the working
directory at the step level.
Only disable using the system libraries when a built-in version is
available, otherwise still use the system library as this seems more
useful than disabling the use of only some system libraries (liblzma and
libcurl), while still possibly depending on dozens more via GTK.
Update the documentation and remove the now unnecessary --with-libcurl
from the CI script.
Closes https://github.com/wxWidgets/wxWidgets/pull/2208
This makes things much, much slower, but unfortunately seems to be the
only way to avoid memory leak reports when running the tests as without
it the suppression is not used because the stack is truncated, i.e. we
only see
Direct leak of 24 byte(s) in 1 object(s) allocated from:
#0 0x7f0968253bc8 in malloc (/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8)
#1 0x7f09675aacb8 in g_malloc ../../../glib/gmem.c:102
in the output when the actual stack, seen with fast_unwind_on_malloc=0, is
Direct leak of 24 byte(s) in 1 object(s) allocated from:
#0 0x7f12b913bbc8 in malloc (/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8)
#1 0x7f12b8496cd8 in g_malloc ../../../glib/gmem.c:102
#2 0x7f12b84b0f93 in g_strdup ../../../glib/gstrfuncs.c:363
#3 0x7f12b49adb2a in atk_bridge_adaptor_init ../atk-adaptor/bridge.c:1039
#4 0x7f12b566d753 in _gtk_accessibility_init ../../../../gtk/a11y/gtkaccessibility.c:992
#5 0x7f12b5821cfc in default_display_notify_cb ../../../../gtk/gtkmain.c:714
#6 0x7f12b5589801 in g_closure_invoke ../../../gobject/gclosure.c:810
#7 0x7f12b559d813 in signal_emit_unlocked_R ../../../gobject/gsignal.c:3742
#8 0x7f12b55a8b9d in g_signal_emit_valist ../../../gobject/gsignal.c:3498
#9 0x7f12b55a90d2 in g_signal_emit ../../../gobject/gsignal.c:3554
#10 0x7f12b558e283 in g_object_dispatch_properties_changed ../../../gobject/gobject.c:1206
#11 0x7f12b55906f1 in g_object_notify_by_spec_internal ../../../gobject/gobject.c:1299
#12 0x7f12b55906f1 in g_object_notify ../../../gobject/gobject.c:1347
#13 0x7f12b5dbf54f in _gdk_display_manager_add_display ../../../../gdk/gdkdisplaymanager.c:479
#14 0x7f12b5589a55 in _g_closure_invoke_va ../../../gobject/gclosure.c:873
#15 0x7f12b55a8b27 in g_signal_emit_valist ../../../gobject/gsignal.c:3407
#16 0x7f12b55a9b7b in g_signal_emit_by_name ../../../gobject/gsignal.c:3594
#17 0x7f12b5ded21a in _gdk_x11_display_open ../../../../../gdk/x11/gdkdisplay-x11.c:1803
#18 0x7f12b5dbf377 in gdk_display_manager_open_display ../../../../gdk/gdkdisplaymanager.c:462
#19 0x7f12b5822f6a in gtk_init_check ../../../../gtk/gtkmain.c:1109
#20 0x7f12b5822f6a in gtk_init_check ../../../../gtk/gtkmain.c:1101
#21 0x7f12b6fd1dad in wxApp::Initialize(int&, wchar_t**)
...
Running wxWebView tests with ASAN results in "ASan runtime does not come
first in initial library list" warnings and doesn't work currently, so
disable wxWebView in this build for now to have a chance of passing the
tests.
It would be better to actually fix this, of course, but this will have
to wait until later.
Libcurl was implicitly disabled by --disable-sys-libs, so enable it
explicitly to still use it.
Also install httpbin using pip to use it for wxWebRequest tests.
Add missing ":" in the beginning of Git pathspecs to make the exclusions
really work.
Also add entries for Makefile.in, which is not caught by **/*akefile*,
and other files in the root directory containing hard TABs.
Running it using Python 2 seems to result in a problem with not matching
an exclusion line with non-ASCII character, which works fine with Python
3 locally.