Don't generate testfiles during testrun

Instead, all additional files are generated in
download_testfiles.sh.
This commit is contained in:
Martchus 2018-07-11 12:02:30 +02:00
parent f7ce79ca47
commit c71a497f2b
4 changed files with 39 additions and 62 deletions

View File

@ -17,6 +17,13 @@ fail() {
echo "${bold}==> ${red}FAILURE:${normal} ${bold}${1}${normal}" echo "${bold}==> ${red}FAILURE:${normal} ${bold}${1}${normal}"
} }
# find source location
srcdir=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
if ! [[ -d $srcdir/testfiles ]]; then
fail "The tagparser checkout \"$srcdir\" does not contain a testfiles directory."
exit -2
fi
# read args # read args
testfilespath="$1" testfilespath="$1"
testfileurl="$2" testfileurl="$2"
@ -102,7 +109,21 @@ mkdir -p flac
|| inform "Skipping already existing flac/test.flac" || inform "Skipping already existing flac/test.flac"
# FLAC in Ogg # FLAC in Ogg
[[ ! -f flac/test.ogg ]] \ [[ ! -f flac/test.ogg ]] \
&& ffmpeg -i flac/test.flac -c:a copy flac/test.ogg \ && ffmpeg -i flac/test.flac -vn -c:a copy flac/test.ogg \
|| inform "Skipping already existing flac/test.ogg" || inform "Skipping already existing flac/test.ogg"
# convert further Mkv files mkvmerge
inform "Creating further testfiles with mkvmerge"
[[ ! -f mkv/nested-tags.mkv ]] \
&& mkvmerge --ui-language en_US \
--output 'mkv/nested-tags.mkv' \
--no-global-tags \
--language '0:und' \
--default-track '0:yes' \
--language '1:und' \
--default-track '1:yes' \
\( 'mtx-test-data/mkv/tags.mkv' \) \
--global-tags "$srcdir/testfiles/mkv/nested-tags.xml" \
--track-order '0:0,0:1'
success "All testfiles downloaded/converted!" success "All testfiles downloaded/converted!"

View File

@ -109,7 +109,6 @@ private:
void setOggTestMetaData(); void setOggTestMetaData();
void removeAllTags(); void removeAllTags();
void noop(); void noop();
void createMkvWithNestedTags();
void alterMp4Tracks(); void alterMp4Tracks();
void removeSecondTrack(); void removeSecondTrack();
@ -141,9 +140,6 @@ private:
TagValue m_testPosition; TagValue m_testPosition;
string m_testCover; string m_testCover;
queue<TagValue> m_preservedMetaData; queue<TagValue> m_preservedMetaData;
string m_nestedTagsMkvPath;
string m_rawFlacPath;
string m_flacInOggPath;
TagStatus m_tagStatus; TagStatus m_tagStatus;
uint16 m_mode; uint16 m_mode;
ElementPosition m_expectedTagPos; ElementPosition m_expectedTagPos;

View File

