< prev index next >

test/javax/sound/sampled/FileReader/ReadersExceptions.java

Print this page


   1 /*
   2  * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 
  25 import java.io.ByteArrayInputStream;
  26 import java.io.IOException;
  27 import java.io.InputStream;
  28 
  29 import javax.sound.sampled.AudioSystem;
  30 import javax.sound.sampled.UnsupportedAudioFileException;



  31 
  32 /**
  33  * @test
  34  * @bug 7058662 7058666 7058672
  35  * @author Sergey Bylokhov
  36  */
  37 public final class ReadersExceptions {
  38 
  39     // empty channels
  40     static byte[] wrongAIFFCh =
  41             {0x46, 0x4f, 0x52, 0x4d, // AiffFileFormat.AIFF_MAGIC
  42              0, 0, 0, 0, // length
  43              0, 0, 0, 0, // iffType
  44              0x43, 0x4f, 0x4d, 0x4d, // chunkName
  45              0, 0, 0, 100, // chunkLen
  46              0, 0, // channels
  47              0, 0, 0, 0, //
  48              0, 10  // sampleSize
  49                     , 0, 0, 0, 0};
  50     // empty sampleSize
  51     static byte[] wrongAIFFSSL =
  52             {0x46, 0x4f, 0x52, 0x4d, //AiffFileFormat.AIFF_MAGIC
  53              0, 0, 0, 0, // length
  54              0, 0, 0, 0, // iffType


  94              0x64, 0x61, 0x74, 0x61, // WaveFileFormat.DATA_MAGIC
  95              0, 0, 0, 0, // dataLength
  96             };
  97     // empty sampleSizeInBits
  98     static byte[] wrongWAVSSB =
  99             {0x52, 0x49, 0x46, 0x46, // WaveFileFormat.RIFF_MAGIC
 100              1, 1, 1, 1, // fileLength
 101              0x57, 0x41, 0x56, 0x45, //  waveMagic
 102              0x66, 0x6d, 0x74, 0x20, // FMT_MAGIC
 103              3, 0, 0, 0, // length
 104              1, 0, // wav_type  WAVE_FORMAT_PCM
 105              1, 0, // channels
 106              0, 0, 0, 0, // sampleRate
 107              0, 0, 0, 0, // avgBytesPerSec
 108              0, 0, // blockAlign
 109              0, 0, // sampleSizeInBits
 110              0x64, 0x61, 0x74, 0x61, // WaveFileFormat.DATA_MAGIC
 111              0, 0, 0, 0, // dataLength
 112             };
 113 



 114     public static void main(final String[] args) throws IOException {
 115         test(wrongAIFFCh);
 116         test(wrongAIFFSSL);
 117         test(wrongAIFFSSH);
 118         test(wrongAUCh);
 119         test(wrongWAVCh);
 120         test(wrongWAVSSB);
 121     }
 122 
 123     private static void test(final byte[] buffer) throws IOException {

 124         final InputStream is = new ByteArrayInputStream(buffer);
 125         try {
 126             AudioSystem.getAudioFileFormat(is);
 127         } catch (UnsupportedAudioFileException ignored) {
 128             // Expected.
 129             return;
 130         }
 131         throw new RuntimeException("Test Failed");
 132     }















 133 }
   1 /*
   2  * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 

  24 import java.io.ByteArrayInputStream;
  25 import java.io.IOException;
  26 import java.io.InputStream;
  27 
  28 import javax.sound.sampled.AudioSystem;
  29 import javax.sound.sampled.UnsupportedAudioFileException;
  30 import javax.sound.sampled.spi.AudioFileReader;
  31 
  32 import static java.util.ServiceLoader.load;
  33 
  34 /**
  35  * @test
  36  * @bug 7058662 7058666 7058672 8130305
  37  * @author Sergey Bylokhov
  38  */
  39 public final class ReadersExceptions {
  40 
  41     // empty channels
  42     static byte[] wrongAIFFCh =
  43             {0x46, 0x4f, 0x52, 0x4d, // AiffFileFormat.AIFF_MAGIC
  44              0, 0, 0, 0, // length
  45              0, 0, 0, 0, // iffType
  46              0x43, 0x4f, 0x4d, 0x4d, // chunkName
  47              0, 0, 0, 100, // chunkLen
  48              0, 0, // channels
  49              0, 0, 0, 0, //
  50              0, 10  // sampleSize
  51                     , 0, 0, 0, 0};
  52     // empty sampleSize
  53     static byte[] wrongAIFFSSL =
  54             {0x46, 0x4f, 0x52, 0x4d, //AiffFileFormat.AIFF_MAGIC
  55              0, 0, 0, 0, // length
  56              0, 0, 0, 0, // iffType


  96              0x64, 0x61, 0x74, 0x61, // WaveFileFormat.DATA_MAGIC
  97              0, 0, 0, 0, // dataLength
  98             };
  99     // empty sampleSizeInBits
 100     static byte[] wrongWAVSSB =
 101             {0x52, 0x49, 0x46, 0x46, // WaveFileFormat.RIFF_MAGIC
 102              1, 1, 1, 1, // fileLength
 103              0x57, 0x41, 0x56, 0x45, //  waveMagic
 104              0x66, 0x6d, 0x74, 0x20, // FMT_MAGIC
 105              3, 0, 0, 0, // length
 106              1, 0, // wav_type  WAVE_FORMAT_PCM
 107              1, 0, // channels
 108              0, 0, 0, 0, // sampleRate
 109              0, 0, 0, 0, // avgBytesPerSec
 110              0, 0, // blockAlign
 111              0, 0, // sampleSizeInBits
 112              0x64, 0x61, 0x74, 0x61, // WaveFileFormat.DATA_MAGIC
 113              0, 0, 0, 0, // dataLength
 114             };
 115 
 116     static byte[][] data = {wrongAIFFCh, wrongAIFFSSL, wrongAIFFSSH, wrongAUCh,
 117                             wrongWAVCh, wrongWAVSSB};
 118 
 119     public static void main(final String[] args) throws IOException {
 120         for (final byte[] bytes : data) {
 121             testAS(bytes);
 122             testAFR(bytes);
 123         }


 124     }
 125 
 126     private static void testAS(final byte[] buffer) throws IOException {
 127         // AudioSystem API
 128         final InputStream is = new ByteArrayInputStream(buffer);
 129         try {
 130             AudioSystem.getAudioFileFormat(is);
 131         } catch (UnsupportedAudioFileException ignored) {
 132             // Expected.
 133             return;
 134         }
 135         throw new RuntimeException("Test Failed");
 136     }
 137 
 138     private static void testAFR(final byte[] buffer) throws IOException {
 139         // AudioFileReader API
 140         final InputStream is = new ByteArrayInputStream(buffer);
 141         for (final AudioFileReader afr : load(AudioFileReader.class)) {
 142             for (int i = 0; i < 10; ++i) {
 143                 try {
 144                     afr.getAudioFileFormat(is);
 145                     throw new RuntimeException("UAFE expected");
 146                 } catch (final UnsupportedAudioFileException ignored) {
 147                     // Expected.
 148                 }
 149             }
 150         }
 151     }
 152 }
< prev index next >