test: signalqueue: add explicit cast to bool

React to a GCC7.2 behavioral differences where
assert(sdbusplus::message::message) no longer compiles.

sdbusplus::message::message implements operator bool which
prior to GCC7.2 was emitted implicitly.  Add an explicit
cast to bool where required.

Tested: Built repository using GCC 7.2
Change-Id: I49fb05d616ba1f790ef68365983b1f85aa91e46a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
1 file changed
tree: 2939c52d8d54143b744511dffda5f7dcd59a702b
  1. example/
  2. test/
  3. .gitignore
  4. app.cpp
  5. argument.mako.cpp
  6. bootstrap.sh
  7. configure.ac
  8. errors.cpp
  9. errors.hpp
  10. events.hpp
  11. functor.cpp
  12. functor.hpp
  13. gen_serialization.mako.hpp
  14. generate_makefile.sh
  15. generated.mako.cpp
  16. LICENSE
  17. Makefile.am
  18. Makefile.extra.in
  19. manager.cpp
  20. manager.hpp
  21. method.mako.cpp
  22. pimgen.py
  23. README.md
  24. serialize.hpp
  25. signature.mako.cpp
  26. types.hpp
  27. utils.hpp
README.md

Phosphor Inventory Manager (PIM) is an implementation of the xyz.openbmc_project.Inventory.Manager DBus interface, and supporting tools. PIM uses a combination of build-time YAML files and run-time calls to the Notify method of the Manager interface to provide a generalized inventory state management solution.

YAML

PIM includes a YAML parser (pimgen.py). For PIM to do anything useful, a set of YAML files must be provided externally that tell it what to do. Examples can be found in the examples directory.

The following top level YAML tags are supported:

  • description - An optional description of the file.
  • events - One or more events that PIM should monitor.

events

Supported event tags are:

  • name - A globally unique event name.
  • description - An optional description of the event.
  • type - The event type. Supported types are: match and startup.
  • actions - The responses to the event.

Subsequent tags are defined by the event type.


match

Supported match tags are:

  • signatures - A DBus match specification.
  • filters - Filters to apply when a match occurs.

startup

Supported startup tags are:

  • filters - Filters to apply at startup.

filters

Supported filter tags are:

  • name - The filter to use.

Subsequent tags are defined by the filter type.

The available filters provided by PIM are:

  • propertyChangedTo - Only match events when the specified property has the specified value.
  • propertyIs - Only match events when the specified property has the specified value.

propertyChangedTo

The property under test is obtained from an sdbus message generated from an org.freedesktop.DBus.Properties.PropertiesChanged signal payload.

Supported arguments for the propertyChangedTo filter are:

  • interface - The interface hosting the property to be checked.
  • property - The property to check.
  • value - The value to check.

propertyIs

The property under test is obtained by invoking org.freedesktop.Properties.Get on the specified interface.

Supported arguments for the propertyIs filter are:

  • path - The object hosting the property to be checked.
  • interface - The interface hosting the property to be checked.
  • property - The property to check.
  • value - The value to check.
  • service - An optional DBus service name.

The service argument is optional. If provided that service will be called explicitly. If omitted, the service will be obtained with an xyz.openbmc_project.ObjectMapper lookup.

propertyIs can be used in an action condition context when the action operates on a dbus object path.


actions

Supported action tags are:

  • name - The action to perform.

Subsequent tags are defined by the action type.

The available actions provided by PIM are:

  • destroyObject - Destroy the specified DBus object.
  • setProperty - Set the specified property on the specified DBus object.

destroyObject

Supported arguments for the destroyObject action are:

  • paths - The paths of the objects to remove from DBus.
  • conditions - An array of conditions.

Conditions are tested and logically ANDed. If the conditions do not pass, the object is not destroyed. Any condition that accepts a path parameter is supported.


setProperty

Supported arguments for the setProperty action are:

  • interface - The interface hosting the property to be set.
  • property - The property to set.
  • paths - The objects hosting the property to be set.
  • value - The value to set.
  • conditions - An array of conditions.

Conditions are tested and logically ANDed. If the conditions do not pass, the property is not set. Any condition that accepts a path parameter is supported.


createObjects

Supported arguments for the createObjects action are:

  • objs - A dictionary of objects to create.

Building

After running pimgen.py, build PIM using the following steps:

    ./bootstrap.sh
    ./configure ${CONFIGURE_FLAGS}
    make

To clean the repository run:

 ./bootstrap.sh clean