Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/dev/audio Sync with sys/dev/audio/audio.c rev1.65.
details: https://anonhg.NetBSD.org/src/rev/624fe029c91f
branches: trunk
changeset: 1008549:624fe029c91f
user: isaki <isaki%NetBSD.org@localhost>
date: Thu Mar 26 13:37:44 2020 +0000
description:
Sync with sys/dev/audio/audio.c rev1.65.
> Fix to start recording immediately when open() with READ mode is called.
This affects only standalone test, not atf.
diffstat:
tests/dev/audio/audiotest.c | 46 ++++++++++++++++++++++++++++++--------------
1 files changed, 31 insertions(+), 15 deletions(-)
diffs (95 lines):
diff -r 0d3b0196a508 -r 624fe029c91f tests/dev/audio/audiotest.c
--- a/tests/dev/audio/audiotest.c Thu Mar 26 13:32:03 2020 +0000
+++ b/tests/dev/audio/audiotest.c Thu Mar 26 13:37:44 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: audiotest.c,v 1.8 2020/03/25 13:07:04 isaki Exp $ */
+/* $NetBSD: audiotest.c,v 1.9 2020/03/26 13:37:44 isaki Exp $ */
/*
* Copyright (C) 2019 Tetsuya Isaki. All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: audiotest.c,v 1.8 2020/03/25 13:07:04 isaki Exp $");
+__RCSID("$NetBSD: audiotest.c,v 1.9 2020/03/26 13:37:44 isaki Exp $");
#include <errno.h>
#include <fcntl.h>
@@ -1557,14 +1557,14 @@
XP_EQ(0, ai.record.waiting);
/* balance */
XP_EQ(exp_ropen, ai.record.open);
- /*
- * NetBSD7,8 (may?) be active when opened in recording mode but
- * recording has not started yet. (?)
- * NetBSD9 is not active at that time.
- */
- if (netbsd < 9) {
+ if (netbsd < 9 && strcmp(devname, "sound") == 0) {
+ /*
+ * On NetBSD7/8, it doesn't seem to start recording on open
+ * for /dev/sound. It should be a bug.
+ */
+ XP_EQ(0, ai.record.active);
} else {
- XP_EQ(0, ai.record.active);
+ XP_EQ(exp_ropen, ai.record.active);
}
/* Save it */
ai0 = ai;
@@ -1645,9 +1645,14 @@
XP_EQ(0, ai.record.waiting);
/* balance */
XP_EQ(exp_ropen, ai.record.open);
- if (netbsd < 9) {
+ if (netbsd < 9 && strcmp(devname, "sound") == 0) {
+ /*
+ * On NetBSD7/8, it doesn't seem to start recording on open
+ * for /dev/sound. It should be a bug.
+ */
+ XP_EQ(0, ai.record.active);
} else {
- XP_EQ(0, ai.record.active);
+ XP_EQ(exp_ropen, ai.record.active);
}
r = CLOSE(fd);
@@ -2921,6 +2926,9 @@
fd = OPEN(devaudio, mode);
REQUIRED_SYS_OK(fd);
+ /* Wait a bit to be recorded. */
+ usleep(100 * 1000);
+
memset(&pfd, 0, sizeof(pfd));
pfd.fd = fd;
pfd.events = events;
@@ -2948,15 +2956,23 @@
r = CLOSE(fd);
XP_SYS_EQ(0, r);
}
-DEF(poll_mode_RDONLY_IN) { test_poll_mode(O_RDONLY, IN, 0); }
+DEF(poll_mode_RDONLY_IN) { test_poll_mode(O_RDONLY, IN, IN); }
DEF(poll_mode_RDONLY_OUT) { test_poll_mode(O_RDONLY, OUT, 0); }
-DEF(poll_mode_RDONLY_INOUT) { test_poll_mode(O_RDONLY, IN|OUT, 0); }
+DEF(poll_mode_RDONLY_INOUT) { test_poll_mode(O_RDONLY, IN|OUT, IN); }
DEF(poll_mode_WRONLY_IN) { test_poll_mode(O_WRONLY, IN, 0); }
DEF(poll_mode_WRONLY_OUT) { test_poll_mode(O_WRONLY, OUT, OUT); }
DEF(poll_mode_WRONLY_INOUT) { test_poll_mode(O_WRONLY, IN|OUT, OUT); }
-DEF(poll_mode_RDWR_IN) { test_poll_mode(O_RDWR, IN, 0); }
+DEF(poll_mode_RDWR_IN) {
+ /* On half-duplex, O_RDWR is the same as O_WRONLY. */
+ if (hw_fulldup()) test_poll_mode(O_RDWR, IN, IN);
+ else test_poll_mode(O_RDWR, IN, 0);
+}
DEF(poll_mode_RDWR_OUT) { test_poll_mode(O_RDWR, OUT, OUT); }
-DEF(poll_mode_RDWR_INOUT) { test_poll_mode(O_RDWR, IN|OUT, OUT); }
+DEF(poll_mode_RDWR_INOUT) {
+ /* On half-duplex, O_RDWR is the same as O_WRONLY. */
+ if (hw_fulldup()) test_poll_mode(O_RDWR, IN|OUT, IN|OUT);
+ else test_poll_mode(O_RDWR, IN|OUT, OUT);
+}
/*
* Poll(OUT) when buffer is empty.
Home |
Main Index |
Thread Index |
Old Index