Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/dev/audio Improve around {audioctl_, }open_multiuser.
details: https://anonhg.NetBSD.org/src/rev/3c79c46d1483
branches: trunk
changeset: 744856:3c79c46d1483
user: isaki <isaki%NetBSD.org@localhost>
date: Fri Feb 14 13:20:48 2020 +0000
description:
Improve around {audioctl_,}open_multiuser.
- Make multiuser bool and remove newval.
- try_audioctl_open_multiuser() doesn't need multiuser argument.
diffstat:
tests/dev/audio/audiotest.c | 64 +++++++++++++++++++++-----------------------
1 files changed, 30 insertions(+), 34 deletions(-)
diffs (182 lines):
diff -r 30e3b84a32af -r 3c79c46d1483 tests/dev/audio/audiotest.c
--- a/tests/dev/audio/audiotest.c Fri Feb 14 12:14:33 2020 +0000
+++ b/tests/dev/audio/audiotest.c Fri Feb 14 13:20:48 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: audiotest.c,v 1.3 2020/02/13 18:06:26 tnn Exp $ */
+/* $NetBSD: audiotest.c,v 1.4 2020/02/14 13:20:48 isaki Exp $ */
/*
* Copyright (C) 2019 Tetsuya Isaki. All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: audiotest.c,v 1.3 2020/02/13 18:06:26 tnn Exp $");
+__RCSID("$NetBSD: audiotest.c,v 1.4 2020/02/14 13:20:48 isaki Exp $");
#include <errno.h>
#include <fcntl.h>
@@ -1381,8 +1381,8 @@
void test_open_sound(int);
void test_open_audioctl(int);
void test_open_simul(int, int);
-void try_open_multiuser(int);
-void test_open_multiuser(int);
+void try_open_multiuser(bool);
+void test_open_multiuser(bool);
void test_rdwr_fallback(int, bool, bool);
void test_rdwr_two(int, int);
void test_mmap_mode(int, int);
@@ -1400,8 +1400,8 @@
void test_AUDIO_ERROR(int);
void test_audioctl_open_1(int, int);
void test_audioctl_open_2(int, int);
-void try_audioctl_open_multiuser(int, const char *, const char *);
-void test_audioctl_open_multiuser(int, const char *, const char *);
+void try_audioctl_open_multiuser(const char *, const char *);
+void test_audioctl_open_multiuser(bool, const char *, const char *);
void test_audioctl_rw(int);
#define DEF(name) \
@@ -2219,7 +2219,7 @@
* /dev/audio can be opened by other user who opens /dev/audio.
*/
void
-try_open_multiuser(int multiuser)
+try_open_multiuser(bool multiuser)
{
int fd0;
int fd1;
@@ -2295,10 +2295,9 @@
* XXX XP_* macros are not compatible with on-error-goto, we need try-catch...
*/
void
-test_open_multiuser(int multiuser)
+test_open_multiuser(bool multiuser)
{
char mibname[32];
- bool newval;
bool oldval;
size_t oldlen;
int r;
@@ -2327,26 +2326,24 @@
/* Change if necessary */
if (oldval != multiuser) {
- newval = multiuser;
- r = SYSCTLBYNAME(mibname, NULL, NULL, &newval, sizeof(newval));
+ r = SYSCTLBYNAME(mibname, NULL, NULL, &multiuser,
+ sizeof(multiuser));
REQUIRED_SYS_EQ(0, r);
DPRINTF(" > new multiuser=%d\n", multiuser);
- } else {
- newval = oldval;
}
/* Do test */
try_open_multiuser(multiuser);
/* Restore multiuser mode */
- if (oldval != newval) {
+ if (oldval != multiuser) {
DPRINTF(" > restore multiuser to %d\n", oldval);
r = SYSCTLBYNAME(mibname, NULL, NULL, &oldval, sizeof(oldval));
REQUIRED_SYS_EQ(0, r);
}
}
-DEF(open_multiuser_0) { test_open_multiuser(0); }
-DEF(open_multiuser_1) { test_open_multiuser(1); }
+DEF(open_multiuser_0) { test_open_multiuser(false); }
+DEF(open_multiuser_1) { test_open_multiuser(true); }
/*
* Normal playback (with PLAY_ALL).
@@ -6034,12 +6031,13 @@
}
/*
- * /dev/audioctl can be opened by other user who opens /dev/audioctl.
- * /dev/audioctl can be opened by other user who opens /dev/audio.
- * /dev/audio can be opened by other user who opens /dev/audioct.
+ * /dev/audioctl can be opened by other user who opens /dev/audioctl,
+ * /dev/audioctl can be opened by other user who opens /dev/audio,
+ * /dev/audio can be opened by other user who opens /dev/audioctl,
+ * regardless of multiuser mode.
*/
void
-try_audioctl_open_multiuser(int multiuser, const char *dev1, const char *dev2)
+try_audioctl_open_multiuser(const char *dev1, const char *dev2)
{
int fd1;
int fd2;
@@ -6076,10 +6074,10 @@
* XXX XP_* macros are not compatible with on-error-goto, we need try-catch...
*/
void
-test_audioctl_open_multiuser(int multiuser, const char *dev1, const char *dev2)
+test_audioctl_open_multiuser(bool multiuser,
+ const char *dev1, const char *dev2)
{
char mibname[32];
- bool newval;
bool oldval;
size_t oldlen;
int r;
@@ -6107,19 +6105,17 @@
/* Change if necessary */
if (oldval != multiuser) {
- newval = multiuser;
- r = SYSCTLBYNAME(mibname, NULL, NULL, &newval, sizeof(newval));
+ r = SYSCTLBYNAME(mibname, NULL, NULL, &multiuser,
+ sizeof(multiuser));
REQUIRED_SYS_EQ(0, r);
DPRINTF(" > new multiuser=%d\n", multiuser);
- } else {
- newval = oldval;
}
/* Do test */
- try_audioctl_open_multiuser(multiuser, dev1, dev2);
+ try_audioctl_open_multiuser(dev1, dev2);
/* Restore multiuser mode */
- if (oldval != newval) {
+ if (oldval != multiuser) {
DPRINTF(" > restore multiuser to %d\n", oldval);
r = SYSCTLBYNAME(mibname, NULL, NULL, &oldval, sizeof(oldval));
XP_SYS_EQ(0, r);
@@ -6127,27 +6123,27 @@
}
DEF(audioctl_open_multiuser0_audio1) {
TEST("audioctl_open_multiuser0_audio1");
- test_audioctl_open_multiuser(0, devaudio, devaudioctl);
+ test_audioctl_open_multiuser(false, devaudio, devaudioctl);
}
DEF(audioctl_open_multiuser1_audio1) {
TEST("audioctl_open_multiuser1_audio1");
- test_audioctl_open_multiuser(1, devaudio, devaudioctl);
+ test_audioctl_open_multiuser(true, devaudio, devaudioctl);
}
DEF(audioctl_open_multiuser0_audio2) {
TEST("audioctl_open_multiuser0_audio2");
- test_audioctl_open_multiuser(0, devaudioctl, devaudio);
+ test_audioctl_open_multiuser(false, devaudioctl, devaudio);
}
DEF(audioctl_open_multiuser1_audio2) {
TEST("audioctl_open_multiuser1_audio2");
- test_audioctl_open_multiuser(1, devaudioctl, devaudio);
+ test_audioctl_open_multiuser(true, devaudioctl, devaudio);
}
DEF(audioctl_open_multiuser0_audioctl) {
TEST("audioctl_open_multiuser0_audioctl");
- test_audioctl_open_multiuser(0, devaudioctl, devaudioctl);
+ test_audioctl_open_multiuser(false, devaudioctl, devaudioctl);
}
DEF(audioctl_open_multiuser1_audioctl) {
TEST("audioctl_open_multiuser1_audioctl");
- test_audioctl_open_multiuser(1, devaudioctl, devaudioctl);
+ test_audioctl_open_multiuser(true, devaudioctl, devaudioctl);
}
/*
Home |
Main Index |
Thread Index |
Old Index