dustmite

DustMite, a D test case minimization tool Written by Vladimir Panteleev <vladimir@thecybershadow.net> Released into the Public Domain

Members

Classes

CarefulStrategy
class CarefulStrategy

Keep going deeper until we find a successful reduction. When found, finish tests at current depth and restart from top depth (new iteration). If we reach the bottom (depth with no nodes on it), we're done.

InBreadthStrategy
class InBreadthStrategy

Keep going deeper. If we reach the bottom (depth with no nodes on it), start a new iteration. If we finish an iteration without finding any reductions, we're done.

InDepthStrategy
class InDepthStrategy

Look at every entity in the tree. If we can reduce this entity, continue looking at its siblings. Otherwise, recurse and look at its children. End an iteration once we looked at an entire tree. If we finish an iteration without finding any reductions, we're done.

LookbackStrategy
class LookbackStrategy

Keep going deeper until we find a successful reduction. When found, go up a depth level. Keep going up while we find new reductions. Repeat topmost depth level as necessary. Once no new reductions are found at higher depths, jump to the next unvisited depth in this iteration. If we reach the bottom (depth with no nodes on it), start a new iteration. If we finish an iteration without finding any reductions, we're done.

PingPongStrategy
class PingPongStrategy

Keep going deeper until we find a successful reduction. When found, go up a depth level. Keep going up while we find new reductions. Repeat topmost depth level as necessary. Once no new reductions are found at higher depths, start going downwards again. If we reach the bottom (depth with no nodes on it), start a new iteration. If we finish an iteration without finding any reductions, we're done.

Functions

applyReduction
void applyReduction(ref Reduction r)

Permanently apply specified reduction to set.

exists2
bool exists2(string path)

Alternative way to check for file existence Files marked for deletion act as inexistant, but still prevent creation and appear in directory listings

findAddressAtLevel
bool findAddressAtLevel(size_t[] address, Entity root)

Find the first address at the depth of address.length, and populate address[] accordingly. Return false if no address at that level could be found.

nextAddress
bool nextAddress(ref size_t[] address, lazy Entity root, bool descend)

Find the next address, starting from the given one (going depth-first). Update address accordingly. If descend is false, then skip addresses under the given one. Return false if no more addresses could be found.

nextAddressInLevel
bool nextAddressInLevel(size_t[] address, lazy Entity root)

Find the next address at the depth of address.length, and update address[] accordingly. Return false if no more addresses at that level could be found.

tryReduction
bool tryReduction(Reduction r)

Try specified reduction. If it succeeds, apply it permanently and save intermediate result.

Meta