Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 0.20240321.x
  • main
  • v0.20231013.x
  • wip/case_insensitive_fs
  • wip/denittis/line_based
  • wip/denittis/portal_helper
  • wip/denittis/t17372
  • wip/denittis/t20052
  • wip/denittis/t20177
  • wip/denittis/t7017
  • wip/denittis/tasks239
  • wip/denittis/up_libcapsule
  • wip/diagnose-task724
  • wip/fix_archlinux_ci
  • wip/flatpak_exports_for_run_host
  • wip/gameoverlayrenderer
  • wip/input-device-diagnostic
  • wip/input-portal
  • wip/issue18
  • wip/luigipiucco/nixos
  • wip/protected/ci
  • wip/protected/scout-on-soldier
  • wip/protected/smcv-ci
  • wip/protected/smcv-merge-slr
  • wip/protected/task679
  • wip/refi64/check-steam-running
  • wip/refi64/ci-coverage-demo
  • wip/refi64/ci-coverage-expose
  • wip/refi64/mr_template_test
  • wip/refi64/openxr
  • wip/refi64/openxr-rt-pv
  • wip/refi64/openxr-socket
  • wip/refi64/openxr-sysinfo
  • wip/refi64/vk-layers
  • wip/regenerate-ldso-cache
  • wip/shorten_socket
  • wip/smcv/always-copy-runtime
  • wip/smcv/ci
  • wip/smcv/clang
  • wip/smcv/delete-in-background
  • wip/smcv/dev-lib-symlinks
  • wip/smcv/diagnose-sfl10602
  • wip/smcv/diffable
  • wip/smcv/doc
  • wip/smcv/docs
  • wip/smcv/fex-3
  • wip/smcv/gcc11
  • wip/smcv/guessed-library-arch
  • wip/smcv/inspect-library
  • wip/smcv/into-library
  • wip/smcv/ld-so-wrapper
  • wip/smcv/lxc
  • wip/smcv/no-nvidia-pkcs11
  • wip/smcv/pv-wrap-to-journal
  • wip/smcv/refcount-locks
  • wip/smcv/relocatable-bin
  • wip/smcv/spawn-really-async
  • wip/smcv/staging
  • wip/smcv/steam-portal
  • wip/smcv/task149-nonfhs
  • wip/smcv/task212-basename
  • wip/smcv/task370-debug
  • wip/smcv/test-diagnostics
  • wip/smcv/variant-init-statically
  • wip/smcv/vulkan-1-1
  • wip/sr640
  • wip/sr684
  • wip/task293-v1
  • wip/task342-3
  • wip/task466
  • wip/task466-more
  • wip/task481-test
  • wip/task488-test
  • wip/task595
  • wip/task634
  • wip/task647
  • wip/task88
  • wip/task88-pre
  • wip/vulkan_shaders
  • wip/xytovl/openxr
  • pressure-vessel-v0.20180430.0
  • pressure-vessel-v0.20180517.0
  • pressure-vessel-v0.20180517.1
  • pressure-vessel-v0.20180518.0
  • pressure-vessel-v0.20180518.1
  • pressure-vessel-v0.20190510.0
  • pressure-vessel-v0.20190815.0
  • pressure-vessel-v0.20190819.0
  • pressure-vessel-v0.20190820.0
  • pressure-vessel-v0.20190822.0
  • pressure-vessel-v0.20190823.0
  • pressure-vessel-v0.20190912.0
  • pressure-vessel-v0.20190926.0
  • pressure-vessel-v0.20190927.0
  • pressure-vessel-v0.20191112.0
  • pressure-vessel-v0.20191112.1
  • pressure-vessel-v0.20191115.0
  • pressure-vessel-v0.20191216.0
  • pressure-vessel-v0.20200108.0
  • pressure-vessel-v0.20200331.0
  • pressure-vessel-v0.20200624.0
  • pressure-vessel-v0.20200708.0
  • pressure-vessel-v0.20200709.0
  • pressure-vessel-v0.20200805.0
  • pressure-vessel-v0.20200819.0
  • pressure-vessel-v0.20200908.0
  • pressure-vessel-v0.20200909.0
  • steamrt/0.20190926.0-0+steamrt1.2
  • v0.20190717.0
  • v0.20190801.0
  • v0.20190802.0
  • v0.20190806.0
  • v0.20190816.0
  • v0.20190820.0
  • v0.20190820.1
  • v0.20190822.0
  • v0.20190909.0
  • v0.20190926.0
  • v0.20190926.1
  • v0.20191024.0
  • v0.20191120.0
  • v0.20191205.0
  • v0.20191209.0
  • v0.20200108.0
  • v0.20200109.0
  • v0.20200306.0
  • v0.20200331.0
  • v0.20200331.1
  • v0.20200415.0
  • v0.20200624.0
  • v0.20200908.0
  • v0.20200908.1
  • v0.20200914.0
  • v0.20201002.0
  • v0.20201007.0
  • v0.20201022.0
  • v0.20201124.0
  • v0.20201203.0
  • v0.20210105.0
  • v0.20210114.0
  • v0.20210126.0
  • v0.20210201.0
  • v0.20210203.0
  • v0.20210305.0
  • v0.20210312.0
  • v0.20210317.0
  • v0.20210331.0
  • v0.20210415.0
  • v0.20210430.0
  • v0.20210518.0
  • v0.20210608.0
  • v0.20210608.1
  • v0.20210608.2
  • v0.20210608.3
  • v0.20210617.0
  • v0.20210617.1
  • v0.20210630.0
  • v0.20210722.0
  • v0.20210806.0
  • v0.20210809.0
  • v0.20210809.1
  • v0.20210820.0
  • v0.20210906.0
  • v0.20210906.1
  • v0.20210906.2
  • v0.20211027.0
  • v0.20211207.0
  • v0.20220107.0
  • v0.20220111.0
  • v0.20220119.0
  • v0.20220131.0
  • v0.20220311.0
  • v0.20220315.0
  • v0.20220420.0
  • v0.20220601.0
  • v0.20220620.0
  • v0.20220624.0
  • v0.20220725.0
  • v0.20220725.1
  • v0.20220726.0
