diff options
Diffstat (limited to 'Lib/test/test_linuxaudiodev.py')
-rw-r--r-- | Lib/test/test_linuxaudiodev.py | 63 |
1 files changed, 59 insertions, 4 deletions
diff --git a/Lib/test/test_linuxaudiodev.py b/Lib/test/test_linuxaudiodev.py index 4faaab1..535f84c 100644 --- a/Lib/test/test_linuxaudiodev.py +++ b/Lib/test/test_linuxaudiodev.py @@ -1,23 +1,78 @@ from test_support import verbose, findfile, TestFailed, TestSkipped -import linuxaudiodev + import errno +import fcntl +import linuxaudiodev import os +import select +import sunaudio +import time + +SND_FORMAT_MULAW_8 = 1 def play_sound_file(path): fp = open(path, 'r') + size, enc, rate, nchannels, extra = sunaudio.gethdr(fp) data = fp.read() fp.close() + + if enc != SND_FORMAT_MULAW_8: + print "Expect .au file with 8-bit mu-law samples" + return + try: a = linuxaudiodev.open('w') except linuxaudiodev.error, msg: if msg[0] in (errno.EACCES, errno.ENODEV): raise TestSkipped, msg raise TestFailed, msg - else: - a.write(data) - a.close() + + # at least check that these methods can be invoked + a.bufsize() + a.obufcount() + a.obuffree() + a.getptr() + a.fileno() + + # set parameters based on .au file headers + a.setparameters(rate, 8, nchannels, linuxaudiodev.AFMT_MU_LAW, 1) + a.write(data) + a.flush() + a.close() + +def test_errors(): + a = linuxaudiodev.open("w") + size = 8 + fmt = linuxaudiodev.AFMT_U8 + rate = 8000 + nchannels = 1 + try: + a.setparameters(-1, size, nchannels, fmt) + except ValueError, msg: + print msg + try: + a.setparameters(rate, -2, nchannels, fmt) + except ValueError, msg: + print msg + try: + a.setparameters(rate, size, 3, fmt) + except ValueError, msg: + print msg + try: + a.setparameters(rate, size, nchannels, 177) + except ValueError, msg: + print msg + try: + a.setparameters(rate, size, nchannels, linuxaudiodev.AFMT_U16_LE) + except ValueError, msg: + print msg + try: + a.setparameters(rate, 16, nchannels, fmt) + except ValueError, msg: + print msg def test(): play_sound_file(findfile('audiotest.au')) + test_errors() test() |