1 #include "tst_ModuleProject.h"
9 void tst_ModuleProject::initTestCase()
11 pjControl = ProjectControl::getInstance();
12 resourceDir =
"resources";
13 resourceDir = resourceDir+QDir::separator()+
"documents"+QDir::separator();
15 QString baseDir =
"..";
16 profileDir = baseDir+QDir::separator()+
"extensions"+QDir::separator();
18 lgControl = LanguageControl::getInstance();
20 pluginList = TestUtil::getPluginList();
22 pgControl = PluginControl::getInstance();
30 void tst_ModuleProject::cleanupTestCase()
32 ProjectControl::releaseInstance();
34 LanguageControl::releaseInstance();
36 PluginControl::releaseInstance();
39 QString projectDir = resourceDir + QDir::separator() +
"projects";
40 QDir docDir(projectDir);
41 docDir.setFilter(QDir::Files | QDir::NoSymLinks);
42 QFileInfoList list = docDir.entryInfoList();
44 for (
int i = 0; i != list.size(); i++)
46 QFileInfo fileInfo = list.at(i);
47 cout <<
"Trying to remove " << fileInfo.absoluteFilePath().toStdString();
48 QFile file(fileInfo.absoluteFilePath());
53 void tst_ModuleProject::init()
56 QString filename = profileDir+QDir::separator()+
57 "NCL"+QDir::separator()+
"libNCLLanguageProfile.dylib";
61 QString filename = profileDir+QDir::separator()
62 +
"NCL"+QDir::separator()+
"libNCLLanguageProfile.so";
67 QVERIFY(lgControl->loadProfile(filename));
71 void tst_ModuleProject::cleanup()
73 lgControl->removeProfile(NCL);
76 void tst_ModuleProject::importFromExistingNCL_data()
78 QTest::addColumn<QString>(
"docFileName");
79 QTest::addColumn<QString>(
"projectFileName");
80 QTest::addColumn<int>(
"size");
81 QTest::addColumn<int>(
"numPlugins");
83 QDir docDir(resourceDir);
84 docDir.setFilter(QDir::Files | QDir::NoSymLinks);
85 docDir.setSorting(QDir::Size | QDir::Reversed);
87 QFileInfoList list = docDir.entryInfoList();
89 for (
int k = 1; k <= pluginList.size(); k++)
91 for (
int i = 0; i != list.size(); i++)
93 QFileInfo docFile = list.at(i);
94 if (docFile.completeSuffix() !=
"ncl")
continue;
95 QString absDocFile = docFile.absoluteFilePath();
96 QString absProjFile = docFile.absolutePath()+QDir::separator()+
97 "projects"+QDir::separator()+
98 docFile.baseName()+
".cpr";
99 int size = docFile.size();
100 QString teste =
"teste"+QString::number(k);
101 QTest::newRow(teste.toStdString().c_str())
102 << absDocFile << absProjFile << size << k;
108 void tst_ModuleProject::importFromExistingNCL()
110 QFETCH(QString, docFileName);
111 QFETCH(QString, projectFileName);
113 QFETCH(
int, numPlugins);
115 for (
int i = 0; i < numPlugins ;i++)
117 QString pluginName = pluginList.at(i);
118 pgControl->loadPlugin(pluginName);
122 QString filename =
"output/composer_";
123 filename += QString::number(numPlugins);
124 filename +=
"_plugins_importNCL_incremental.txt";
125 myfile.open(filename.toStdString().c_str());
129 gettimeofday(&begin,NULL);
130 pjControl->importFromDocument(docFileName, projectFileName);
131 gettimeofday(&end, NULL);
132 long long int interval = TestUtil::timeval_subtract_micro(begin, end);
133 cout << numPlugins <<
" " << size <<
" " << (double)interval/1000.0 <<
" ";
134 gettimeofday(&begin,NULL);
135 pjControl->saveProject(projectFileName);
136 gettimeofday(&end,NULL);
137 interval = TestUtil::timeval_subtract_micro(begin, end);
138 cout << (double) interval / 1000.0 << endl;
139 QApplication::processEvents();
141 QVERIFY(pjControl->closeProject(projectFileName));
145 void tst_ModuleProject::importNCLForEachPlugin_data()
147 QTest::addColumn<QString>(
"docFileName");
148 QTest::addColumn<QString>(
"projectFileName");
149 QTest::addColumn<int>(
"size");
150 QTest::addColumn<int>(
"pluginPos");
152 QDir docDir(resourceDir);
153 docDir.setFilter(QDir::Files | QDir::NoSymLinks);
154 docDir.setSorting(QDir::Size | QDir::Reversed);
156 QFileInfoList list = docDir.entryInfoList();
158 for (
int k = 0; k <= pluginList.size(); k++)
160 for (
int i = 0; i < list.size(); i++)
162 QFileInfo docFile = list.at(i);
163 if (docFile.completeSuffix() !=
"ncl")
continue;
164 QString absDocFile = docFile.absoluteFilePath();
165 QString absProjFile = docFile.absolutePath()+QDir::separator()+
166 "projects"+QDir::separator()+
167 docFile.baseName()+
".cpr";
168 int size = docFile.size();
169 QString teste =
"teste"+k;
170 QTest::newRow(teste.toStdString().c_str())
171 << absDocFile << absProjFile << size << k;
177 void tst_ModuleProject::importNCLForEachPlugin()
179 QFETCH(QString, docFileName);
180 QFETCH(QString, projectFileName);
182 QFETCH(
int, pluginPos);
184 QString pluginName = pluginList.at(pluginPos);
185 pgControl->loadPlugin(pluginName);
188 QString filename =
"output/composer_";
189 filename += QString::number(pluginPos);
190 filename +=
"_plugin_importForEachplugin.txt";
191 myfile.open(filename.toStdString().c_str());
194 gettimeofday(&begin,NULL);
195 pjControl->importFromDocument(docFileName, projectFileName);
196 gettimeofday(&end, NULL);
197 long long int interval = TestUtil::timeval_subtract_micro(begin, end);
198 myfile << pluginName.mid(pluginName.lastIndexOf(
"/")+1).toStdString().c_str()
199 <<
" " << size <<
" " << (double)interval/1000.0 <<
" ";
200 gettimeofday(&begin,NULL);
201 pjControl->saveProject(projectFileName);
202 gettimeofday(&end,NULL);
203 interval = TestUtil::timeval_subtract_micro(begin, end);
204 myfile << (double)interval / 1000.0 << endl;
205 QVERIFY(pjControl->closeProject(projectFileName));