testTestSourceProcessor

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/TestProcessor/interface/TestSourceProcessor.h"

#include <cppunit/extensions/HelperMacros.h>

class testTestSourceProcessor : public CppUnit::TestFixture {
  CPPUNIT_TEST_SUITE(testTestSourceProcessor);
  CPPUNIT_TEST(simpleTest);

  CPPUNIT_TEST_SUITE_END();

public:
  void setUp() {}
  void tearDown() {}
  void simpleTest();

private:
};

///registration of the test so that the runner can find it
CPPUNIT_TEST_SUITE_REGISTRATION(testTestSourceProcessor);

void testTestSourceProcessor::simpleTest() {
  char const* kTest =
      "from FWCore.TestProcessor.TestSourceProcess import *\n"
      "process = TestSourceProcess()\n"
      "process.source = cms.Source('TestSource',"
      "transitions = cms.untracked.VPSet(\n"
      "cms.PSet(type = cms.untracked.string('IsFile'),\n"
      "         id = cms.untracked.EventID(0,0,0)),\n"
      "cms.PSet(type = cms.untracked.string('IsRun'),\n"
      "         id = cms.untracked.EventID(1,0,0)),\n"
      "cms.PSet(type = cms.untracked.string('IsLumi'),\n"
      "         id = cms.untracked.EventID(1,1,0)),\n"
      "cms.PSet(type = cms.untracked.string('IsEvent'),\n"
      "         id = cms.untracked.EventID(1,1,1)),\n"
      "cms.PSet(type = cms.untracked.string('IsEvent'),\n"
      "         id = cms.untracked.EventID(1,1,2)),\n"
      "cms.PSet(type = cms.untracked.string('IsEvent'),\n"
      "         id = cms.untracked.EventID(1,1,3)),\n"
      "cms.PSet(type = cms.untracked.string('IsEvent'),\n"
      "         id = cms.untracked.EventID(1,1,4)),\n"
      "cms.PSet(type = cms.untracked.string('IsEvent'),\n"
      "         id = cms.untracked.EventID(1,1,5)),\n"
      "cms.PSet(type = cms.untracked.string('IsStop'),\n"
      "         id = cms.untracked.EventID(0,0,0))\n"
      "))\n";
  edm::test::TestSourceProcessor tester(kTest);

  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsFile);
    auto f = tester.openFile();
    CPPUNIT_ASSERT(bool(f));
  }
  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsRun);
    auto r = tester.readRun();
    CPPUNIT_ASSERT(r.run() == 1);
  }
  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsLumi);
    auto r = tester.readLuminosityBlock();
    CPPUNIT_ASSERT(r.run() == 1);
    CPPUNIT_ASSERT(r.luminosityBlock() == 1);
  }
  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsEvent);
    auto r = tester.readEvent();
    CPPUNIT_ASSERT(r.run() == 1);
    CPPUNIT_ASSERT(r.luminosityBlock() == 1);
    CPPUNIT_ASSERT(r.event() == 1);
  }
  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsEvent);
    auto r = tester.readEvent();
    CPPUNIT_ASSERT(r.run() == 1);
    CPPUNIT_ASSERT(r.luminosityBlock() == 1);
    CPPUNIT_ASSERT(r.event() == 2);
  }
  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsEvent);
    auto r = tester.readEvent();
    CPPUNIT_ASSERT(r.run() == 1);
    CPPUNIT_ASSERT(r.luminosityBlock() == 1);
    CPPUNIT_ASSERT(r.event() == 3);
  }
  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsEvent);
    auto r = tester.readEvent();
    CPPUNIT_ASSERT(r.run() == 1);
    CPPUNIT_ASSERT(r.luminosityBlock() == 1);
    CPPUNIT_ASSERT(r.event() == 4);
  }
  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsEvent);
    auto r = tester.readEvent();
    CPPUNIT_ASSERT(r.run() == 1);
    CPPUNIT_ASSERT(r.luminosityBlock() == 1);
    CPPUNIT_ASSERT(r.event() == 5);
  }
  {
    auto n = tester.findNextTransition();
    CPPUNIT_ASSERT(n == edm::InputSource::ItemType::IsStop);
  }
}