blob: f70495e22553bd6d4787742eb1a8916883b37790 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#include "test/mixxxtest.h"
#include "library/coverartutils.h"
#include "sources/soundsourceproxy.h"
namespace {
QString makeTestConfigFile(const QString& path) {
QFile test_cfg(path);
test_cfg.open(QIODevice::ReadWrite);
test_cfg.close();
return path;
}
} // namespace
// Static initialization
QScopedPointer<MixxxApplication> MixxxTest::s_pApplication;
MixxxTest::ApplicationScope::ApplicationScope(int& argc, char** argv) {
DEBUG_ASSERT(!s_pApplication);
s_pApplication.reset(new MixxxApplication(argc, argv));
SoundSourceProxy::registerSoundSourceProviders();
// All guessing of cover art should be done synchronously
// in the same thread during tests to prevent test failures
// due to timing issues.
disableConcurrentGuessingOfTrackCoverInfoDuringTests();
}
MixxxTest::ApplicationScope::~ApplicationScope() {
DEBUG_ASSERT(s_pApplication);
s_pApplication.reset();
}
MixxxTest::MixxxTest() {
EXPECT_TRUE(m_testDataDir.isValid());
m_pConfig = UserSettingsPointer(new UserSettings(
makeTestConfigFile(getTestDataDir().filePath("test.cfg"))));
ControlDoublePrivate::setUserConfig(m_pConfig);
}
MixxxTest::~MixxxTest() {
// Mixxx leaks a ton of COs normally. To make new tests not affected by
// previous tests, we clear our all COs after every MixxxTest completion.
QList<QSharedPointer<ControlDoublePrivate>> leakedControls;
ControlDoublePrivate::getControls(&leakedControls);
foreach (QSharedPointer<ControlDoublePrivate> pCDP, leakedControls) {
if (pCDP.isNull()) {
continue;
}
ConfigKey key = pCDP->getKey();
delete pCDP->getCreatorCO();
}
}
|