From: Kevin Dewald <kevin@simpleble.org>
To: linux-bluetooth@vger.kernel.org
Cc: Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
Kevin Dewald <kevin@simpleble.org>
Subject: [PATCH BlueZ v2 4/4] test: functional: add bearer ReadRSSI test
Date: Thu, 12 Nov 2026 21:14:38 -0800 [thread overview]
Message-ID: <20261113051438.75230-5-kevin@simpleble.org> (raw)
In-Reply-To: <20261113051438.75230-1-kevin@simpleble.org>
Read the RSSI of the LE connection from a host with testing interfaces
enabled, check ReadRSSI fails with NotConnected once disconnected, and
check a host without testing interfaces does not expose it.
Assisted-by: Claude:claude-opus-5.5
---
test/functional/test_bearer.py | 42 ++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/test/functional/test_bearer.py b/test/functional/test_bearer.py
index 59ce8ef7d..41134221a 100644
--- a/test/functional/test_bearer.py
+++ b/test/functional/test_bearer.py
@@ -54,6 +54,9 @@ UPDATE_CONF = LE_CONF + "[LE]\nMinConnectionInterval = 80\nMaxConnectionInterval
CONN_PARAMS = ("Interval", "Latency", "SupervisionTimeout", "Subrate")
+# ReadRSSI is a testing method
+TESTING_CONF = LE_CONF + "Testing = true\n"
+
class Bearers(HostPlugin, EventPluginMixin):
"""
@@ -283,6 +286,45 @@ def test_bearer_le_conn_params(hosts):
assert host.bearers.get(remote.bdaddr, LE_INTERFACE, name) is None
+@host_config(
+ [
+ Bluetoothd(conf=TESTING_CONF, args=ARGS),
+ Agent(capability="NoInputNoOutput"),
+ Bearers(),
+ ],
+ [
+ Bluetoothd(conf=LE_CONF, args=ARGS),
+ LeAdvertiser(),
+ Agent(capability="NoInputNoOutput"),
+ Bearers(),
+ ],
+)
+def test_bearer_le_read_rssi(hosts):
+ host0, host1 = hosts
+
+ connect_le(host0, host1)
+
+ for host, remote in peers(host0, host1):
+ wait_until(
+ lambda: host.bearers.get(remote.bdaddr, LE_INTERFACE, "Connected") is True
+ )
+
+ # The emulated controller reports -1 dBm for every connection
+ host0.bearers.call(host1.bdaddr, LE_INTERFACE, "ReadRSSI")
+ reply = host0.bearers.expect(f"{LE_INTERFACE}.ReadRSSI:reply")
+ assert reply.values == (-1,)
+
+ host1.bearers.call(host0.bdaddr, LE_INTERFACE, "ReadRSSI")
+ error = host1.bearers.expect(f"{LE_INTERFACE}.ReadRSSI:error").error
+ assert error.get_dbus_name() == "org.freedesktop.DBus.Error.UnknownMethod"
+
+ disconnect(host0, host1, LE_INTERFACE)
+
+ host0.bearers.call(host1.bdaddr, LE_INTERFACE, "ReadRSSI")
+ error = host0.bearers.expect(f"{LE_INTERFACE}.ReadRSSI:error").error
+ assert error.get_dbus_name() == "org.bluez.Error.NotConnected"
+
+
@host_config(
[
Bluetoothd(conf=LE_CONF, args=ARGS),
--
2.54.0 (Apple Git-157)
prev parent reply other threads:[~2026-11-13 5:14 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-13 5:14 [PATCH BlueZ v2 0/4] Bearer.LE1: Add ReadRSSI Kevin Dewald
2026-11-13 5:14 ` [PATCH BlueZ v2 1/4] org.bluez.Bearer: Add ReadRSSI method Kevin Dewald
2026-11-13 5:14 ` [PATCH BlueZ v2 2/4] adapter: Add btd_adapter_get_conn_info Kevin Dewald
2026-11-13 5:14 ` [PATCH BlueZ v2 3/4] bearer: Add ReadRSSI method Kevin Dewald
2026-11-13 5:14 ` Kevin Dewald [this message]
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=20261113051438.75230-5-kevin@simpleble.org \
--to=kevin@simpleble.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
/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