Diff between 9b631e09e943d6a3b248f0210e4f785a1cc48c25 and ff07f10ee4da3d16b3be84c0acff231d2b152948

Changed Files

File Additions Deletions Status
tools/sco-tester.c +28 -0 modified

Full Patch

diff --git a/tools/sco-tester.c b/tools/sco-tester.c
index a56cb91..6fc26b7 100644
--- a/tools/sco-tester.c
+++ b/tools/sco-tester.c
@@ -528,6 +528,34 @@ static void test_setsockopt(const void *test_data)
 	}
 
 	memset(&voice, 0, sizeof(voice));
+	voice.setting = BT_VOICE_TRANSPARENT_16BIT;
+
+	err = setsockopt(sk, SOL_BLUETOOTH, BT_VOICE, &voice, sizeof(voice));
+	if (err < 0) {
+		tester_warn("Can't set socket option : %s (%d)",
+							strerror(errno), errno);
+		tester_test_failed();
+		goto end;
+	}
+
+	len = sizeof(voice);
+	memset(&voice, 0, len);
+
+	err = getsockopt(sk, SOL_BLUETOOTH, BT_VOICE, &voice, &len);
+	if (err < 0) {
+		tester_warn("Can't get socket option : %s (%d)",
+							strerror(errno), errno);
+		tester_test_failed();
+		goto end;
+	}
+
+	if (voice.setting != BT_VOICE_TRANSPARENT_16BIT) {
+		tester_warn("Invalid voice setting");
+		tester_test_failed();
+		goto end;
+	}
+
+	memset(&voice, 0, sizeof(voice));
 	voice.setting = BT_VOICE_TRANSPARENT;
 
 	err = setsockopt(sk, SOL_BLUETOOTH, BT_VOICE, &voice, sizeof(voice));