This may happen in headless environments.

The return value of gtk_init_check was not examined before; according to 1, "calling any GTK function or instantiating any GTK type after this function returns FALSE results in undefined behavior."

The value 77 can be returned to tell Automake that the test was skipped.23


Based on the example here, I assumed that Autotools would mark test_sidebar as SKIP if all test cases inside are marked as skipped using g_test_skip despite the return value being 0, but with the way it is plugged together (each binary being one test from the view of the harness without regard for the more granular test cases inside), this doesn't work without further ado:

test_sidebar.log:

TAP version 13
# random seed: R02Seafe1e22758e0c4a49fe548501665a2d
1..3
# Start of sidebar tests
ok 1 /sidebar/openfiles_none # SKIP Could not initizlize GTK, skipping. Headless environment?
ok 2 /sidebar/openfiles_path # SKIP Could not initizlize GTK, skipping. Headless environment?
ok 3 /sidebar/openfiles_tree # SKIP Could not initizlize GTK, skipping. Headless environment?
# End of sidebar tests
PASS test_sidebar (exit status: 0)

test_sidebar.trs:

:test-result: PASS
:global-test-result: PASS
:recheck: no
:copy-in-global-log: no

geany-2.0/tests $ env TESTS="test_sidebar" make -e check SUBDIRS=

PASS: test_sidebar
============================================================================
Testsuite summary for Geany 2.0
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

However, returning 77 works as intended:

test_sidebar.log:

GTK initialisation failed; skipping. Running inside a headless environment?
SKIP test_sidebar (exit status: 77)

test_sidebar.trs:

:test-result: SKIP
:global-test-result: SKIP
:recheck: no
:copy-in-global-log: yes

geany-2.0/tests $ env TESTS="test_sidebar" make -e check SUBDIRS=

SKIP: test_sidebar
============================================================================
Testsuite summary for Geany 2.0
============================================================================
# TOTAL: 1
# PASS:  0
# SKIP:  1
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

Fixes #3674

Footnotes

  1. https://docs.gtk.org/gtk3/func.init_check.html

  2. https://www.gnu.org/software/automake/manual/automake.html#index-Exit-status-77_002c-special-interpretation

  3. https://docs.gtk.org/glib/func.test_run.html


You can view, comment on, or merge this pull request online at:

  https://github.com/geany/geany/pull/3676

Commit Summary

File Changes

(1 file)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <geany/geany/pull/3676@github.com>