180 results

Target

Select target project
  • steamrt/steam-runtime-tools
1 result
Select Git revision
  • 0.20240321.x
  • main
  • v0.20231013.x
  • wip/case_insensitive_fs
  • wip/denittis/line_based
  • wip/denittis/portal_helper
  • wip/denittis/t17372
  • wip/denittis/t20052
  • wip/denittis/t20177
  • wip/denittis/t7017
  • wip/denittis/tasks239
  • wip/denittis/up_libcapsule
  • wip/diagnose-task724
  • wip/fix_archlinux_ci
  • wip/flatpak_exports_for_run_host
  • wip/gameoverlayrenderer
  • wip/input-device-diagnostic
  • wip/input-portal
  • wip/issue18
  • wip/luigipiucco/nixos
  • wip/protected/ci
  • wip/protected/scout-on-soldier
  • wip/protected/smcv-ci
  • wip/protected/smcv-merge-slr
  • wip/protected/task679
  • wip/refi64/check-steam-running
  • wip/refi64/ci-coverage-demo
  • wip/refi64/ci-coverage-expose
  • wip/refi64/mr_template_test
  • wip/refi64/openxr
  • wip/refi64/openxr-rt-pv
  • wip/refi64/openxr-socket
  • wip/refi64/openxr-sysinfo
  • wip/refi64/vk-layers
  • wip/regenerate-ldso-cache
  • wip/shorten_socket
  • wip/smcv/always-copy-runtime
  • wip/smcv/ci
  • wip/smcv/clang
  • wip/smcv/delete-in-background
  • wip/smcv/dev-lib-symlinks
  • wip/smcv/diagnose-sfl10602
  • wip/smcv/diffable
  • wip/smcv/doc
  • wip/smcv/docs
  • wip/smcv/fex-3
  • wip/smcv/gcc11
  • wip/smcv/guessed-library-arch
  • wip/smcv/inspect-library
  • wip/smcv/into-library
  • wip/smcv/ld-so-wrapper
  • wip/smcv/lxc
  • wip/smcv/no-nvidia-pkcs11
  • wip/smcv/pv-wrap-to-journal
  • wip/smcv/refcount-locks
  • wip/smcv/relocatable-bin
  • wip/smcv/spawn-really-async
  • wip/smcv/staging
  • wip/smcv/steam-portal
  • wip/smcv/task149-nonfhs
  • wip/smcv/task212-basename
  • wip/smcv/task370-debug
  • wip/smcv/test-diagnostics
  • wip/smcv/variant-init-statically
  • wip/smcv/vulkan-1-1
  • wip/sr640
  • wip/sr684
  • wip/task293-v1
  • wip/task342-3
  • wip/task466
  • wip/task466-more
  • wip/task481-test
  • wip/task488-test
  • wip/task595
  • wip/task634
  • wip/task647
  • wip/task88
  • wip/task88-pre
  • wip/vulkan_shaders
  • wip/xytovl/openxr
  • pressure-vessel-v0.20180430.0
  • pressure-vessel-v0.20180517.0
  • pressure-vessel-v0.20180517.1
  • pressure-vessel-v0.20180518.0
  • pressure-vessel-v0.20180518.1
  • pressure-vessel-v0.20190510.0
  • pressure-vessel-v0.20190815.0
  • pressure-vessel-v0.20190819.0
  • pressure-vessel-v0.20190820.0
  • pressure-vessel-v0.20190822.0
  • pressure-vessel-v0.20190823.0
  • pressure-vessel-v0.20190912.0
  • pressure-vessel-v0.20190926.0
  • pressure-vessel-v0.20190927.0
  • pressure-vessel-v0.20191112.0
  • pressure-vessel-v0.20191112.1
  • pressure-vessel-v0.20191115.0
  • pressure-vessel-v0.20191216.0
  • pressure-vessel-v0.20200108.0
  • pressure-vessel-v0.20200331.0
  • pressure-vessel-v0.20200624.0
  • pressure-vessel-v0.20200708.0
  • pressure-vessel-v0.20200709.0
  • pressure-vessel-v0.20200805.0
  • pressure-vessel-v0.20200819.0
  • pressure-vessel-v0.20200908.0
  • pressure-vessel-v0.20200909.0
  • steamrt/0.20190926.0-0+steamrt1.2
  • v0.20190717.0
  • v0.20190801.0
  • v0.20190802.0
  • v0.20190806.0
  • v0.20190816.0
  • v0.20190820.0
  • v0.20190820.1
  • v0.20190822.0
  • v0.20190909.0
  • v0.20190926.0
  • v0.20190926.1
  • v0.20191024.0
  • v0.20191120.0
  • v0.20191205.0
  • v0.20191209.0
  • v0.20200108.0
  • v0.20200109.0
  • v0.20200306.0
  • v0.20200331.0
  • v0.20200331.1
  • v0.20200415.0
  • v0.20200624.0
  • v0.20200908.0
  • v0.20200908.1
  • v0.20200914.0
  • v0.20201002.0
  • v0.20201007.0
  • v0.20201022.0
  • v0.20201124.0
  • v0.20201203.0
  • v0.20210105.0
  • v0.20210114.0
  • v0.20210126.0
  • v0.20210201.0
  • v0.20210203.0
  • v0.20210305.0
  • v0.20210312.0
  • v0.20210317.0
  • v0.20210331.0
  • v0.20210415.0
  • v0.20210430.0
  • v0.20210518.0
  • v0.20210608.0
  • v0.20210608.1
  • v0.20210608.2
  • v0.20210608.3
  • v0.20210617.0
  • v0.20210617.1
  • v0.20210630.0
  • v0.20210722.0
  • v0.20210806.0
  • v0.20210809.0
  • v0.20210809.1
  • v0.20210820.0
  • v0.20210906.0
  • v0.20210906.1
  • v0.20210906.2
  • v0.20211027.0
  • v0.20211207.0
  • v0.20220107.0
  • v0.20220111.0
  • v0.20220119.0
  • v0.20220131.0
  • v0.20220311.0
  • v0.20220315.0
  • v0.20220420.0
  • v0.20220601.0
  • v0.20220620.0
  • v0.20220624.0
  • v0.20220725.0
  • v0.20220725.1
  • v0.20220726.0
