@@ -67,14 +67,18 void FuzzingState::synchronizeVariable(VariableId variableId, SyncGroupId syncGr | |||
|
67 | 67 | return; |
|
68 | 68 | } |
|
69 | 69 | |
|
70 | // Registers variable into sync group: if it's the first variable, sets the variable range as | |
|
71 | // the sync group range | |
|
70 | // Registers variable into sync group | |
|
72 | 71 | auto &syncGroup = m_SyncGroupsPool.at(syncGroupId); |
|
72 | auto &variableState = m_VariablesPool.at(variableId); | |
|
73 | 73 | syncGroup.m_Variables.insert(variableId); |
|
74 | 74 | if (syncGroup.m_Variables.size() == 1) { |
|
75 | auto &variableState = m_VariablesPool.at(variableId); | |
|
75 | // If it's the first variable, sets the variable range as the sync group range | |
|
76 | 76 | syncGroup.m_Range = variableState.m_Range; |
|
77 | 77 | } |
|
78 | else { | |
|
79 | // If a variable is added to an existing group, sets its range to the group's range | |
|
80 | variableState.m_Range = syncGroup.m_Range; | |
|
81 | } | |
|
78 | 82 | } |
|
79 | 83 | |
|
80 | 84 | void FuzzingState::desynchronizeVariable(VariableId variableId, SyncGroupId syncGroupId) |
@@ -97,13 +101,18 void FuzzingState::updateRanges(VariableId variableId, const SqpRange &newRange) | |||
|
97 | 101 | auto syncGroupId = this->syncGroupId(variableId); |
|
98 | 102 | |
|
99 | 103 | // Retrieves the variables to update: |
|
100 |
// - if the variable is synchronized to others, updates |
|
|
104 | // - if the variable is synchronized to others, updates the range of the group and of all | |
|
105 | // synchronized variables | |
|
101 | 106 | // - otherwise, updates only the variable |
|
102 | auto variablesToUpdate = syncGroupId.isNull() ? std::set<VariableId>{variableId} | |
|
103 | : m_SyncGroupsPool.at(syncGroupId).m_Variables; | |
|
107 | if (syncGroupId.isNull()) { | |
|
108 | m_VariablesPool.at(variableId).m_Range = newRange; | |
|
109 | } | |
|
110 | else { | |
|
111 | auto &syncGroup = m_SyncGroupsPool.at(syncGroupId); | |
|
112 | syncGroup.m_Range = newRange; | |
|
104 | 113 | |
|
105 | // Sets new range | |
|
106 | for (const auto &variableId : variablesToUpdate) { | |
|
114 | for (const auto &variableId : syncGroup.m_Variables) { | |
|
107 | 115 | m_VariablesPool.at(variableId).m_Range = newRange; |
|
108 | 116 | } |
|
109 | 117 | } |
|
118 | } |
@@ -176,6 +176,9 struct SynchronizeOperation : public IFuzzingOperation { | |||
|
176 | 176 | |
|
177 | 177 | // Updates state |
|
178 | 178 | fuzzingState.synchronizeVariable(variableId, syncGroupId); |
|
179 | ||
|
180 | variableController.onRequestDataLoading({variableState.m_Variable}, variableState.m_Range, | |
|
181 | false); | |
|
179 | 182 | } |
|
180 | 183 | }; |
|
181 | 184 | |
@@ -197,7 +200,7 struct DesynchronizeOperation : public IFuzzingOperation { | |||
|
197 | 200 | qCInfo(LOG_FuzzingOperations()).noquote() << "Removing" << variableState.m_Variable->name() |
|
198 | 201 | << "from synchronization group" << syncGroupId |
|
199 | 202 | << "..."; |
|
200 |
variableController. |
|
|
203 | variableController.desynchronize(variableState.m_Variable, syncGroupId); | |
|
201 | 204 | |
|
202 | 205 | // Updates state |
|
203 | 206 | fuzzingState.desynchronizeVariable(variableId, syncGroupId); |
@@ -96,7 +96,7 public: | |||
|
96 | 96 | auto dataHoleIt = std::adjacent_find( |
|
97 | 97 | dataIts.first, dataIts.second, [](const auto &it1, const auto &it2) { |
|
98 | 98 | /// @todo: validate resolution |
|
99 |
return std::abs(it1.x() - it2.x()) > 2 * |
|
|
99 | return std::abs(it1.x() - it2.x()) > 2 * LOCALHOST_SERVER_RESOLUTION; | |
|
100 | 100 | }); |
|
101 | 101 | |
|
102 | 102 | if (dataHoleIt != dataIts.second) { |
@@ -370,6 +370,10 void TestAmdaFuzzing::testFuzzing() | |||
|
370 | 370 | |
|
371 | 371 | int main(int argc, char *argv[]) |
|
372 | 372 | { |
|
373 | // Increases the test function timeout (which is 5 minutes by default) to 12 hours | |
|
374 | // https://stackoverflow.com/questions/42655932/setting-timeout-to-qt-test | |
|
375 | qputenv("QTEST_FUNCTION_TIMEOUT", QByteArray::number(12*60*60*1000)); | |
|
376 | ||
|
373 | 377 | QLoggingCategory::setFilterRules( |
|
374 | 378 | "*.warning=false\n" |
|
375 | 379 | "*.info=false\n" |
General Comments 0
You need to be logged in to leave comments.
Login now