From: Alexander Stein <alexander.stein@mailbox.org>
To: linux-gpio@vger.kernel.org
Cc: Alexander Stein <alexander.stein@mailbox.org>
Subject: [libgpiod] [PATCH 5/5] bindings: cxx: Workaround --success run
Date: Wed, 7 Aug 2019 21:51:32 +0200 [thread overview]
Message-ID: <20190807195132.7538-5-alexander.stein@mailbox.org> (raw)
In-Reply-To: <20190807195132.7538-1-alexander.stein@mailbox.org>
If run with --success, all expressions are evaluated and printed out.
But REQUIRE_FALSE(chip) tries to iterate over the chip resulting in this
backtrace:
#0 gpiod_chip_num_lines (chip=chip@entry=0x0) at ../../lib/core.c:235
#1 gpiod_line_iter_new (chip=0x0) at ../../lib/iter.c:140
#2 gpiod::(anonymous namespace)::make_line_iter (chip=0x0) at ../../../bindings/cxx/iter.cpp:29
#3 gpiod::line_iter::line_iter (this=0x7fffffffd690, owner=...) at ../../../bindings/cxx/iter.cpp:109
#4 Catch::rangeToString<gpiod::chip> (range=...) at /usr/include/catch2/catch.hpp:1959
[...]
Workaround by forcing catch2 to call gpiod::chip::operator bool().
Signed-off-by: Alexander Stein <alexander.stein@mailbox.org>
---
This actually looks like a flaw in the binding itself that the
gpiod::line_iter can't cope with an empty gpiod::chip.
bindings/cxx/tests/tests-chip.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/bindings/cxx/tests/tests-chip.cpp b/bindings/cxx/tests/tests-chip.cpp
index c9eb8e5..1c69872 100644
--- a/bindings/cxx/tests/tests-chip.cpp
+++ b/bindings/cxx/tests/tests-chip.cpp
@@ -70,7 +70,7 @@ TEST_CASE("GPIO chip can be opened with the open() method in different modes", "
mockup::probe_guard mockup_chips({ 8, 8, 8 });
::gpiod::chip chip;
- REQUIRE_FALSE(chip);
+ REQUIRE_FALSE(!!chip);
SECTION("open by name")
{
@@ -102,7 +102,7 @@ TEST_CASE("Uninitialized GPIO chip behaves correctly", "[chip]")
SECTION("uninitialized chip is 'false'")
{
- REQUIRE_FALSE(chip);
+ REQUIRE_FALSE(!!chip);
}
SECTION("using uninitialized chip throws logic_error")
@@ -149,7 +149,7 @@ TEST_CASE("Chip object can be reset", "[chip]")
::gpiod::chip chip(mockup::instance().chip_name(0));
REQUIRE(chip);
chip.reset();
- REQUIRE_FALSE(chip);
+ REQUIRE_FALSE(!!chip);
}
TEST_CASE("Chip info can be correctly retrieved", "[chip]")
--
2.22.0
next prev parent reply other threads:[~2019-08-07 19:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-07 19:51 [libgpiod] [PATCH 1/5] bindings: cxx: Use 'upstream' include path Alexander Stein
2019-08-07 19:51 ` [libgpiod] [PATCH 2/5] bindings: cxx: Try using pkg-config to detect catch2 Alexander Stein
2019-08-07 19:51 ` [libgpiod] [PATCH 3/5] bindings: cxx: Split out catch's main() Alexander Stein
2019-08-07 19:51 ` [libgpiod] [PATCH 4/5] bindings: cxx: Fix compile errors Alexander Stein
2019-08-08 15:25 ` Bartosz Golaszewski
2019-08-08 15:37 ` Bartosz Golaszewski
2019-08-07 19:51 ` Alexander Stein [this message]
2019-08-08 15:27 ` [libgpiod] [PATCH 5/5] bindings: cxx: Workaround --success run Bartosz Golaszewski
2019-08-08 18:41 ` Alexander Stein
2019-08-09 6:55 ` Bartosz Golaszewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190807195132.7538-5-alexander.stein@mailbox.org \
--to=alexander.stein@mailbox.org \
--cc=linux-gpio@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).