|
Quick Lists
|
|
Bug ID:
|
4917200
|
|
Votes
|
0
|
|
Synopsis
|
REGRESSION: 5 sound regression tests fail on Windows
|
|
Category
|
java:classes_sound
|
|
Reported Against
|
tiger
|
|
Release Fixed
|
1.5(tiger-b24)
|
|
State
|
10-Fix Delivered,
Verified,
bug
|
|
Priority:
|
3-Medium
|
|
Related Bugs
|
4772475
,
4839930
,
4936397
|
|
Submit Date
|
04-SEP-2003
|
|
Description
|
5 sound regression tests fail on Windows
Filed By : J2SE-SQA [j2se-tck- xxxxx@xxxxx ]
JDK : JDK1.5.0-b17, JDK1.5.0-b16 (passes using JDK1.5.0-b14, JDK1.4.2-b28)
Testbase : Regression-test
Platform[s] : Windows
switch/Mode : default
Falling test[s]:
javax/sound/sampled/Controls/ReverbControl/SimpleMidiPlayer.java
javax/sound/midi/Sequencer/TickLength.java
javax/sound/midi/Soundbanks/ExtraCharInSoundbank.java
javax/sound/sampled/Clip/Duration/ClipDuration.java
javax/sound/midi/Sequencer/MidiCrash.java
These tests fail on Windows platforms only if a sound device is not available.
But there are multimedia drivers which are installed in Windows by default
(for example: Audio Codec, Legacy Audio Drivers, Media Control Devices)
Therefore the method "public static boolean isSoundcardInstalled()" works incorrect in these tests.
Test source location:
=====================
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/sampled/Controls/ReverbControl/SimpleMidiPlayer.java
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/midi/Sequencer/TickLength.java
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/midi/Soundbanks/ExtraCharInSoundbank.java
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/sampled/Clip/Duration/ClipDuration.java
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/midi/Sequencer/MidiCrash.java
jtr file location:
==================
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/sampled/Controls/ReverbControl/SimpleMidiPlayer.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/midi/Sequencer/TickLength.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/midi/Soundbanks/ExtraCharInSoundbank.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/sampled/Clip/Duration/ClipDuration.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/midi/Sequencer/MidiCrash.jtr
How to reproduce:
=================
Run the following script (you may need to change its variables)
--- script start ---
#!/bin/sh
RESULT_DIR=`pwd`
WORK_DIR=$RESULT_DIR/workDir/test
REPORT_DIR=$RESULT_DIR/reportDir
JT_HOME="h:/java/jct"
JAVA_HOME="h:/java/jdk1.5.0/win32"
TEST_BASE_PATH="h:/java/regtest.tiger/test"
CLASSPATH="$JT_HOME/classes;$JT_HOME/lib/javatest.jar;$JT_HOME/lib/jtreg.jar"
TEST="javax/sound/sampled/Controls/ReverbControl/SimpleMidiPlayer.java"
#TEST="javax/sound/midi/Sequencer/TickLength.java"
#TEST="javax/sound/midi/Soundbanks/ExtraCharInSoundbank.java"
mkdir -p $WORK_DIR/scratch 2>&1
mkdir -p $WORK_DIR/jtData 2>&1
mkdir -p $REPORT_DIR 2>&1
#rm $WORK_DIR/jtData/ResultCache.jtw 2>&1
cd $WORK_DIR/scratch
$JAVA_HOME/bin/java -server -cp $CLASSPATH -DenvVars=TESTJAVAHOME=$JAVA_HOME,TESTVMOPTS=$TESTVMOPTS,DISPLAY=:0,windir=$windir,SystemRoot=$SystemRoot,PATH=${SHELL%/*},CPAPPEND=$JT_HOME/jemmy/jemmy.jar,TZ=,LC_ALL=en_US,LC_CTYPE=en_US,LANG=en_US,LPDEST= -DDISPLAY=:0 -DlocalHost="linux-16" -Dprogram=jtreg com.sun.javatest.regtest.Main -a -v default -batch -params -w "$WORK_DIR" -r "$REPORT_DIR" -t "$TEST_BASE_PATH" "$TEST_BASE_PATH/$TEST"
--- script end ---
Script output:
==============
Test output (jtr part):
=======================
----------System.out:(0/0)----------
----------System.err:(14/952)----------
javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine
at com.sun.media.sound.AbstractPlayer.open(AbstractPlayer.java:139)
at SimpleMidiPlayer.main(SimpleMidiPlayer.java:161)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:82)
at java.lang.Thread.run(Thread.java:549)
JavaTest Message: Test threw exception: javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine
JavaTest Message: shutting down test
STATUS:Failed.`main' threw exception: javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine
result: Failed. Execution failed: `main' threw exception: javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine
test result: Failed. Execution failed: `main' threw exception: javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine
Specific machine info:
======================
Hostname: linux-16
OS: Windows XP Pro
Hostname: linux-18
OS: Windows 98
Hostname: linux-19
OS: Windows 2003
======================================================================
|
|
Work Around
|
N/A
|
|
Evaluation
|
xxxxx@xxxxx 2003-09-26
Easy fix of the reg tests only.
xxxxx@xxxxx 2003-10-12
On Windows, the function isSoundCardInstalled still reports devices, even if no devices are installed, due to bug 4936397. The "other" devices, like codecs, should not appear in Java Sound's list of mixers.
Since the implementation should now always return 0 mixers if no sound hardware is installed, the implementation of isSoundCardInstalled can be made much simpler, by e.g. calling AudioSystem.getTargetDataLine.
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |