diff options
author | Neeraj Kumar | 2010-08-12 14:47:25 +0000 |
---|---|---|
committer | Neeraj Kumar | 2010-08-12 14:47:25 +0000 |
commit | 4c3ea30e329be219fe916f633fb880f3cec83f92 (patch) | |
tree | 383bfa8771879dc23b4ea047190f84e899678720 /engines | |
parent | f6a1cb991fef5de697d97af1418e719592fbcee6 (diff) | |
download | scummvm-rg350-4c3ea30e329be219fe916f633fb880f3cec83f92.tar.gz scummvm-rg350-4c3ea30e329be219fe916f633fb880f3cec83f92.tar.bz2 scummvm-rg350-4c3ea30e329be219fe916f633fb880f3cec83f92.zip |
TESTBED: disable tests when required data is not found
svn-id: r52041
Diffstat (limited to 'engines')
-rw-r--r-- | engines/testbed/midi.cpp | 14 | ||||
-rw-r--r-- | engines/testbed/midi.h | 5 | ||||
-rw-r--r-- | engines/testbed/sound.cpp | 17 | ||||
-rw-r--r-- | engines/testbed/sound.h | 3 |
4 files changed, 33 insertions, 6 deletions
diff --git a/engines/testbed/midi.cpp b/engines/testbed/midi.cpp index 57ac1a64d2..bae78b352b 100644 --- a/engines/testbed/midi.cpp +++ b/engines/testbed/midi.cpp @@ -128,6 +128,7 @@ TestExitStatus MidiTests::playMidiMusic() { driver->setTimerCallback(NULL, NULL); driver->close(); delete smfParser; + delete driver; if (Testsuite::handleInteractiveInput("Were you able to hear the music as described?", "Yes", "No", kOptionRight)) { Testsuite::logDetailedPrintf("Error! Midi: Can't play Music\n"); @@ -137,7 +138,18 @@ TestExitStatus MidiTests::playMidiMusic() { } MidiTestSuite::MidiTestSuite() { - addTest("MidiTests", &MidiTests::playMidiMusic); + if (SearchMan.hasFile("music.mid")) { + addTest("MidiTests", &MidiTests::playMidiMusic); + } else { + // add some fallback test if filesystem loading failed + Testsuite::logPrintf("Warning! Midi: Sound data file music.mid not found\n"); + _isMidiDataFound = false; + enable(false); + } +} + +void MidiTestSuite::enable(bool flag) { + Testsuite::enable(_isMidiDataFound & flag); } } diff --git a/engines/testbed/midi.h b/engines/testbed/midi.h index 838d98ca1f..1009179561 100644 --- a/engines/testbed/midi.h +++ b/engines/testbed/midi.h @@ -64,6 +64,11 @@ public: const char *getDescription() const { return "Midi Music"; } + + void enable(bool flag); + +private: + bool _isMidiDataFound; }; diff --git a/engines/testbed/sound.cpp b/engines/testbed/sound.cpp index 6b56a75b50..fac2437123 100644 --- a/engines/testbed/sound.cpp +++ b/engines/testbed/sound.cpp @@ -187,10 +187,7 @@ TestExitStatus SoundSubsystem::audiocdOutput() { Common::Point pt(0, 100); Testsuite::writeOnScreen("Playing the tracks of testCD in order i.e 1-2-3-last", pt); - // Make audio-files discoverable - Common::FSNode gameRoot(ConfMan.get("path")); - SearchMan.addSubDirectoryMatching(gameRoot, "audiocd-files"); - + // Play all tracks for (int i = 1; i < 5; i++) { AudioCD.play(i, 1, 0, 0); @@ -266,7 +263,17 @@ TestExitStatus SoundSubsystem::sampleRates() { SoundSubsystemTestSuite::SoundSubsystemTestSuite() { addTest("SimpleBeeps", &SoundSubsystem::playBeeps, true); addTest("MixSounds", &SoundSubsystem::mixSounds, true); - addTest("AudiocdOutput", &SoundSubsystem::audiocdOutput, true); + + // Make audio-files discoverable + Common::FSNode gameRoot(ConfMan.get("path")); + if (gameRoot.exists()) { + SearchMan.addSubDirectoryMatching(gameRoot, "audiocd-files"); + if (SearchMan.hasFile("track01.mp3") && SearchMan.hasFile("track02.mp3") && SearchMan.hasFile("track03.mp3") && SearchMan.hasFile("track04.mp3")) { + addTest("AudiocdOutput", &SoundSubsystem::audiocdOutput, true); + } else { + Testsuite::logPrintf("Warning! Skipping test AudioCD: Required data files missing, check game-dir/audiocd-files\n"); + } + } addTest("SampleRates", &SoundSubsystem::sampleRates, true); } diff --git a/engines/testbed/sound.h b/engines/testbed/sound.h index ce8c5c3f33..5b9cd5bdfc 100644 --- a/engines/testbed/sound.h +++ b/engines/testbed/sound.h @@ -73,6 +73,9 @@ public: return "Sound Subsystem"; } +private: + bool _isTestDataFound; + }; } // End of namespace Testbed |