180 results
Show changes
Commits on Source (2)
......@@ -57,6 +57,11 @@
* @library has been found. The value is `null` if the library is
* not available in the system.
*
* messages:
* If present, the value is a string containing diagnostic messages
* that were encountered when attempting to load the library.
* This member will only be available if there were some messages.
*
* issues:
* A string array listing all the @library problems that has been
* found in the running system. For possible values check
......@@ -318,10 +323,20 @@ print_libraries_details (JsonBuilder *builder,
{
if (verbose || srt_library_get_issues (l->data) != SRT_LIBRARY_ISSUES_NONE)
{
const char *messages;
const char * const *missing_symbols;
const char * const *misversioned_symbols;
json_builder_set_member_name (builder, srt_library_get_soname (l->data));
json_builder_begin_object (builder);
messages = srt_library_get_messages (l->data);
if (messages != NULL)
{
json_builder_set_member_name (builder, "messages");
json_builder_add_string_value (builder, messages);
}
json_builder_set_member_name (builder, "path");
json_builder_add_string_value (builder, srt_library_get_absolute_path (l->data));
......@@ -370,10 +385,19 @@ print_graphics_details(JsonBuilder *builder,
for (GList *g = graphics_list; g != NULL; g = g->next)
{
gchar *parameters = srt_graphics_dup_parameters_string (g->data);
const char *messages;
json_builder_set_member_name (builder, parameters);
json_builder_begin_object (builder);
messages = srt_graphics_get_messages (g->data);
if (messages != NULL)
{
json_builder_set_member_name (builder, "messages");
json_builder_add_string_value (builder, messages);
}
json_builder_set_member_name (builder, "renderer");
json_builder_add_string_value (builder, srt_graphics_get_renderer_string (g->data));
json_builder_set_member_name (builder, "version");
......
......@@ -47,7 +47,8 @@ static inline SrtGraphics *_srt_graphics_new (const char *multiarch_tuple,
SrtRenderingInterface rendering_interface,
const gchar *renderer_string,
const gchar *version_string,
SrtGraphicsIssues issues);
SrtGraphicsIssues issues,
const gchar *messages);
/*
* _srt_graphics_hash_key:
......@@ -77,7 +78,8 @@ _srt_graphics_new (const char *multiarch_tuple,
SrtRenderingInterface rendering_interface,
const gchar *renderer_string,
const gchar *version_string,
SrtGraphicsIssues issues)
SrtGraphicsIssues issues,
const gchar *messages)
{
g_return_val_if_fail (multiarch_tuple != NULL, NULL);
return g_object_new (SRT_TYPE_GRAPHICS,
......@@ -87,6 +89,7 @@ _srt_graphics_new (const char *multiarch_tuple,
"rendering-interface", rendering_interface,
"renderer-string", renderer_string,
"version-string", version_string,
"messages", messages,
NULL);
}
......
......@@ -59,6 +59,7 @@ struct _SrtGraphics
SrtWindowSystem window_system;
SrtRenderingInterface rendering_interface;
SrtGraphicsIssues issues;
gchar *messages;
gchar *renderer_string;
gchar *version_string;
};
......@@ -72,6 +73,7 @@ struct _SrtGraphicsClass
enum {
PROP_0,
PROP_ISSUES,
PROP_MESSAGES,
PROP_MULTIARCH_TUPLE,
PROP_WINDOW_SYSTEM,
PROP_RENDERING_INTERFACE,
......@@ -101,6 +103,10 @@ srt_graphics_get_property (GObject *object,
g_value_set_flags (value, self->issues);
break;
case PROP_MESSAGES:
g_value_set_string (value, self->messages);
break;
case PROP_MULTIARCH_TUPLE:
g_value_set_string (value, g_quark_to_string (self->multiarch_tuple));
break;
......@@ -133,6 +139,7 @@ srt_graphics_set_property (GObject *object,
GParamSpec *pspec)
{
SrtGraphics *self = SRT_GRAPHICS (object);
const char *tmp;
switch (prop_id)
{
......@@ -142,6 +149,18 @@ srt_graphics_set_property (GObject *object,
self->issues = g_value_get_flags (value);
break;
case PROP_MESSAGES:
/* Construct-only */
g_return_if_fail (self->messages == NULL);
tmp = g_value_get_string (value);
/* Normalize the empty string (expected to be common) to NULL */
if (tmp != NULL && tmp[0] == '\0')
tmp = NULL;
self->messages = g_strdup (tmp);
break;
case PROP_MULTIARCH_TUPLE:
/* Construct-only */
g_return_if_fail (self->multiarch_tuple == 0);
......@@ -185,6 +204,7 @@ srt_graphics_finalize (GObject *object)
{
SrtGraphics *self = SRT_GRAPHICS (object);
g_free (self->messages);
g_free (self->renderer_string);
g_free (self->version_string);
......@@ -208,6 +228,14 @@ srt_graphics_class_init (SrtGraphicsClass *cls)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
properties[PROP_MESSAGES] =
g_param_spec_string ("messages", "Messages",
"Diagnostic messages produced while checking this "
"graphics stack",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
properties[PROP_MULTIARCH_TUPLE] =
g_param_spec_string ("multiarch-tuple", "Multiarch tuple",
"Which multiarch tuple we are checking, for example "
......@@ -267,6 +295,7 @@ _srt_check_graphics (const char *helpers_path,
{
GPtrArray *argv = NULL;
gchar *output = NULL;
gchar *child_stderr = NULL;
int exit_status = -1;
JsonParser *parser = NULL;
JsonNode *node = NULL;
......@@ -436,7 +465,7 @@ _srt_check_graphics (const char *helpers_path,
NULL, /* child setup */
NULL, /* user data */
&output, /* stdout */
NULL, /* stderr */
&child_stderr,
&exit_status,
&error))
{
......@@ -563,7 +592,8 @@ out:
rendering_interface,
renderer_string,
version_string,
issues);
issues,
child_stderr);
if (parser != NULL)
g_object_unref (parser);
......@@ -571,6 +601,7 @@ out:
g_free (new_version_string);
g_ptr_array_unref (argv);
g_free (output);
g_free (child_stderr);
g_clear_error (&error);
g_free (platformstring);
g_free (filtered_preload);
......@@ -693,3 +724,20 @@ srt_graphics_dup_parameters_string (SrtGraphics *self)
_srt_graphics_window_system_string (self->window_system),
_srt_graphics_rendering_interface_string (self->rendering_interface));
}
/**
* srt_graphics_get_messages:
* @self: a graphics object
*
* Return the diagnostic messages produced while checking this graphics
* stack, if any.
*
* Returns: (nullable) (transfer none): A string, which must not be freed,
* or %NULL if there were no diagnostic messages.
*/
const char *
srt_graphics_get_messages (SrtGraphics *self)
{
g_return_val_if_fail (SRT_IS_GRAPHICS (self), NULL);
return self->messages;
}
......@@ -106,5 +106,5 @@ SrtWindowSystem srt_graphics_get_window_system (SrtGraphics *self);
SrtRenderingInterface srt_graphics_get_rendering_interface (SrtGraphics *self);
const char *srt_graphics_get_version_string (SrtGraphics *self);
const char *srt_graphics_get_renderer_string (SrtGraphics *self);
const char *srt_graphics_get_messages (SrtGraphics *self);
gchar *srt_graphics_dup_parameters_string (SrtGraphics *self);
......@@ -53,6 +53,7 @@ static inline SrtLibrary *_srt_library_new (const char *multiarch_tuple,
const char *absolute_path,
const char *soname,
SrtLibraryIssues issues,
const char *messages,
const char * const *missing_symbols,
const char * const *misversioned_symbols,
const char * const *dependencies);
......@@ -63,6 +64,7 @@ _srt_library_new (const char *multiarch_tuple,
const char *absolute_path,
const char *soname,
SrtLibraryIssues issues,
const char *messages,
const char * const *missing_symbols,
const char * const *misversioned_symbols,
const char * const *dependencies)
......@@ -73,6 +75,7 @@ _srt_library_new (const char *multiarch_tuple,
"absolute-path", absolute_path,
"dependencies", dependencies,
"issues", issues,
"messages", messages,
"missing-symbols", missing_symbols,
"multiarch-tuple", multiarch_tuple,
"soname", soname,
......
......@@ -48,6 +48,7 @@ struct _SrtLibrary
/*< private >*/
GObject parent;
gchar *absolute_path;
gchar *messages;
gchar *soname;
GStrv dependencies;
GStrv missing_symbols;
......@@ -67,6 +68,7 @@ enum {
PROP_ABSOLUTE_PATH,
PROP_DEPENDENCIES,
PROP_ISSUES,
PROP_MESSAGES,
PROP_MISSING_SYMBOLS,
PROP_MULTIARCH_TUPLE,
PROP_SONAME,
......@@ -103,6 +105,10 @@ srt_library_get_property (GObject *object,
g_value_set_flags (value, self->issues);
break;
case PROP_MESSAGES:
g_value_set_string (value, self->messages);
break;
case PROP_MISSING_SYMBOLS:
g_value_set_boxed (value, self->missing_symbols);
break;
......@@ -131,6 +137,7 @@ srt_library_set_property (GObject *object,
GParamSpec *pspec)
{
SrtLibrary *self = SRT_LIBRARY (object);
const char *tmp;
switch (prop_id)
{
......@@ -157,6 +164,18 @@ srt_library_set_property (GObject *object,
self->issues = g_value_get_flags (value);
break;
case PROP_MESSAGES:
/* Construct-only */
g_return_if_fail (self->messages == NULL);
tmp = g_value_get_string (value);
/* Normalize the empty string (expected to be common) to NULL */
if (tmp != NULL && tmp[0] == '\0')
tmp = NULL;
self->messages = g_strdup (tmp);
break;
case PROP_MISSING_SYMBOLS:
/* Construct-only */
g_return_if_fail (self->missing_symbols == NULL);
......@@ -203,6 +222,7 @@ srt_library_finalize (GObject *object)
SrtLibrary *self = SRT_LIBRARY (object);
g_free (self->absolute_path);
g_free (self->messages);
g_free (self->soname);
g_strfreev (self->dependencies);
g_strfreev (self->missing_symbols);
......@@ -235,6 +255,13 @@ srt_library_class_init (SrtLibraryClass *cls)
G_TYPE_STRV,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
properties[PROP_MESSAGES] =
g_param_spec_string ("messages", "Messages",
"Diagnostic messages produced while checking this "
"library",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
properties[PROP_ISSUES] =
g_param_spec_flags ("issues", "Issues", "Problems with this library",
SRT_TYPE_LIBRARY_ISSUES, SRT_LIBRARY_ISSUES_NONE,
......@@ -288,6 +315,23 @@ srt_library_get_absolute_path (SrtLibrary *self)
return self->absolute_path;
}
/**
* srt_library_get_messages:
* @self: a library object
*
* Return the diagnostic messages produced while checking this library,
* if any.
*
* Returns: (nullable) (transfer none): A string, which must not be freed,
* or %NULL if there were no diagnostic messages.
*/
const char *
srt_library_get_messages (SrtLibrary *self)
{
g_return_val_if_fail (SRT_IS_LIBRARY (self), NULL);
return self->messages;
}
/**
* srt_library_get_soname:
* @self: a library
......@@ -443,6 +487,7 @@ _srt_check_library_presence (const char *helpers_path,
{
gchar *helper = NULL;
gchar *output = NULL;
gchar *child_stderr = NULL;
gchar *absolute_path = NULL;
const gchar *argv[] =
{
......@@ -510,7 +555,7 @@ _srt_check_library_presence (const char *helpers_path,
NULL, /* child setup */
NULL, /* user data */
&output, /* stdout */
NULL, /* stderr */
&child_stderr,
&exit_status,
&error))
{
......@@ -599,6 +644,7 @@ out:
absolute_path,
soname,
issues,
child_stderr,
(const char **) missing_symbols,
(const char **) misversioned_symbols,
(const char **) dependencies);
......@@ -611,6 +657,7 @@ out:
g_strfreev (misversioned_symbols);
g_strfreev (dependencies);
g_free (absolute_path);
g_free (child_stderr);
g_free (helper);
g_free (output);
g_free (filtered_preload);
......
......@@ -89,6 +89,7 @@ typedef enum
const char *srt_library_get_absolute_path (SrtLibrary *self);
const char *srt_library_get_soname (SrtLibrary *self);
const char *srt_library_get_messages (SrtLibrary *self);
const char *srt_library_get_multiarch_tuple (SrtLibrary *self);
SrtLibraryIssues srt_library_get_issues (SrtLibrary *self);
const char * const *srt_library_get_missing_symbols (SrtLibrary *self);
......
......@@ -78,6 +78,7 @@ test_object (Fixture *f,
{
SrtGraphics *graphics;
SrtGraphicsIssues issues;
gchar *messages;
gchar *tuple;
gchar *renderer;
gchar *version;
......@@ -87,7 +88,8 @@ test_object (Fixture *f,
SRT_RENDERING_INTERFACE_GL,
SRT_TEST_GOOD_GRAPHICS_RENDERER,
SRT_TEST_GOOD_GRAPHICS_VERSION,
SRT_GRAPHICS_ISSUES_NONE);
SRT_GRAPHICS_ISSUES_NONE,
"");
g_assert_cmpint (srt_graphics_get_issues (graphics), ==,
SRT_GRAPHICS_ISSUES_NONE);
g_assert_cmpstr (srt_graphics_get_multiarch_tuple (graphics), ==,
......@@ -96,16 +98,20 @@ test_object (Fixture *f,
SRT_TEST_GOOD_GRAPHICS_RENDERER);
g_assert_cmpstr (srt_graphics_get_version_string (graphics), ==,
SRT_TEST_GOOD_GRAPHICS_VERSION);
g_assert_cmpstr (srt_graphics_get_messages (graphics), ==, NULL);
g_object_get (graphics,
"messages", &messages,
"multiarch-tuple", &tuple,
"issues", &issues,
"renderer-string", &renderer,
"version-string", &version,
NULL);
g_assert_cmpint (issues, ==, SRT_GRAPHICS_ISSUES_NONE);
g_assert_cmpstr (messages, ==, NULL);
g_assert_cmpstr (tuple, ==, "mock-good");
g_assert_cmpstr (renderer, ==, SRT_TEST_GOOD_GRAPHICS_RENDERER);
g_assert_cmpstr (version, ==, SRT_TEST_GOOD_GRAPHICS_VERSION);
g_free (messages);
g_free (tuple);
g_free (renderer);
g_free (version);
......@@ -165,6 +171,7 @@ test_bad_graphics (Fixture *f,
{
SrtGraphics *graphics = NULL;
SrtGraphicsIssues issues;
gchar *messages;
gchar *tuple;
gchar *renderer;
gchar *version;
......@@ -182,16 +189,22 @@ test_bad_graphics (Fixture *f,
NULL);
g_assert_cmpstr (srt_graphics_get_version_string (graphics), ==,
NULL);
g_assert_cmpstr (srt_graphics_get_messages (graphics), ==,
"Waffle error: 0x2 WAFFLE_ERROR_UNKNOWN: XOpenDisplay failed\n");
g_object_get (graphics,
"messages", &messages,
"multiarch-tuple", &tuple,
"issues", &issues,
"renderer-string", &renderer,
"version-string", &version,
NULL);
g_assert_cmpint (issues, ==, SRT_GRAPHICS_ISSUES_CANNOT_LOAD);
g_assert_cmpstr (messages, ==,
"Waffle error: 0x2 WAFFLE_ERROR_UNKNOWN: XOpenDisplay failed\n");
g_assert_cmpstr (tuple, ==, "mock-bad");
g_assert_cmpstr (renderer, ==, NULL);
g_assert_cmpstr (version, ==, NULL);
g_free (messages);
g_free (tuple);
g_free (renderer);
g_free (version);
......
......@@ -70,6 +70,7 @@ test_object (Fixture *f,
const char * const *misversioned;
const char * const *dependencies;
SrtLibraryIssues issues;
gchar *messages;
gchar *tuple;
gchar *soname;
gchar *absolute_path;
......@@ -84,11 +85,13 @@ test_object (Fixture *f,
"/usr/lib/libz.so.1",
"libz.so.1",
SRT_LIBRARY_ISSUES_NONE,
"",
NULL,
NULL,
NULL);
g_assert_cmpint (srt_library_get_issues (library), ==,
SRT_LIBRARY_ISSUES_NONE);
g_assert_cmpstr (srt_library_get_messages (library), ==, NULL);
g_assert_cmpstr (srt_library_get_multiarch_tuple (library), ==,
"arm-linux-gnueabihf");
g_assert_cmpstr (srt_library_get_soname (library), ==,
......@@ -105,6 +108,7 @@ test_object (Fixture *f,
g_assert_nonnull (dependencies);
g_assert_cmpstr (dependencies[0], ==, NULL);
g_object_get (library,
"messages", &messages,
"multiarch-tuple", &tuple,
"soname", &soname,
"absolute-path", &absolute_path,
......@@ -114,6 +118,7 @@ test_object (Fixture *f,
"issues", &issues,
NULL);
g_assert_cmpint (issues, ==, SRT_LIBRARY_ISSUES_NONE);
g_assert_cmpstr (messages, ==, NULL);
g_assert_cmpstr (tuple, ==, "arm-linux-gnueabihf");
g_assert_cmpstr (soname, ==, "libz.so.1");
g_assert_cmpstr (absolute_path, ==, "/usr/lib/libz.so.1");
......@@ -123,6 +128,7 @@ test_object (Fixture *f,
g_assert_cmpstr (misversioned_mutable[0], ==, NULL);
g_assert_nonnull (dependencies_mutable);
g_assert_cmpstr (dependencies_mutable[0], ==, NULL);
g_free (messages);
g_free (tuple);
g_free (soname);
g_free (absolute_path);
......@@ -136,6 +142,7 @@ test_object (Fixture *f,
"libjpeg.so.62",
SRT_LIBRARY_ISSUES_MISSING_SYMBOLS |
SRT_LIBRARY_ISSUES_MISVERSIONED_SYMBOLS,
"ld.so: libjpeg.so.62: nope\n",
one_missing,
one_misversioned,
two_deps);
......@@ -143,6 +150,8 @@ test_object (Fixture *f,
SRT_LIBRARY_ISSUES_MISSING_SYMBOLS, !=, 0);
g_assert_cmpint (srt_library_get_issues (library) &
SRT_LIBRARY_ISSUES_MISVERSIONED_SYMBOLS, !=, 0);
g_assert_cmpstr (srt_library_get_messages (library), ==,
"ld.so: libjpeg.so.62: nope\n");
g_assert_cmpstr (srt_library_get_multiarch_tuple (library), ==,
"s390x-linux-gnu");
g_assert_cmpstr (srt_library_get_soname (library), ==,
......@@ -163,6 +172,7 @@ test_object (Fixture *f,
g_assert_cmpstr (dependencies[1], ==, two_deps[1]);
g_assert_cmpstr (dependencies[2], ==, NULL);
g_object_get (library,
"messages", &messages,
"multiarch-tuple", &tuple,
"soname", &soname,
"absolute-path", &absolute_path,
......@@ -173,6 +183,7 @@ test_object (Fixture *f,
NULL);
g_assert_cmpint (issues & SRT_LIBRARY_ISSUES_MISSING_SYMBOLS, !=, 0);
g_assert_cmpint (issues & SRT_LIBRARY_ISSUES_MISVERSIONED_SYMBOLS, !=, 0);
g_assert_cmpstr (messages, ==, "ld.so: libjpeg.so.62: nope\n");
g_assert_cmpstr (tuple, ==, "s390x-linux-gnu");
g_assert_cmpstr (soname, ==, "libjpeg.so.62");
g_assert_cmpstr (absolute_path, ==, "/usr/lib/libjpeg.so.62");
......@@ -186,6 +197,7 @@ test_object (Fixture *f,
g_assert_cmpstr (dependencies_mutable[0], ==, two_deps[0]);
g_assert_cmpstr (dependencies_mutable[1], ==, two_deps[1]);
g_assert_cmpstr (dependencies_mutable[2], ==, NULL);
g_free (messages);
g_free (tuple);
g_free (soname);
g_free (absolute_path);
......
......@@ -174,6 +174,8 @@ check_libraries_missing (JsonObject *json_arch)
g_assert_true (json_object_has_member (json_details, "libgio-MISSING-2.0.so.0"));
json_lib = json_object_get_object_member (json_details, "libgio-MISSING-2.0.so.0");
g_assert_true (json_object_has_member (json_lib, "path"));
/* We don't assert about the exact contents of stderr, just that there was some */
g_assert_true (json_object_has_member (json_lib, "messages"));
g_assert_cmpstr (json_object_get_string_member (json_lib, "path"), ==, NULL);
g_assert_true (json_object_has_member (json_lib, "issues"));
array = json_object_get_array_member (json_lib, "issues");
......@@ -277,6 +279,7 @@ check_library_no_errors (JsonObject *json_details,
g_assert_true (json_object_has_member (json_details, library_soname));
json_lib = json_object_get_object_member (json_details, library_soname);
g_assert_true (json_object_has_member (json_lib, "path"));
g_assert_false (json_object_has_member (json_lib, "messages"));
g_assert_cmpstr (json_object_get_string_member (json_lib, "path"), !=, NULL);
g_assert_false (json_object_has_member (json_lib, "issues"));
g_assert_false (json_object_has_member (json_lib, "missing-symbols"));
......@@ -322,6 +325,9 @@ libraries_presence_verbose (Fixture *f,
gchar *expectations_in = g_build_filename (f->srcdir, "expectations", NULL);
const gchar *argv[] =
{
/* We assert that there was nothing on stderr, so don't let
* g_debug() break that assumption */
"env", "G_MESSAGES_DEBUG=",
"steam-runtime-system-info", "--expectations", expectations_in, "--verbose", NULL
};
......