Kaydet (Commit) 82fb80ec authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Make test order deterministic

Change-Id: I9980034f0cb948acd6bb20aaf0fc27928ac68913
üst 02e9b490
...@@ -7,6 +7,10 @@ ...@@ -7,6 +7,10 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
#include <sal/config.h>
#include <set>
#include <unotest/filters-test.hxx> #include <unotest/filters-test.hxx>
#include <osl/file.hxx> #include <osl/file.hxx>
#include <osl/thread.h> #include <osl/thread.h>
...@@ -60,71 +64,84 @@ void FiltersTest::recursiveScan(filterStatus nExpected, ...@@ -60,71 +64,84 @@ void FiltersTest::recursiveScan(filterStatus nExpected,
CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.open()); CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.open());
osl::DirectoryItem aItem; osl::DirectoryItem aItem;
osl::FileStatus aFileStatus(osl_FileStatus_Mask_FileURL|osl_FileStatus_Mask_Type); osl::FileStatus aFileStatus(osl_FileStatus_Mask_FileURL|osl_FileStatus_Mask_Type);
std::set<OUString> dirs;
std::set<OUString> files;
while (aDir.getNextItem(aItem) == osl::FileBase::E_None) while (aDir.getNextItem(aItem) == osl::FileBase::E_None)
{ {
aItem.getFileStatus(aFileStatus); aItem.getFileStatus(aFileStatus);
OUString sURL = aFileStatus.getFileURL(); OUString sURL = aFileStatus.getFileURL();
if (aFileStatus.getFileType() == osl::FileStatus::Directory) if (aFileStatus.getFileType() == osl::FileStatus::Directory)
{ {
recursiveScan(nExpected, rFilter, sURL, rUserData, dirs.insert(sURL);
nFilterFlags, nClipboardID, nFilterVersion, bExport);
} }
else else
{ {
OUString sTmpFile; files.insert(sURL);
bool bEncrypted = false; }
}
sal_Int32 nLastSlash = sURL.lastIndexOf('/'); for (auto const & sURL: dirs) {
recursiveScan(nExpected, rFilter, sURL, rUserData,
nFilterFlags, nClipboardID, nFilterVersion, bExport);
}
for (auto const & sURL: files) {
OUString sTmpFile;
bool bEncrypted = false;
if ((nLastSlash != -1) && (nLastSlash+1 < sURL.getLength())) sal_Int32 nLastSlash = sURL.lastIndexOf('/');
{
//ignore .files
if (sURL[nLastSlash+1] == '.')
continue;
if (
(sURL.match("BID", nLastSlash+1)) ||
(sURL.match("CVE", nLastSlash+1)) ||
(sURL.match("EDB", nLastSlash+1))
)
{
bEncrypted = true;
}
}
OString aRes(OUStringToOString(sURL, if ((nLastSlash != -1) && (nLastSlash+1 < sURL.getLength()))
osl_getThreadTextEncoding())); {
//ignore .files
if (sURL[nLastSlash+1] == '.')
continue;
if (bEncrypted) if (
(sURL.match("BID", nLastSlash+1)) ||
(sURL.match("CVE", nLastSlash+1)) ||
(sURL.match("EDB", nLastSlash+1))
)
{ {
CPPUNIT_ASSERT(osl::FileBase::E_None == osl::FileBase::createTempFile(NULL, NULL, &sTmpFile)); bEncrypted = true;
decode(sURL, sTmpFile);
sURL = sTmpFile;
} }
}
//output name early, so in the case of a hang, the name of OString aRes(OUStringToOString(sURL,
//the hanging input file is visible osl_getThreadTextEncoding()));
fprintf(stderr, "%s,", aRes.getStr());
sal_uInt32 nStartTime = osl_getGlobalTimer(); OUString realUrl;
bool bRes; if (bEncrypted)
if (!bExport) {
bRes = load(rFilter, sURL, rUserData, nFilterFlags, CPPUNIT_ASSERT(osl::FileBase::E_None == osl::FileBase::createTempFile(NULL, NULL, &sTmpFile));
nClipboardID, nFilterVersion); decode(sURL, sTmpFile);
else realUrl = sTmpFile;
bRes = save(rFilter, sURL, rUserData, nFilterFlags,
nClipboardID, nFilterVersion);
sal_uInt32 nEndTime = osl_getGlobalTimer();
if (bEncrypted)
CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, osl::File::remove(sTmpFile));
fprintf(stderr, "%s,%" SAL_PRIuUINT32"\n",
bRes?"Pass":"Fail",nEndTime-nStartTime);
if (nExpected == test::indeterminate)
continue;
filterStatus nResult = bRes ? test::pass : test::fail;
CPPUNIT_ASSERT_MESSAGE(aRes.getStr(), nResult == nExpected);
} }
else
{
realUrl = sURL;
}
//output name early, so in the case of a hang, the name of
//the hanging input file is visible
fprintf(stderr, "%s,", aRes.getStr());
sal_uInt32 nStartTime = osl_getGlobalTimer();
bool bRes;
if (!bExport)
bRes = load(rFilter, realUrl, rUserData, nFilterFlags,
nClipboardID, nFilterVersion);
else
bRes = save(rFilter, realUrl, rUserData, nFilterFlags,
nClipboardID, nFilterVersion);
sal_uInt32 nEndTime = osl_getGlobalTimer();
if (bEncrypted)
CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, osl::File::remove(sTmpFile));
fprintf(stderr, "%s,%" SAL_PRIuUINT32"\n",
bRes?"Pass":"Fail",nEndTime-nStartTime);
if (nExpected == test::indeterminate)
continue;
filterStatus nResult = bRes ? test::pass : test::fail;
CPPUNIT_ASSERT_MESSAGE(aRes.getStr(), nResult == nExpected);
} }
CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.close()); CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.close());
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment