2.99.3: test-bus-query-cancellation is failing
+ cd tracker-2.99.3
+ /usr/bin/dbus-run-session /usr/bin/xvfb-run -a /usr/bin/meson test -C x86_64-redhat-linux-gnu --num-processes 48 --print-errorlogs
ninja: Entering directory `/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_64-redhat-linux-gnu'
[0/2] Generating ontology-doc-generated with a custom commanddbus-daemon[309073]: [session uid=1000 pid=309073] Activating service name='org.gtk.vfs.Daemon' requested by ':1.0' (uid=1000 pid=309158 comm="/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_6" label="unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023")
dbus-daemon[309073]: [session uid=1000 pid=309073] Successfully activated service 'org.gtk.vfs.Daemon'
[1/2] Generating base-ontology-doc-generated with a custom commandfusermount3: failed to access mountpoint /run/user/1000/gvfs: Permission denied
[2/2] Generating ontology-doc-generated with a custom command
dbus-daemon[309073]: [session uid=1000 pid=309073] Activating service name='org.gtk.vfs.Metadata' requested by ':1.6' (uid=1000 pid=309225 comm="/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_6" label="unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023")
dbus-daemon[309073]: [session uid=1000 pid=309073] Successfully activated service 'org.gtk.vfs.Metadata'
1/31 tracker:functional / insertion OK 1.44s
2/31 tracker:functional / query OK 0.85s
3/31 tracker:functional / fts-functions OK 0.56s
4/31 tracker:functional / sparql-bugs OK 0.70s
5/31 tracker:functional / group-concat OK 0.54s
6/31 tracker:functional / coalesce OK 0.65s
7/31 tracker:functional / distance OK 0.56s
8/31 tracker:functional / graph OK 1.04s
9/31 tracker:functional / concurrent-query OK 1.48s
10/31 tracker:functional / notifier OK 1.12s
11/31 tracker:functional / collation OK 0.58s
12/31 tracker:functional / ontology-changes OK 0.66s
13/31 tracker:functional / cli OK 1.42s
14/31 tracker:functional+ipc / bus-query-cancellation FAIL 0.86s (killed by signal 5 SIGTRAP)
15/31 tracker:gvdb / gvdb OK 0.02s
16/31 tracker:common / date-time OK 0.03s
17/31 tracker:common / file-utils OK 0.04s
18/31 tracker:common / type-utils OK 0.03s
19/31 tracker:common / utils OK 0.01s
20/31 tracker:data / crc32 OK 0.04s
21/31 tracker:data / ontology-change OK 0.56s
22/31 tracker:data / sparql-blank OK 0.14s
23/31 tracker:data / insert-or-replace OK 0.49s
24/31 tracker:data / service OK 2.59s
25/31 tracker:data+slow / ontology OK 2.94s
26/31 tracker:data+slow / sparql OK 5.35s
27/31 tracker:fts / fts OK 0.23s
28/31 tracker:resource / resource OK 0.08s
29/31 tracker:sparql / sparql OK 0.52s
30/31 tracker:sparql / fd OK 1.58s
31/31 tracker:sparql / statement OK 0.58s
Ok: 30
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 0
Timeout: 0
The output from the failed tests:
14/31 tracker:functional+ipc / bus-query-cancellation FAIL 0.86s (killed by signal 5 SIGTRAP)
--- command ---
18:10:14 GI_TYPELIB_PATH='/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_64-redhat-linux-gnu/src/libtracker-sparql' PYTHONPATH='/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/utils' TRACKER_FUNCTIONAL_TEST_CONFIG='/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_64-redhat-linux-gnu/tests/functional-tests/configuration.json' TRACKER_LANGUAGE_STOP_WORDS_DIR='/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/src/libtracker-common/stop-words' LD_LIBRARY_PATH='/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_64-redhat-linux-gnu/src/libtracker-sparql' LANG='en_GB.utf-8' /home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_64-redhat-linux-gnu/tests/functional-tests/ipc/test-bus-query-cancellation
--- stdout ---
# random seed: R02S1582110280585ffcafdfb57076e9b898
1..1
# Start of libtracker-sparql tests
# Start of tracker tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=737023
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
# Tracker-DEBUG: Checking for adequate disk space to create databases, 67.3 GB remaining, 5.2 MB required as a minimum
# Tracker-INFO: Applying ontologies from /home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/src/ontologies/nepomuk
# Tracker-INFO: Saving DB locale as: 'en_GB.utf-8'
Bail out! GLib-GIO-FATAL-CRITICAL: g_task_return_error: assertion '!task->ever_returned' failed
--- stderr ---
(/home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_64-redhat-linux-gnu/tests/functional-tests/ipc/test-bus-query-cancellation:309199): GLib-GIO-CRITICAL **: 19:10:15.362: g_task_return_error: assertion '!task->ever_returned' failed
-------
Full log written to /home/tkloczko/rpmbuild/BUILD/tracker-2.99.3/x86_64-redhat-linux-gnu/meson-logs/testlog.txt
A connection to the bus can't be made
And I think that I know why it fails.
[tkloczko@barrel tests]$ grep -r g_assert -w
gvdb/gvdb-test.c: g_assert (unlink (filename) == 0);
gvdb/gvdb-test.c: g_assert (gvdb_table_write_contents (root_table, DB_FILE, FALSE, NULL));
gvdb/gvdb-test.c: g_assert (gvdb_table_write_contents (root_table, DB_FILE, FALSE, NULL));
gvdb/gvdb-test.c: g_assert (root_level);
gvdb/gvdb-test.c: g_assert (ns_level);
gvdb/gvdb-test.c: g_assert (keys);
gvdb/gvdb-test.c: g_assert (gvdb_table_has_value (ns_level, key));
gvdb/gvdb-test.c: g_assert (gvdb_table_write_contents (table, filename, use_byteswap, NULL));
gvdb/gvdb-test.c: g_assert (read);
gvdb/gvdb-test.c: g_assert (gvdb_table_is_valid (read));
gvdb/gvdb-test.c: g_assert (gvdb_table_has_value (read, "key1"));
gvdb/gvdb-test.c: g_assert (g_variant_equal (value, expected));
gvdb/gvdb-test.c: g_assert (gvdb_table_write_contents (table, DB_FILE, FALSE, NULL));
gvdb/gvdb-test.c: g_assert (read && gvdb_table_is_valid (read));
gvdb/gvdb-test.c: g_assert (gvdb_table_has_value (read_ref, "key1"));
gvdb/gvdb-test.c: g_assert (g_variant_equal (value, expected));
gvdb/gvdb-test.c: g_assert (error);
libtracker-common/tracker-date-time-test.c: g_assert (result != NULL && strncmp (result, "2008-06-16T23:53:10Z", 19) == 0);
libtracker-common/tracker-date-time-test.c: g_assert (!error);
libtracker-common/tracker-date-time-test.c: g_assert (!error);
libtracker-common/tracker-date-time-test.c: g_assert (!error);
libtracker-common/tracker-date-time-test.c: g_assert (error);
libtracker-common/tracker-date-time-test.c: g_assert (error);
libtracker-common/tracker-date-time-test.c: g_assert (error);
libtracker-common/tracker-date-time-test.c: g_assert (error);
libtracker-common/tracker-date-time-test.c: g_assert (!error);
libtracker-common/tracker-date-time-test.c: g_assert (!error);
libtracker-common/tracker-date-time-test.c: g_assert (!error);
libtracker-common/tracker-file-utils-test.c: g_assert (g_file_test (filename, G_FILE_TEST_EXISTS));
libtracker-common/tracker-file-utils-test.c: g_assert (string_in_list (result, "/home"));
libtracker-common/tracker-file-utils-test.c: g_assert (string_in_list (result, "/tmp"));
libtracker-common/tracker-file-utils-test.c: g_assert (string_in_list (result, "/usr"));
libtracker-common/tracker-file-utils-test.c: g_assert (string_in_list (result, "/home/user/MyDocs"));
libtracker-common/tracker-file-utils-test.c: g_assert (string_in_list (result, "/home/user/MyDocs/.sounds"));
libtracker-common/tracker-file-utils-test.c: g_assert (string_in_list (result, "/home/user/MyDocs/visible"));
libtracker-common/tracker-file-utils-test.c: g_assert (string_in_list (result, "/home/user/MyDocs"));
libtracker-common/tracker-file-utils-test.c: g_assert (!result);
libtracker-common/tracker-file-utils-test.c: g_assert (!result);
libtracker-common/tracker-file-utils-test.c: g_assert (!result);
libtracker-common/tracker-file-utils-test.c: g_assert (f);
libtracker-common/tracker-file-utils-test.c: g_assert (f);
libtracker-common/tracker-file-utils-test.c: g_assert (!f);
libtracker-common/tracker-file-utils-test.c: g_assert (tracker_file_system_has_enough_space ("/home", 1, FALSE));
libtracker-common/tracker-file-utils-test.c: g_assert (tracker_file_system_has_enough_space ("/home", 1, TRUE));
libtracker-common/tracker-file-utils-test.c: //g_assert (!tracker_file_system_has_enough_space ("/home", G_MAXULONG, FALSE));
libtracker-common/tracker-file-utils-test.c: g_assert (tracker_file_is_hidden (f));
libtracker-common/tracker-file-utils-test.c: g_assert (!tracker_file_is_hidden (f));
libtracker-common/tracker-file-utils-test.c: g_assert (!tracker_file_cmp (one, two));
libtracker-common/tracker-file-utils-test.c: g_assert (tracker_file_cmp (two, three));
libtracker-common/tracker-parser-test.c: g_assert ((nwords == testdata->expected_nwords) ||
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("one", input));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("two", input));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("three", input));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("four", input));
libtracker-common/tracker-type-utils-test.c: g_assert (!tracker_string_in_gslist ("five", input));
libtracker-common/tracker-type-utils-test.c: g_assert (result != NULL);
libtracker-common/tracker-type-utils-test.c: g_assert (result);
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("one", result));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("two", result));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("three", result));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("four", result));
libtracker-common/tracker-type-utils-test.c: g_assert (result);
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("one", result));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_string_in_gslist ("two", result));
libtracker-common/tracker-type-utils-test.c: g_assert (!tracker_string_in_gslist ("three", result));
libtracker-common/tracker-type-utils-test.c: g_assert (!tracker_string_in_gslist ("four", result));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_gslist_with_string_data_equal (list1, list1));
libtracker-common/tracker-type-utils-test.c: g_assert (!tracker_gslist_with_string_data_equal (list1, shorty));
libtracker-common/tracker-type-utils-test.c: g_assert (!tracker_gslist_with_string_data_equal (shorty, list1));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_gslist_with_string_data_equal (list1, list2));
libtracker-common/tracker-type-utils-test.c: g_assert (tracker_gslist_with_string_data_equal (list2, list1));
libtracker-common/tracker-type-utils-test.c: g_assert (!tracker_gslist_with_string_data_equal (list1, list3));
libtracker-common/tracker-type-utils-test.c: g_assert (!tracker_gslist_with_string_data_equal (list3, list1));
libtracker-common/tracker-utils-test.c: g_assert (tracker_is_empty_string (NULL));
libtracker-common/tracker-utils-test.c: g_assert (tracker_is_empty_string (""));
libtracker-common/tracker-utils-test.c: g_assert (!tracker_is_empty_string ("Eeeeepa not empty"));
libtracker-common/tracker-utils-test.c: g_assert (tracker_is_blank_string (NULL));
libtracker-common/tracker-utils-test.c: g_assert (tracker_is_blank_string (""));
libtracker-common/tracker-utils-test.c: g_assert (tracker_is_blank_string (" "));
libtracker-common/tracker-utils-test.c: g_assert (tracker_is_blank_string (" "));
libtracker-common/tracker-utils-test.c: g_assert (!tracker_is_blank_string (" - "));
libtracker-common/tracker-utils-test.c: g_assert (!tracker_is_blank_string (" -"));
libtracker-common/tracker-utils-test.c: g_assert (!tracker_is_blank_string ("- "));
libtracker-common/tracker-utils-test.c: g_assert (!tracker_is_blank_string ("nonono"));
libtracker-data/tracker-service-test.c: g_assert (error != NULL);
libtracker-data/tracker-service-test.c: g_assert (error != NULL && error->domain == TRACKER_SPARQL_ERROR);
libtracker-data/tracker-sparql-blank-test.c: g_assert (updates != NULL);
libtracker-data/tracker-sparql-blank-test.c: g_assert (solutions[0][1] != NULL);
libtracker-data/tracker-sparql-blank-test.c: g_assert (solutions[1][1] != NULL);
libtracker-data/tracker-sparql-blank-test.c: g_assert (solutions[2][1] != NULL);
libtracker-data/tracker-sparql-test.c: g_assert (error != NULL);
libtracker-data/tracker-sparql-test.c: g_assert (error != NULL && error->domain == TRACKER_SPARQL_ERROR);
libtracker-data/tracker-sparql-test.c: g_assert (error != NULL);
libtracker-sparql/tracker-fd-test.c: g_assert (!tracker_sparql_cursor_next (cursor_glib, NULL, NULL));
libtracker-sparql/tracker-fd-test.c: g_assert (!tracker_sparql_cursor_next (cursor_fd, NULL, NULL));
libtracker-sparql/tracker-fd-test.c: g_assert (!cursor);
libtracker-sparql/tracker-fd-test.c: g_assert (error != NULL && error->domain == TRACKER_SPARQL_ERROR);
libtracker-sparql/tracker-fd-test.c: g_assert (tracker_sparql_cursor_next (cursor, NULL, NULL));
libtracker-sparql/tracker-fd-test.c: g_assert (cursor);
libtracker-sparql/tracker-fd-test.c: g_assert (!tracker_sparql_cursor_next (cursor, NULL, NULL));
libtracker-sparql/tracker-fd-test.c: g_assert (tracker_sparql_cursor_get_n_columns (cursor) == 1);
libtracker-sparql/tracker-fd-test.c: g_assert (cursor);
libtracker-sparql/tracker-fd-test.c: g_assert (tracker_sparql_cursor_next (cursor, NULL, NULL));
libtracker-sparql/tracker-fd-test.c: g_assert (error != NULL);
libtracker-sparql/tracker-fd-test.c: g_assert (error != NULL && error->domain == TRACKER_SPARQL_ERROR);
libtracker-sparql/tracker-fd-test.c: g_assert (results);
libtracker-sparql/tracker-fd-test.c: g_assert (results);
libtracker-sparql/tracker-fd-test.c: g_assert (error != NULL && error->domain == TRACKER_SPARQL_ERROR);
libtracker-sparql/tracker-fd-test.c: g_assert (!results);
libtracker-sparql/tracker-fd-test.c: g_assert (results);
libtracker-sparql/tracker-fd-test.c: /* g_assert (!error); */
libtracker-sparql/tracker-fd-test.c: g_assert (cursor_fd != NULL);
libtracker-sparql/tracker-fd-test.c: g_assert (cursor_glib != NULL);
libtracker-sparql/tracker-fd-test.c: g_assert (!tracker_sparql_cursor_next (cursor_fd, NULL, NULL));
libtracker-sparql/tracker-fd-test.c: g_assert (!tracker_sparql_cursor_next (cursor_glib, NULL, NULL));
libtracker-sparql/tracker-fd-test.c: g_assert (error);
libtracker-sparql/tracker-fd-test.c: g_assert (error);
libtracker-sparql/tracker-fd-test.c: g_assert (results != NULL);
libtracker-sparql/tracker-resource-test.c: g_assert (tracker_resource_get_values (resource, "http://example.com/0") == NULL);
libtracker-sparql/tracker-resource-test.c: g_assert (tracker_resource_get_first_double (resource, "http://example.com/0") == 0.0);
libtracker-sparql/tracker-resource-test.c: g_assert (tracker_resource_get_first_int (resource, "http://example.com/0") == 0);
libtracker-sparql/tracker-resource-test.c: g_assert (tracker_resource_get_first_int64 (resource, "http://example.com/0") == 0);
libtracker-sparql/tracker-resource-test.c: g_assert (tracker_resource_get_first_string (resource, "http://example.com/0") == NULL);
libtracker-sparql/tracker-resource-test.c: g_assert (tracker_resource_get_first_uri (resource, "http://example.com/0") == NULL);
libtracker-sparql/tracker-resource-test.c: g_assert (tracker_resource_get_first_double (resource, "http://example.com/1") == 0.6);
libtracker-sparql/tracker-resource-test.c: g_assert (tracker_resource_get_first_int64 (resource, "http://example.com/3") == 123456789);
libtracker-sparql/tracker-resource-test.c: g_assert (G_VALUE_HOLDS (list->next->next->data, RANDOM_GVALUE_TYPE));
libtracker-sparql/tracker-sparql-test.c: g_assert (result != NULL);
libtracker-sparql/tracker-sparql-test.c: g_assert (cursor != NULL);
libtracker-sparql/tracker-sparql-test.c: g_assert (query < G_N_ELEMENTS (queries));
libtracker-sparql/tracker-sparql-test.c: g_assert (cancellables[query] != NULL);
libtracker-sparql/tracker-sparql-test.c: g_assert (cursor != NULL);
libtracker-sparql/tracker-sparql-test.c: g_assert (connection != NULL);
g_assert ()
should not be used in test units because it blocks use those units when glib is build with G_DISABLE_ASSERT
(I'm using that kind of binary to generate production executables).
From https://developer.gnome.org/glib/stable/glib-Testing.html#g-assert:
"The macro can be turned off in final releases of code by defining G_DISABLE_ASSERT
when compiling the application, so code must not depend on any side effects from expr . Similarly, it must not be used in unit tests, otherwise the unit tests will be ineffective if compiled with G_DISABLE_ASSERT. Use g_assert_true() and related macros in unit tests instead".