#
0cfa35a5 |
| 23-Jan-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
Fix uninitialized property, aserver instance
Had some
"conditional move or branch depends on uninitialized value",
and digging revealed this. The 'property.py' is modified to zero-initialize the p
Fix uninitialized property, aserver instance
Had some
"conditional move or branch depends on uninitialized value",
and digging revealed this. The 'property.py' is modified to zero-initialize the properties [1].
The newly introduced test cases show that the uninitialized value only occurred on the aserver instance for some reason.
Without this patch, one of these tests would fail.
The patch is more of a band-aid than anything else, since zero-initialization or default constructing sdbusplus::message::object_path is actually not a valid object path [2].
So there needs to be another patch to add some default constructor there.
While doing this, found that the
- interface.server.hpp.mako - interface.aserver.hpp.mako
use a different template to define the properties, which is confusing. Cleaned that up so they declare their properties in the same way.
Tested: Unit tests pass
References: [1] https://en.cppreference.com/w/cpp/language/zero_initialization [2] https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-marshaling-object-path
Change-Id: I6ec5823f24fe9430546fc119e83e647ae2b3f8c9 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
#
dd6efd17 |
| 01-Feb-2025 |
Patrick Williams <patrick@stwcx.xyz> |
meson: reformat with meson formatter
Apply the `meson format` results.
Change-Id: I024144165b08c727dd9621842f1a497830247155 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
|
#
74eea519 |
| 03-Jan-2025 |
Patrick Williams <patrick@stwcx.xyz> |
sdbus++-gen-meson: leverage `install_dir` for custom targets
Meson has had a `install_dir` directive on `custom_target` which allows specifying per-output where the file should be installed. Leverag
sdbus++-gen-meson: leverage `install_dir` for custom targets
Meson has had a `install_dir` directive on `custom_target` which allows specifying per-output where the file should be installed. Leveraging this greatly simplifies the meson in consumers (such as phosphor-dbus-interfaces) and makes the install less error-prone.
The previous method for installing was to use a `install_subdir` call with large exclude lists (so that markdown did not end up in the include tree). The result of this was that many empty directories were created in the include, markdown, and registry install paths.
Using this method reduces by 25% the meson content in phosphor-dbus-interfaces.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I2b03116f517caa75de902ac7e44e6923d6652cad
show more ...
|
#
2a12ae12 |
| 23-Oct-2024 |
Jagpal Singh Gill <paligill@gmail.com> |
add async fd sender receiver for coroutines
Add async sender receiver for file descriptor based events. The user of the async file descriptor needs to initialize a fdio instance and then call next()
add async fd sender receiver for coroutines
Add async sender receiver for file descriptor based events. The user of the async file descriptor needs to initialize a fdio instance and then call next() to get each new event for the fd.
Tested: ``` > meson test -C builddir test_async_fdio ninja: Entering directory `/host/repos/sdbusplus/builddir' ninja: no work to do. 1/1 test_async_fdio OK 6.01s
Ok: 1 Expected Fail: 0 Fail: 0 Unexpected Pass: 0 Skipped: 0 Timeout: 0
Full log written to /host/repos/sdbusplus/builddir/meson-logs/testlog.txt ```
Change-Id: I1b4f16963e6096f30484c4a6df471e64ed24448b Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
show more ...
|
#
a4df19a7 |
| 28-Mar-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
build: Fix requirements for tests and example features
Currently assert checks inside the meson.build files check the presence of the 'tests'/'example' options by using 'get_option(...).enabled()' e
build: Fix requirements for tests and example features
Currently assert checks inside the meson.build files check the presence of the 'tests'/'example' options by using 'get_option(...).enabled()' expression. This is a bug since this expression is only true for the 'enabled' options and in the local build 'tests' and 'example' features are set to 'auto'. To correct the issue use 'get_option(...).allowed()' which returns true both for 'enabled' and 'auto'.
Tested: On the system without boost "meson setup build" now fails with a message: "Boost is required when tests are enabled"
Change-Id: I92b4f5de01f47d27c8fae32b641e4b2083fe5b25 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
#
fcd80ef1 |
| 29-Nov-2023 |
Patrick Williams <patrick@stwcx.xyz> |
Revert "build: use allowed over enabled"
The meson options used here are dependency checks which should be handled by the disabler flow.
This reverts commit dabaffecf4eb345e71ee942a9035ddaa5e0eb8ac
Revert "build: use allowed over enabled"
The meson options used here are dependency checks which should be handled by the disabler flow.
This reverts commit dabaffecf4eb345e71ee942a9035ddaa5e0eb8ac.
Change-Id: Ia81d168d975efc2c97fd0fefcfee624f2571e1e8 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
dabaffec |
| 29-Nov-2023 |
Patrick Williams <patrick@stwcx.xyz> |
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer retur
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer return true for auto features. Instead, the expectation is to use `allowed()` which is true for both enabled and auto.
Switch all uses of `enabled` to `allowed`.
Change-Id: I115a52f288be4115297a848afa241f902f48dec2 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
90f8d9b4 |
| 13-Mar-2023 |
Hannu Lounento <hannu.lounento@vaisala.com> |
Allow propagating exceptions from server methods
sdbusplus calls the D-Bus method implementation functions in such a way that the callstack contains sd_bus C functions from libsystemd, and sdbusplus
Allow propagating exceptions from server methods
sdbusplus calls the D-Bus method implementation functions in such a way that the callstack contains sd_bus C functions from libsystemd, and sdbusplus only catches the specific exceptions that match the errors defined for the D-Bus method before returning execution to the C functions. If any D-Bus method implementation propagates any other exception than the errors the method declares, the C functions in the callstack may leak resources.
There isn't any documentation or other statement that would prohibit exceptions from being thrown / propagated from method implementations. This seems to be a known issue though [1]:
By throwing an exception, you're not making an error return to the calling client, but instead blowing through all of the `sd_bus` C code with your C++ exception and putting your application into an invalid state. At a minimum you are leaking memory.
Thus, catch any exceptions propagated from method implementations and re-throw them from sdbusplus::bus::bus::process*().
Catching and re-throwing avoids resource leaks from sd_bus C functions. And as a consequence it would allow propagating exceptions in the normal way until the caller that is prepared to handle them -- ultimately even up to main(). Propagating exceptions to `main()` allows for terminating the process in a controlled fashion in case unexpected failures, which, in turn, allows for a chance to recover from potential failures modes that persist until application restart (e.g. due to some invalid state stored in RAM).
Also, terminating the application, in which case the D-Bus daemon returns the standard error org.freedesktop.DBus.Error.NoReply to the client, avoids the need to declare an error for internal failures in the D-Bus API. Internal errors in API add little value over org.freedesktop.DBus.Error.NoReply and bloat the API as clients many times can't handle them in any better way than org.freedesktop.DBus.Error.NoReply.
Only std::exceptions are catched (i.e. not `catch (...)`) and propagated to keep the implementation simple. The assumption is that only exceptions (i.e. classes derived from std::exception) are used for reporting errors.
Tested: With the calculator example changed to throw an unexpected exception:
From 914e045d1f92a1730d32f84ac7a74cd867c76760 Mon Sep 17 00:00:00 2001 From: Hannu Lounento <hannu.lounento@vaisala.com> Date: Mon, 13 Mar 2023 15:53:17 +0200 Subject: [PATCH] [dbg] Add a propagating exception to the calculator example
Not to be merged to sdbusplus master but only for RFC / demonstration purposes.
Can be triggered by commands like
busctl --user call net.poettering.Calculator /net/poettering/calculator net.poettering.Calculator Clear busctl --user get-property net.poettering.Calculator /net/poettering/calculator net.poettering.Calculator LastResult busctl --user set-property net.poettering.Calculator /net/poettering/calculator net.poettering.Calculator LastResult x 1
Change-Id: Ie9f47227afe7e0fa9765c602bec987aea71b9b86 Signed-off-by: Hannu Lounento <hannu.lounento@vaisala.com> --- example/calculator-server.cpp | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-)
diff --git a/example/calculator-server.cpp b/example/calculator-server.cpp index aa60662..eba9cc0 100644 --- a/example/calculator-server.cpp +++ b/example/calculator-server.cpp @@ -3,6 +3,7 @@ #include <net/poettering/Calculator/server.hpp> #include <sdbusplus/server.hpp>
+#include <cstdlib> #include <iostream> #include <string_view>
@@ -42,10 +43,22 @@ struct Calculator : Calculator_inherit /** Clear lastResult, broadcast 'Cleared' signal */ void clear() override { - auto v = lastResult(); - lastResult(0); - cleared(v); - return; + throw std::runtime_error{"A propagating exception"}; + } + + int64_t lastResult() const override + { + throw std::runtime_error{"A propagating exception"}; + } + + int64_t lastResult(int64_t /*value*/, bool /*skipSignal*/) override + { + throw std::runtime_error{"A propagating exception"}; + } + + int64_t lastResult(int64_t /*value*/) override + { + throw std::runtime_error{"A propagating exception"}; } };
@@ -71,5 +84,13 @@ int main() Calculator c1{b, path};
// Handle dbus processing forever. - b.process_loop(); + try + { + b.process_loop(); + } + catch (const std::exception& e) + { + std::cerr << "Terminating due to a fatal condition: " << e.what() << std::endl; + return EXIT_FAILURE; + } } -- 2.40.0
1) Built and executed unit tests:
sdbusplus$ rm -rf build/ && CXXFLAGS=-Wno-maybe-uninitialized meson setup build && cd build && ninja && ninja test The Meson build system Version: 0.62.2 Source dir: /path/to/sdbusplus Build dir: /path/to/sdbusplus/build Build type: native build Project name: sdbusplus Project version: 1.0.0 C compiler for the host machine: ccache cc (gcc 12.2.1 "cc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)") C linker for the host machine: cc ld.bfd 2.37-37 C++ compiler for the host machine: ccache c++ (gcc 12.2.1 "c++ (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)") C++ linker for the host machine: c++ ld.bfd 2.37-37 Host machine cpu family: x86_64 Host machine cpu: x86_64 Found pkg-config: /usr/bin/pkg-config (1.8.0) Run-time dependency libsystemd found: YES 250 Program python3 (inflection, yaml, mako) found: YES (/usr/bin/python3) modules: inflection, yaml, mako Run-time dependency Boost found: YES 1.76.0 (/usr) Program sdbus++ found: YES (/path/to/sdbusplus/tools/sdbus++) Program sdbus++ found: YES (overridden) Program sdbus++-gen-meson found: YES (/path/to/sdbusplus/tools/sdbus++-gen-meson) Program sdbus++-gen-meson found: YES (overridden) Header <boost/asio.hpp> has symbol "boost::asio::io_context" : YES Run-time dependency Boost (found: context, coroutine) found: YES 1.76.0 (/usr) Run-time dependency GTest found: YES 1.11.0 Run-time dependency GMock found: YES 1.11.0 Build targets in project: 34
Found ninja-1.10.2 at /usr/bin/ninja [77/77] Linking target example/calculator-client [0/1] Running all tests. 1/21 test_async_task OK 0.03s 2/21 test_bus_list_names OK 0.02s 3/21 test_bus_match OK 0.02s 4/21 test_bus_exception OK 0.02s 5/21 test_exception_sdbus_error OK 0.02s 6/21 test_message_append OK 0.01s 7/21 test_message_native_types OK 0.01s 8/21 test_message_read OK 0.03s 9/21 test_message_types OK 0.02s 10/21 test_unpack_properties OK 0.02s 11/21 test_utility_tuple_to_array OK 0.02s 12/21 test_utility_type_traits OK 0.01s 13/21 test-bus_aio OK 0.01s 14/21 test-vtable OK 0.01s 15/21 test-server OK 0.01s 16/21 test-server-message-variant OK 0.01s 17/21 test_message_call OK 0.07s 18/21 test_event_event OK 0.31s 19/21 test_async_timer OK 0.51s 20/21 test_async_context OK 0.52s 21/21 test_timer OK 18.02s
Ok: 21 Expected Fail: 0 Fail: 0 Unexpected Pass: 0 Skipped: 0 Timeout: 0
[...]
-Wno-maybe-uninitialized was used because the current master 384943be7e81b08ed102abfaa3f2be2ad915e800 ("sdbus++: async: client: fix client_t usage") failed to build with
In file included from /usr/include/gtest/internal/gtest-death-test-internal.h:39, from /usr/include/gtest/gtest-death-test.h:41, from /usr/include/gtest/gtest.h:64, from /usr/include/gmock/internal/gmock-internal-utils.h:47, from /usr/include/gmock/gmock-actions.h:145, from /usr/include/gmock/gmock.h:59, from ../include/sdbusplus/test/sdbus_mock.hpp:6, from ../test/exception/sdbus_error.cpp:4: In copy constructor ‘testing::internal::MatcherBase<T>::MatcherBase(const testing::internal::MatcherBase<T>&) [with T = sd_bus_error*]’, inlined from ‘testing::Matcher<sd_bus_error*>::Matcher(const testing::Matcher<sd_bus_error*>&)’ at /usr/include/gtest/gtest-matchers.h:479:7, inlined from ‘testing::internal::MockSpec<int(sd_bus_error*, int)> sdbusplus::SdBusMock::gmock_sd_bus_error_set_errno(const testing::Matcher<sd_bus_error*>&, const testing::Matcher<int>&)’ at ../include/sdbusplus/test/sdbus_mock.hpp:51:5, inlined from ‘virtual void {anonymous}::SdBusError_NotSetErrno_Test::TestBody()’ at ../test/exception/sdbus_error.cpp:59:5: /usr/include/gtest/gtest-matchers.h:302:33: error: ‘<unnamed>.testing::Matcher<sd_bus_error*>::<unnamed>.testing::internal::MatcherBase<sd_bus_error*>::buffer_’ may be used uninitialized [-Werror=maybe-uninitialized] 302 | : vtable_(other.vtable_), buffer_(other.buffer_) { | ^~~~~~~~~~~~~~~~~~~~~~
on Fedora 36 with
$ gcc --version gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
and
$ dnf info gtest-devel [...] Name : gtest-devel Version : 1.11.0 Release : 2.fc36 Architecture : x86_64
2) Verified no memory leaks were reported by Valgrind anymore:
sdbusplus/build$ valgrind --leak-check=full --show-leak-kinds=all ./example/calculator-server ==61886== Memcheck, a memory error detector ==61886== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==61886== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info ==61886== Command: ./example/calculator-server ==61886==
and called the throwing method:
build$ busctl --user call net.poettering.Calculator /net/poettering/calculator net.poettering.Calculator Clear Call failed: Remote peer disconnected
and verified the process terminates but produces no memory leaks:
Terminating due to a fatal condition: A propagating exception ==61886== ==61886== HEAP SUMMARY: ==61886== in use at exit: 0 bytes in 0 blocks ==61886== total heap usage: 143 allocs, 143 frees, 96,732 bytes allocated ==61886== ==61886== All heap blocks were freed -- no leaks are possible ==61886== ==61886== For lists of detected and suppressed errors, rerun with: -s ==61886== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Similarly reading the `LastResult` property:
build$ valgrind --leak-check=full --show-leak-kinds=all ./example/calculator-server ==36140== Memcheck, a memory error detector ==36140== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==36140== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info ==36140== Command: ./example/calculator-server ==36140==
build$ busctl --user get-property net.poettering.Calculator /net/poettering/calculator net.poettering.Calculator LastResult Failed to get property LastResult on interface net.poettering.Calculator: Remote peer disconnected
Terminating due to a fatal condition: A propagating exception ==36140== ==36140== HEAP SUMMARY: ==36140== in use at exit: 0 bytes in 0 blocks ==36140== total heap usage: 148 allocs, 148 frees, 96,992 bytes allocated ==36140== ==36140== All heap blocks were freed -- no leaks are possible ==36140== ==36140== For lists of detected and suppressed errors, rerun with: -s ==36140== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
and writing the property:
==36383== Memcheck, a memory error detector ==36383== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==36383== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info ==36383== Command: ./example/calculator-server ==36383==
build$ busctl --user set-property net.poettering.Calculator /net/poettering/calculator net.poettering.Calculator LastResult x 1
Terminating due to a fatal condition: A propagating exception ==36383== ==36383== HEAP SUMMARY: ==36383== in use at exit: 0 bytes in 0 blocks ==36383== total heap usage: 146 allocs, 146 frees, 97,010 bytes allocated ==36383== ==36383== All heap blocks were freed -- no leaks are possible ==36383== ==36383== For lists of detected and suppressed errors, rerun with: -s ==36383== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
[1] https://lore.kernel.org/openbmc/YTDvfIn4Z05mGdCx@heinlein/
Change-Id: I014099a91f526a92c0f6646e75b4029513ad19a8 Signed-off-by: Hannu Lounento <hannu.lounento@vaisala.com>
show more ...
|
#
435eb1bd |
| 16-Sep-2022 |
Patrick Williams <patrick@stwcx.xyz> |
async: add sleep_for sender
Sometimes it is useful to do the equivalent of `std::this_thread::sleep_for` in a co-routine context. Add a sender-based implementation to async.
Signed-off-by: Patrick
async: add sleep_for sender
Sometimes it is useful to do the equivalent of `std::this_thread::sleep_for` in a co-routine context. Add a sender-based implementation to async.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I9991eb40b7a1b12e61511f1200bc99fdcdbccf0a
show more ...
|
#
73e278b5 |
| 16-Sep-2022 |
Patrick Williams <patrick@stwcx.xyz> |
async: context: support stopping the context
Up until this point, the async::context would run forever and have no way of exiting the process, which isn't very useful. Add some support for stop con
async: context: support stopping the context
Up until this point, the async::context would run forever and have no way of exiting the process, which isn't very useful. Add some support for stop conditions so that we can ask the context to stop and cleanly exit.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ia5967162fb103d4b4b0490d8cbbef12bdb361bac
show more ...
|
#
d2b00440 |
| 16-Sep-2022 |
Patrick Williams <patrick@stwcx.xyz> |
event: add a simple wrapper around sd-event
In order to facilitate stop-conditions on the async::context, we need to be able to escape the wait on the dbus fd. sd-event will allow us to do this and
event: add a simple wrapper around sd-event
In order to facilitate stop-conditions on the async::context, we need to be able to escape the wait on the dbus fd. sd-event will allow us to do this and also build other co-routine primitives in the future (such as `co_await async::delay(1s)` backed by sd-event timers). Define a simple wrapper around sd-event here which can be leveraged by the async framework.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I945416cbce3c98d98135c42cb7ca249a57cb9a60
show more ...
|
#
2f58b791 |
| 26-Aug-2022 |
Patrick Williams <patrick@stwcx.xyz> |
async: add coroutine task support
Add sdbusplus::async::task<...> template which works with the std::executors proposal (P2300) and test-cases.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> C
async: add coroutine task support
Add sdbusplus::async::task<...> template which works with the std::executors proposal (P2300) and test-cases.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ie63791daeab90ae1cc3862bb30878531b1775fa7
show more ...
|
#
ce8d16d9 |
| 07-Sep-2022 |
Willam A. Kennington III <wak@google.com> |
treewide: Leverage sdbus++-gen-meson
This makes us more consistent with other projects instead of writing meson builds for sdbus++ by hand.
Change-Id: I38b69bc67b6a3d80cda1b508a76e106a50d8ab93 Sign
treewide: Leverage sdbus++-gen-meson
This makes us more consistent with other projects instead of writing meson builds for sdbus++ by hand.
Change-Id: I38b69bc67b6a3d80cda1b508a76e106a50d8ab93 Signed-off-by: Willam A. Kennington III <wak@google.com>
show more ...
|
#
293c8a26 |
| 02-Sep-2022 |
William A. Kennington III <wak@google.com> |
sdbus++: Fix meson dependency generation
All of the generated meson files optionally look for sdbus++ sources that can be plumbed in to allow changes to the generator code to correctly trigger rebui
sdbus++: Fix meson dependency generation
All of the generated meson files optionally look for sdbus++ sources that can be plumbed in to allow changes to the generator code to correctly trigger rebuilds.
This will require adding a new variable prior to generated sources, `sdbusplusplus_depfiles`. You can convert previous meson defitions with the follwing.
``` sdbusplus_dep = dependency('sdbusplus') sdbusplusplus_prog = find_program('sdbus++', native: true) sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', native: true) sdbusplusplus_depfiles = files() if sdbusplus_dep.type_name() == 'internal' sdbusplusplus_depfiles = subproject('sdbusplus').get_variable('sdbusplusplus_depfiles') endif ```
Change-Id: Ic2d5bafdbdd2595be8c44e0e616e590143639f21 Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
#
ea56ec3c |
| 14-Jul-2021 |
Patrick Williams <patrick@stwcx.xyz> |
test: add tests for enum parsing
Add test cases to cover the parsing of enums from generated bindings, including two DISABLED test cases to show the issues reported in openbmc/sdbusplus#52.
Signed-
test: add tests for enum parsing
Add test cases to cover the parsing of enums from generated bindings, including two DISABLED test cases to show the issues reported in openbmc/sdbusplus#52.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I5a01529404c38ae6c30aadbdc7d8e20f3ccbcaab
show more ...
|
#
472b7022 |
| 15-Apr-2021 |
William A. Kennington III <wak@google.com> |
message: Add call_async method
This makes it possible to perform an async method call that is agnostic to the event loop running the sd_bus state machine.
Change-Id: I32bc0fdf89c44cc6bab1c4622b143d
message: Add call_async method
This makes it possible to perform an async method call that is agnostic to the event loop running the sd_bus state machine.
Change-Id: I32bc0fdf89c44cc6bab1c4622b143d6e06098659 Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
#
8a037734 |
| 19-Apr-2021 |
Patrick Williams <patrick@stwcx.xyz> |
build: minor whitespace fix in test/meson.build
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I4bdd98f74f09a8b2194e8c87878947484b3bdb42
|
#
09b88f26 |
| 02-Sep-2020 |
Krzysztof Grobelny <krzysztof.grobelny@intel.com> |
Added utility functions getAllProperties and unpackProperties
Tested: - Added example to verify that functions work correctly - Added new unit tests that are passing - All other tests are stil
Added utility functions getAllProperties and unpackProperties
Tested: - Added example to verify that functions work correctly - Added new unit tests that are passing - All other tests are still passing after this change - Added handling of new type (std::monostate) which can be used as first type in variant to represent that none of the other types was matched
Change-Id: Ic8e7c8d3116d64b94be37147ae8a80ebb5d3811d Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
show more ...
|
#
adf03547 |
| 04-Jun-2020 |
William A. Kennington III <wak@google.com> |
build: Allow for vendored googletest
This makes it easier to run the test suite outside of the CI environment but still attempts to use the system version of googletest first.
Change-Id: I32193f082
build: Allow for vendored googletest
This makes it easier to run the test suite outside of the CI environment but still attempts to use the system version of googletest first.
Change-Id: I32193f08243db2177b8200b0ff7e3e47ef01691f Signed-off-by: William A. Kennington III <wak@google.com> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
5e893b9d |
| 04-Jun-2020 |
William A. Kennington III <wak@google.com> |
build: Add options for tweaking what is built
We don't need to always build tests or examples so make it possible for the user to configure what is built. The default is to automatically build them
build: Add options for tweaking what is built
We don't need to always build tests or examples so make it possible for the user to configure what is built. The default is to automatically build them if possible.
Change-Id: I5cb6b1689c408188f14d1fcbcfb0006c17f1c90d Signed-off-by: William A. Kennington III <wak@google.com> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
617e7492 |
| 18-Jun-2020 |
Patrick Williams <patrick@stwcx.xyz> |
build: simplify gtest/gmock dependencies
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Iae1f3610f11ec9071cec36dd44495de2aec38aaa
|
#
fbc98825 |
| 18-Jun-2020 |
Patrick Williams <patrick@stwcx.xyz> |
build: remove unneeded thread dependency
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I91048a61404011d6a0ca7eb1fad20f3c955203c1
|
#
3a6d5841 |
| 09-Jun-2020 |
Patrick Williams <patrick@stwcx.xyz> |
test: fix boost dependency for bus/aio
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I6d2383398ca3cf8582d64d3a643739b708933c37
|
#
56fcdec5 |
| 08-Jun-2020 |
Andrew Geissler <geissonator@yahoo.com> |
test: add simple aio case
Add a simple test case to confirm we can successfully create an asio::object_server.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I3cee879850a41b2dd87
test: add simple aio case
Add a simple test case to confirm we can successfully create an asio::object_server.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I3cee879850a41b2dd8750e724c6e65c00aded308 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
d0285b92 |
| 01-Jun-2020 |
Patrick Williams <patrick@stwcx.xyz> |
meson: create structure for use as submodule
Some other openbmc projects have set up sdbusplus to use as a meson-subproject. When porting one of them (entity-manager) to use the meson build, I real
meson: create structure for use as submodule
Some other openbmc projects have set up sdbusplus to use as a meson-subproject. When porting one of them (entity-manager) to use the meson build, I realized we are not structuring our meson.build file according to best-practices for consumption as a submodule. Specifically, we are missing the 'sdbusplus_dep' variable as described in the meson reference: https://mesonbuild.com/Subprojects.html
Now that 'sdbusplus_dep' is defined, use it throughout the rest of the meson.build files as well for simplification.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I79ad586aa185f769c7ecc83ef06e1f3897e8db2d
show more ...
|