@ -23,11 +23,6 @@ void OverallTests::setUp()
void OverallTests::tearDown() void OverallTests::tearDown()
{ {
for (const string &file : { m_nestedTagsMkvPath, m_rawFlacPath, m_flacInOggPath }) {
if (!file.empty()) {
remove(file.data());
}
}
} }
/*! /*!

View File

@ -478,7 +478,7 @@ void OverallTests::checkMkvTestfileHandbrakeChapters()
} }
/*! /*!
* \brief Checks "mtx-test-data/mkv/nested-tags.mkv" ("mtx-test-data/mkv/tags.mkv" where "mkv/nested-tags.xml" has been applied). * \brief Checks "mkv/nested-tags.mkv" ("mtx-test-data/mkv/tags.mkv" where "mkv/nested-tags.xml" has been applied).
*/ */
void OverallTests::checkMkvTestfileNestedTags() void OverallTests::checkMkvTestfileNestedTags()
{ {
@ -627,35 +627,6 @@ void OverallTests::setMkvTestMetaData()
attachment->setName("cover.jpg"); attachment->setName("cover.jpg");
} }
/*!
* \brief Creates a Matroska test file with nested tags from "mtx-test-data/mkv/nested-tags.mkv" using "mkv/nested-tags.xml".
* \remarks Requires mkvmerge.
* \todo Make mkvmerge path variable.
*/
void OverallTests::createMkvWithNestedTags()
{
#ifdef PLATFORM_UNIX
m_nestedTagsMkvPath = workingCopyPathMode("mtx-test-data/mkv/nested-tags.mkv", WorkingCopyMode::NoCopy);
remove(m_nestedTagsMkvPath.data());
cerr << "\n\n- Create testfile \"" << m_nestedTagsMkvPath << "\" with mkvmerge" << endl;
const string tagsMkvPath(testFilePath("mtx-test-data/mkv/tags.mkv"));
const string tagsXmlPath(testFilePath("mkv/nested-tags.xml"));
const char *const mkvmergeArgs[] = { "--ui-language en_US", "--output", m_nestedTagsMkvPath.data(), "--no-global-tags", "--language", "0:und",
"--default-track", "0:yes", "--language", "1:und", "--default-track", "1:yes", "(", tagsMkvPath.data(), ")", "--global-tags",
tagsXmlPath.data(), "--track-order", "0:0,0:1", nullptr };
string mkvmergeOutput, mkvmergeErrors;
int res = execHelperApp("/usr/bin/mkvmerge", mkvmergeArgs, mkvmergeOutput, mkvmergeErrors);
cout << mkvmergeOutput << endl;
cerr << mkvmergeErrors << endl;
if (res) {
cerr << "- failure (exit code " << res << "); unable to test nested tags" << endl;
remove(m_nestedTagsMkvPath.data());
m_nestedTagsMkvPath.clear();
}
#endif
}
/*! /*!
* \brief Tests the Matroska parser via MediaFileInfo. * \brief Tests the Matroska parser via MediaFileInfo.
*/ */
@ -664,19 +635,16 @@ void OverallTests::testMkvParsing()
cerr << endl << "Matroska parser" << endl; cerr << endl << "Matroska parser" << endl;
m_fileInfo.setForceFullParse(false); m_fileInfo.setForceFullParse(false);
m_tagStatus = TagStatus::Original; m_tagStatus = TagStatus::Original;
parseFile(TestUtilities::testFilePath("matroska_wave1/test1.mkv"), &OverallTests::checkMkvTestfile1); parseFile(testFilePath("matroska_wave1/test1.mkv"), &OverallTests::checkMkvTestfile1);
parseFile(TestUtilities::testFilePath("matroska_wave1/test2.mkv"), &OverallTests::checkMkvTestfile2); parseFile(testFilePath("matroska_wave1/test2.mkv"), &OverallTests::checkMkvTestfile2);
parseFile(TestUtilities::testFilePath("matroska_wave1/test3.mkv"), &OverallTests::checkMkvTestfile3); parseFile(testFilePath("matroska_wave1/test3.mkv"), &OverallTests::checkMkvTestfile3);
parseFile(TestUtilities::testFilePath("matroska_wave1/test4.mkv"), &OverallTests::checkMkvTestfile4); parseFile(testFilePath("matroska_wave1/test4.mkv"), &OverallTests::checkMkvTestfile4);
parseFile(TestUtilities::testFilePath("matroska_wave1/test5.mkv"), &OverallTests::checkMkvTestfile5); parseFile(testFilePath("matroska_wave1/test5.mkv"), &OverallTests::checkMkvTestfile5);
parseFile(TestUtilities::testFilePath("matroska_wave1/test6.mkv"), &OverallTests::checkMkvTestfile6); parseFile(testFilePath("matroska_wave1/test6.mkv"), &OverallTests::checkMkvTestfile6);
parseFile(TestUtilities::testFilePath("matroska_wave1/test7.mkv"), &OverallTests::checkMkvTestfile7); parseFile(testFilePath("matroska_wave1/test7.mkv"), &OverallTests::checkMkvTestfile7);
parseFile(TestUtilities::testFilePath("matroska_wave1/test8.mkv"), &OverallTests::checkMkvTestfile8); parseFile(testFilePath("matroska_wave1/test8.mkv"), &OverallTests::checkMkvTestfile8);
parseFile(TestUtilities::testFilePath("mtx-test-data/mkv/handbrake-chapters-2.mkv"), &OverallTests::checkMkvTestfileHandbrakeChapters); parseFile(testFilePath("mtx-test-data/mkv/handbrake-chapters-2.mkv"), &OverallTests::checkMkvTestfileHandbrakeChapters);
createMkvWithNestedTags(); parseFile(testFilePath("mkv/nested-tags.mkv"), &OverallTests::checkMkvTestfileNestedTags);
if (!m_nestedTagsMkvPath.empty()) {
parseFile(m_nestedTagsMkvPath, &OverallTests::checkMkvTestfileNestedTags);
}
} }
#ifdef PLATFORM_UNIX #ifdef PLATFORM_UNIX
@ -773,14 +741,11 @@ void OverallTests::testMkvMakingWithDifferentSettings()
*/ */
void OverallTests::testMkvMakingNestedTags() void OverallTests::testMkvMakingNestedTags()
{ {
createMkvWithNestedTags();
if (!m_nestedTagsMkvPath.empty()) {
cerr << endl << "Matroska maker - rewrite file with nested tags" << endl; cerr << endl << "Matroska maker - rewrite file with nested tags" << endl;
m_fileInfo.setMinPadding(0); m_fileInfo.setMinPadding(0);
m_fileInfo.setMaxPadding(0); m_fileInfo.setMaxPadding(0);
m_fileInfo.setTagPosition(ElementPosition::BeforeData); m_fileInfo.setTagPosition(ElementPosition::BeforeData);
m_fileInfo.setIndexPosition(ElementPosition::BeforeData); m_fileInfo.setIndexPosition(ElementPosition::BeforeData);
makeFile(m_nestedTagsMkvPath, &OverallTests::noop, &OverallTests::checkMkvTestfileNestedTags); makeFile(workingCopyPath("mkv/nested-tags.mkv"), &OverallTests::noop, &OverallTests::checkMkvTestfileNestedTags);
}
} }
#endif #endif