From 97763573230368b38e6aadfa78cbd67f5871a1f4 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Sat, 8 Jul 2023 12:50:58 +0100 Subject: [PATCH] Cygwin: testsuite: Skip devdsp test when no audio devices present Signed-off-by: Jon Turney --- winsup/testsuite/Makefile.am | 3 +++ winsup/testsuite/winsup.api/devdsp.c | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/winsup/testsuite/Makefile.am b/winsup/testsuite/Makefile.am index 11332eda2..60111a0aa 100644 --- a/winsup/testsuite/Makefile.am +++ b/winsup/testsuite/Makefile.am @@ -325,6 +325,9 @@ AM_CPPFLAGS = -I$(srcdir)/libltp/include AM_LDFLAGS = $(LDFLAGS_FOR_TESTDLL) LDADD = $(builddir)/libltp.a $(builddir)/../cygwin/binmode.o $(LDADD_FOR_TESTDLL) +# additional flags for specific test executables +winsup_api_devdsp_LDADD = -lwinmm $(LDADD) + DEJATOOL = winsup # Add '-v' to RUNTESTFLAGS if V=1 diff --git a/winsup/testsuite/winsup.api/devdsp.c b/winsup/testsuite/winsup.api/devdsp.c index 6c8850a74..0ac76f085 100644 --- a/winsup/testsuite/winsup.api/devdsp.c +++ b/winsup/testsuite/winsup.api/devdsp.c @@ -27,6 +27,8 @@ details. */ #include #include "test.h" /* use libltp framework */ +#include + /* Controls if a child can open the device after the parent */ #define CHILD_EXPECT 0 /* 0 or 1 */ @@ -59,6 +61,7 @@ void playwavtest (void); void syncwithchild (pid_t pid, int expected_exit_status); void cleanup (void); void dup_test (void); +void devcheck (void); static int expect_child_failure = 0; @@ -77,6 +80,7 @@ int main (int argc, char *argv[]) { /* tst_brkm(TBROK, cleanup, "see if it breaks all right"); */ + devcheck (); ioctltest (); playbacktest (); recordingtest (); @@ -91,6 +95,17 @@ main (int argc, char *argv[]) return 0; } +/* skip test if we don't have any audio devices*/ +void +devcheck (void) +{ + if ((waveInGetNumDevs() == 0) || (waveOutGetNumDevs() == 0)) + { + tst_resm (TINFO, "Skipping, no audio devices present"); + exit(0); + } +} + /* test some extra ioctls */ void ioctltest (void) -- 2.43.5