コード例 #1
0
void extractScenarios(const std::string& script, Scenarios& scenarios) {
  int braceCounter = 0;
  Scenario scenario;
  std::vector<ScriptLine> lines = tokenizeInLines(script);

  std::for_each(lines.begin(), lines.end(),
                [&scenarios, &scenario, &braceCounter](ScriptLine& line) {
                  boost::trim(line.content);
                  if (isLine<CLOSE_SCENARIO>(line)) {
                    --braceCounter;
                  }
                  if (braceCounter == 1) {
                    scenario.push_back(line);
                  }
                  if (isLine<START_SCENARIO>(line)) {
                    ++braceCounter;
                  }
                  if (braceCounter == 0) {
                    if (!scenario.empty()) scenarios.push_back(scenario);
                    scenario.clear();
                  }

                });
}
コード例 #2
0
int TestMultiColumnIndex::execute()
{
    if (!MVTApp::startStore())
        { TVERIFY2(0, "Could not start store, bailing out completely"); return 1; }
    mSession = MVTApp::startSession();
    MVTApp::mapURIs(mSession, "TestMultiColumnIndex.prop", sizeof(mProps) / sizeof(mProps[0]), mProps);

    // index from 10th in mProps is used to mapping mapVT
    ValueType vtarray[] = { VT_INT, VT_DOUBLE, VT_STRING, VT_DOUBLE}; //TODO: more basic types
    mapVT = vtarray;
    num_mapVT = sizeof(vtarray)/sizeof(vtarray[0]);
    pos_end_collection = 0;
    // Describe the logical multi-index 'families'.
    // Note:
    //   The test expands each of these logical definitions into
    //   1) a multi-parameter family, and
    //   2) a join between multiple single-parameter families
    {
        /*
        DescrFamily lF1("TestMultiColumnIndex.A");
        lF1.mDescr.push_back(DescrCondition(0, OP_IN));
        lF1.mDescr.push_back(DescrCondition(1, OP_GT));
        lF1.mDescr.push_back(DescrCondition(2, OP_IN));
        mScenarios.push_back(lF1); // Note: Copied.
        pos_end_collection = 0;
        
        DescrFamily lF2("TestMultiColumnIndex.B");
        lF2.mDescr.push_back(DescrCondition(0, OP_IN));
        lF2.mDescr.push_back(DescrCondition(1, OP_IN));
        mScenarios.push_back(lF2); // Note: Copied.
        
        DescrFamily lF3("TestMultiColumnIndex.C");
        lF3.mDescr.push_back(DescrCondition(0, OP_GT));
        lF3.mDescr.push_back(DescrCondition(1, OP_GT));
        mScenarios.push_back(lF3); // Note: Copied.
        */
        // IF4 ~ IF6 is used to index on many test basic types(not on collections)
        DescrFamily lF4("TestMultiColumnIndex.C");
        lF4.mDescr.push_back(DescrCondition(10, OP_LT));
        lF4.mDescr.push_back(DescrCondition(13, OP_GT));
        mScenarios.push_back(lF4); // Note: Copied.

        DescrFamily lF5("TestMultiColumnIndex.D");
        lF5.mDescr.push_back(DescrCondition(11, OP_LT));
        lF5.mDescr.push_back(DescrCondition(12, OP_LT));
        lF5.mDescr.push_back(DescrCondition(13, OP_IN));
        mScenarios.push_back(lF5); // Note: Copied.

        DescrFamily lF6("TestMultiColumnIndex.E");
        lF6.mDescr.push_back(DescrCondition(10, OP_IN));
        lF6.mDescr.push_back(DescrCondition(12, OP_GT));
        lF6.mDescr.push_back(DescrCondition(13, OP_GT));
        mScenarios.push_back(lF6); // Note: Copied.
    }
    // TODO: more scenarios...

    {
        // TODO:
        //   build+c[r]ud+evaluate in different order
        //   (e.g. build all at beginning, vs all at end, vs progressively)
        //   (e.g. evaluate only some results vs all results)

        // Build the corresponding store families.
        for (Scenarios::iterator iS = mScenarios.begin(); mScenarios.end() != iS; iS++)
            buildFamilies(*iS);

        // Create pins.
        // TODO: all CRUD, not just create...
        //createPins();
        createPins2();

        // Delete some pins
        deletePins();

        // Evaluate results.
        evalResults();

        //delete some PINs and evaluate results.
    }

    mSession->terminate();
    MVTApp::stopStore();
    return 0;
}