From: "Frédéric Danis" <frederic.danis@collabora.com>
To: linux-bluetooth@vger.kernel.org
Subject: [PATCH BlueZ v3] tools: avtest: Add reject-code option
Date: Fri, 8 Dec 2023 11:17:11 +0100 [thread overview]
Message-ID: <20231208101711.624001-1-frederic.danis@collabora.com> (raw)
In-Reply-To: <20231208090013.620051-1-frederic.danis@collabora.com>
Some PTS tests like A2DP/SNK/AVP/BI-03-C, A2DP/SNK/AVP/BI-08-C , …
request some specific rejection code to pass.
This commit adds an option to specify the rejection code during
AVDTP_SET_CONFIGURATION rejection.
E.g. "avtest --reject setconf --reject-code 195" to reject setconf with
INVALID_SAMPLING_FREQUENCY code.
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
---
tools/avtest.c | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/tools/avtest.c b/tools/avtest.c
index ca37b3b46..5ac3418aa 100644
--- a/tools/avtest.c
+++ b/tools/avtest.c
@@ -188,7 +188,8 @@ static void dump_buffer(const unsigned char *buf, int len)
}
static void process_avdtp(int srv_sk, int sk, unsigned char reject,
- int fragment)
+ int fragment,
+ int reject_code)
{
unsigned char buf[672];
ssize_t len;
@@ -284,7 +285,8 @@ static void process_avdtp(int srv_sk, int sk, unsigned char reject,
if (reject == AVDTP_SET_CONFIGURATION) {
hdr->message_type = AVDTP_MSG_TYPE_REJECT;
buf[2] = buf[4];
- buf[3] = 0x13; /* SEP In Use */
+ buf[3] = reject_code ? reject_code :
+ 0x13; /* SEP In Use */
printf("Rejecting set configuration command\n");
len = write(sk, buf, 4);
} else {
@@ -443,7 +445,8 @@ static int set_minimum_mtu(int sk)
return 0;
}
-static void do_listen(const bdaddr_t *src, unsigned char reject, int fragment)
+static void do_listen(const bdaddr_t *src, unsigned char reject, int fragment,
+ int reject_code)
{
struct sockaddr_l2 addr;
socklen_t optlen;
@@ -483,7 +486,7 @@ static void do_listen(const bdaddr_t *src, unsigned char reject, int fragment)
continue;
}
- process_avdtp(sk, nsk, reject, fragment);
+ process_avdtp(sk, nsk, reject, fragment, reject_code);
if (media_sock >= 0) {
close(media_sock);
@@ -709,6 +712,7 @@ static void usage(void)
printf("Options:\n"
"\t--device <hcidev> HCI device\n"
"\t--reject <command> Reject command\n"
+ "\t--reject-code <code> Reject code to use\n"
"\t--send <command> Send command\n"
"\t--preconf Configure stream before actual command\n"
"\t--wait <N> Wait N seconds before exiting\n"
@@ -720,6 +724,7 @@ static struct option main_options[] = {
{ "help", 0, 0, 'h' },
{ "device", 1, 0, 'i' },
{ "reject", 1, 0, 'r' },
+ { "reject-code", 1, 0, 'R' },
{ "send", 1, 0, 's' },
{ "invalid", 1, 0, 'f' },
{ "preconf", 0, 0, 'c' },
@@ -764,12 +769,12 @@ int main(int argc, char *argv[])
unsigned char cmd = 0x00;
bdaddr_t src, dst;
int opt, mode = MODE_NONE, sk, invalid = 0, preconf = 0, fragment = 0;
- int avctp = 0, wait_before_exit = 0;
+ int avctp = 0, wait_before_exit = 0, reject_code = 0;
bacpy(&src, BDADDR_ANY);
bacpy(&dst, BDADDR_ANY);
- while ((opt = getopt_long(argc, argv, "+i:r:s:f:hcFCw:",
+ while ((opt = getopt_long(argc, argv, "+i:r:s:f:hcFCw:R:",
main_options, NULL)) != EOF) {
switch (opt) {
case 'i':
@@ -809,6 +814,10 @@ int main(int argc, char *argv[])
wait_before_exit = atoi(optarg);
break;
+ case 'R':
+ reject_code = atoi(optarg);
+ break;
+
case 'h':
default:
usage();
@@ -826,7 +835,7 @@ int main(int argc, char *argv[])
switch (mode) {
case MODE_REJECT:
- do_listen(&src, cmd, fragment);
+ do_listen(&src, cmd, fragment, reject_code);
break;
case MODE_SEND:
sk = do_connect(&src, &dst, avctp, fragment);
--
2.34.1
next prev parent reply other threads:[~2023-12-08 10:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-08 9:00 [PATCH BlueZ v2] tools: avtest: Add reject-code option Frédéric Danis
2023-12-08 10:05 ` [BlueZ,v2] " bluez.test.bot
2023-12-08 10:07 ` [PATCH BlueZ v2] " Paul Menzel
2023-12-08 10:17 ` Frédéric Danis [this message]
2023-12-08 11:32 ` [BlueZ,v3] " bluez.test.bot
2023-12-11 18:40 ` [PATCH BlueZ v3] " patchwork-bot+bluetooth
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=20231208101711.624001-1-frederic.danis@collabora.com \
--to=frederic.danis@collabora.com \
--cc=linux-bluetooth@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).