struct Step
{ char *name; char *sql; /* These fields are filled by check_testspec(): */ int session; /* identifies owning session */ bool used; /* has step been used in a permutation? */
};
typedefenum
{
PSB_ONCE, /* force step to wait once */
PSB_OTHER_STEP, /* wait for another step to complete first */
PSB_NUM_NOTICES, /* wait for N notices from another session */
} PermutationStepBlockerType;
typedefstruct
{ char *stepname;
PermutationStepBlockerType blocktype; int num_notices; /* only used for PSB_NUM_NOTICES */ /* These fields are filled by check_testspec(): */
Step *step; /* link to referenced step (if any) */ /* These fields are runtime workspace: */ int target_notices; /* total notices needed from other session */
} PermutationStepBlocker;
typedefstruct
{ char *name; /* name of referenced Step */
PermutationStepBlocker **blockers; int nblockers; /* These fields are filled by check_testspec(): */
Step *step; /* link to referenced Step */
} PermutationStep;
typedefstruct
{ int nsteps;
PermutationStep **steps;
} Permutation;
typedefstruct
{ char **setupsqls; int nsetupsqls; char *teardownsql;
Session **sessions; int nsessions;
Permutation **permutations; int npermutations;
} TestSpec;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.