MCPcopy Create free account
hub / github.com/Samsung/UTopia / updateFuzzInputMapAndArrayGroups

Method updateFuzzInputMapAndArrayGroups

lib/generation/FuzzInput.cpp:229–265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

227}
228
229void FuzzInputGenerator::updateFuzzInputMapAndArrayGroups(
230 std::map<unsigned, std::shared_ptr<FuzzInput>> &FuzzInputMap,
231 std::map<unsigned, std::shared_ptr<FuzzNoInput>> &FuzzNoInputMap,
232 std::vector<std::set<unsigned>> &ArrayGroups) const {
233
234 std::set<std::shared_ptr<FuzzNoInput>> TemporalFuzzNoInputs;
235
236 for (auto NIMIter : FuzzNoInputMap) {
237 auto NoInputDefID = NIMIter.first;
238 auto GroupIter =
239 std::find_if(ArrayGroups.begin(), ArrayGroups.end(),
240 [NoInputDefID](const std::set<unsigned> &Group) {
241 return Group.find(NoInputDefID) != Group.end();
242 });
243 if (GroupIter == ArrayGroups.end())
244 continue;
245
246 for (auto Member : *GroupIter) {
247 auto IMIter = FuzzInputMap.find(Member);
248 if (IMIter == FuzzInputMap.end())
249 continue;
250
251 assert(IMIter->second && "Unexpected Program State");
252 auto NoInput = FuzzNoInputFactory().generate(IMIter->second->getDefPtr(),
253 NIMIter.first);
254 TemporalFuzzNoInputs.insert(NoInput);
255 FuzzInputMap.erase(IMIter);
256 }
257 ArrayGroups.erase(GroupIter);
258 }
259
260 for (auto &NoInput : TemporalFuzzNoInputs) {
261 assert(NoInput && "Unexpected Program State");
262 auto Insert = FuzzNoInputMap.emplace(NoInput->getDefID(), NoInput);
263 assert(Insert.second && "Unexpected Program State");
264 }
265}
266
267void FuzzInputGenerator::applyArrayPolicies(
268 std::map<unsigned, std::shared_ptr<FuzzInput>> &FuzzInputMap,

Callers

nothing calls this directly

Calls 7

find_ifFunction · 0.85
FuzzNoInputFactoryClass · 0.85
beginMethod · 0.80
endMethod · 0.80
getDefIDMethod · 0.80
findMethod · 0.45
generateMethod · 0.45

Tested by

no test coverage detected