diff --git a/extensions/http-curl/tests/HTTPIntegrationBase.h b/extensions/http-curl/tests/HTTPIntegrationBase.h
index 03a2c73..4ab623b 100644
--- a/extensions/http-curl/tests/HTTPIntegrationBase.h
+++ b/extensions/http-curl/tests/HTTPIntegrationBase.h
@@ -34,7 +34,7 @@
 
 class CoapIntegrationBase : public IntegrationBase {
  public:
-  CoapIntegrationBase(uint64_t waitTime = 60000)
+  CoapIntegrationBase(uint64_t waitTime = DEFAULT_WAITTIME_MSECS)
       : IntegrationBase(waitTime),
         server(nullptr) {
   }
diff --git a/extensions/http-curl/tests/HTTPSiteToSiteTests.cpp b/extensions/http-curl/tests/HTTPSiteToSiteTests.cpp
index 378c143..0d2ec0c 100644
--- a/extensions/http-curl/tests/HTTPSiteToSiteTests.cpp
+++ b/extensions/http-curl/tests/HTTPSiteToSiteTests.cpp
@@ -58,7 +58,7 @@
     dir = testController.createTempDirectory(format);
   }
 
-  void testSetup() {
+  void testSetup() override {
     LogTestController::getInstance().setTrace<minifi::RemoteProcessorGroupPort>();
     LogTestController::getInstance().setTrace<minifi::sitetosite::HttpSiteToSiteClient>();
     LogTestController::getInstance().setTrace<minifi::sitetosite::SiteToSiteClient>();
@@ -78,15 +78,9 @@
     configuration->set("nifi.remote.input.socket.port", "8099");
   }
 
-  virtual void waitToVerifyProcessor() {
-    std::this_thread::sleep_for(std::chrono::seconds(3));
-  }
+  void cleanup() override {}
 
-  void cleanup() {
-  }
-
-  void runAssertions() {
-  }
+  void runAssertions() override {}
 
  protected:
   bool isSecure;
diff --git a/extensions/standard-processors/tests/integration/SecureSocketGetTCPTest.cpp b/extensions/standard-processors/tests/integration/SecureSocketGetTCPTest.cpp
index 19d0f31..cb70147 100644
--- a/extensions/standard-processors/tests/integration/SecureSocketGetTCPTest.cpp
+++ b/extensions/standard-processors/tests/integration/SecureSocketGetTCPTest.cpp
@@ -58,7 +58,7 @@
     dir = testController.createTempDirectory(format);
   }
 
-  void testSetup() {
+  void testSetup() override {
     LogTestController::getInstance().setDebug<minifi::io::Socket>();
     LogTestController::getInstance().setDebug<minifi::io::TLSContext>();
     LogTestController::getInstance().setDebug<core::ProcessSession>();
@@ -71,15 +71,17 @@
     file.close();
   }
 
-  void cleanup() {
+  void cleanup() override {
     LogTestController::getInstance().reset();
   }
 
-  void runAssertions() {
+  void runAssertions() override {
+    isRunning_ = false;
+    server_socket_.reset();
     assert(LogTestController::getInstance().contains("send succeed 20"));
   }
 
-  void queryRootProcessGroup(std::shared_ptr<core::ProcessGroup> pg) {
+  void queryRootProcessGroup(std::shared_ptr<core::ProcessGroup> pg) override {
     std::shared_ptr<core::Processor> proc = pg->findProcessor("invoke");
     assert(proc != nullptr);
 
@@ -107,8 +109,8 @@
     if (host == "localhost") {
       host = org::apache::nifi::minifi::io::Socket::getMyHostName();
     }
-    server_socket = std::make_shared<org::apache::nifi::minifi::io::TLSServerSocket>(socket_context, host, std::stoi(hostAndPort.at(1)), 3);
-    server_socket->initialize();
+    server_socket_ = std::make_shared<org::apache::nifi::minifi::io::TLSServerSocket>(socket_context, host, std::stoi(hostAndPort.at(1)), 3);
+    server_socket_->initialize();
 
     isRunning_ = true;
     check = [this]() -> bool {
@@ -122,50 +124,7 @@
       *size = 20;
       return *size;
     };
-    server_socket->registerCallback(check, handler);
-  }
-
-  void run(std::string test_file_location) {
-    testSetup();
-
-    std::shared_ptr<core::Repository> test_repo = std::make_shared<TestRepository>();
-    std::shared_ptr<core::Repository> test_flow_repo = std::make_shared<TestFlowRepository>();
-
-    configuration->set(minifi::Configure::nifi_flow_configuration_file, test_file_location);
-
-    std::shared_ptr<core::ContentRepository> content_repo = std::make_shared<core::repository::VolatileContentRepository>();
-    content_repo->initialize(configuration);
-    std::shared_ptr<minifi::io::StreamFactory> stream_factory = minifi::io::StreamFactory::getInstance(configuration);
-    std::unique_ptr<core::FlowConfiguration> yaml_ptr = std::unique_ptr<core::YamlConfiguration>(
-        new core::YamlConfiguration(test_repo, test_repo, content_repo, stream_factory, configuration, test_file_location));
-
-    core::YamlConfiguration yaml_config(test_repo, test_repo, content_repo, stream_factory, configuration, test_file_location);
-
-    std::unique_ptr<core::ProcessGroup> ptr = yaml_config.getRoot(test_file_location);
-    std::shared_ptr<core::ProcessGroup> pg = std::shared_ptr<core::ProcessGroup>(ptr.get());
-
-    queryRootProcessGroup(pg);
-
-    ptr.release();
-
-    std::shared_ptr<TestRepository> repo = std::static_pointer_cast<TestRepository>(test_repo);
-
-    std::shared_ptr<minifi::FlowController> controller = std::make_shared<minifi::FlowController>(test_repo, test_flow_repo, configuration, std::move(yaml_ptr), content_repo, DEFAULT_ROOT_GROUP_NAME,
-                                                                                                  true);
-    controller->load();
-    controller->start();
-    waitToVerifyProcessor();
-    controller->waitUnload(60000);
-    isRunning_ = false;
-    server_socket->closeStream();
-    server_socket = nullptr;
-    runAssertions();
-
-    cleanup();
-  }
-
-  virtual void waitToVerifyProcessor() {
-    std::this_thread::sleep_for(std::chrono::seconds(3));
+    server_socket_->registerCallback(check, handler);
   }
 
  protected:
@@ -176,7 +135,7 @@
   std::string dir;
   std::stringstream ss;
   TestController testController;
-  std::shared_ptr<org::apache::nifi::minifi::io::TLSServerSocket> server_socket;
+  std::shared_ptr<org::apache::nifi::minifi::io::TLSServerSocket> server_socket_;
 };
 
 static void sigpipe_handle(int x) {
diff --git a/extensions/standard-processors/tests/integration/TailFileTest.cpp b/extensions/standard-processors/tests/integration/TailFileTest.cpp
index 3a460a9..7f1cb85 100644
--- a/extensions/standard-processors/tests/integration/TailFileTest.cpp
+++ b/extensions/standard-processors/tests/integration/TailFileTest.cpp
@@ -44,7 +44,7 @@
 
 class TailFileTestHarness : public IntegrationBase {
  public:
-  TailFileTestHarness() {
+  TailFileTestHarness() : IntegrationBase(1000) {
     char format[] = "/tmp/ssth.XXXXXX";
     dir = testController.createTempDirectory(format);
 
@@ -57,25 +57,25 @@
     file.close();
   }
 
-  void testSetup() {
+  void testSetup() override {
     LogTestController::getInstance().setInfo<minifi::processors::LogAttribute>();
     LogTestController::getInstance().setTrace<minifi::processors::TailFile>();
     LogTestController::getInstance().setTrace<minifi::FlowController>();
   }
 
-  virtual void cleanup() {
+  void cleanup() override {
     unlink(ss.str().c_str());
     unlink(statefile.c_str());
   }
 
-  virtual void runAssertions() {
+  void runAssertions() override {
     assert(LogTestController::getInstance().contains("5 flowfiles were received from TailFile input") == true);
     assert(LogTestController::getInstance().contains("Looking for delimiter 0xA") == true);
     assert(LogTestController::getInstance().contains("li\\ne5") == true);
   }
 
  protected:
-  virtual void updateProperties(std::shared_ptr<minifi::FlowController> fc) {
+  void updateProperties(std::shared_ptr<minifi::FlowController> fc) override {
     for (auto &comp : fc->getComponents("tf")) {
       std::shared_ptr<minifi::state::ProcessorController> proc = std::dynamic_pointer_cast<minifi::state::ProcessorController>(comp);
       if (nullptr != proc) {
diff --git a/libminifi/test/integration/IntegrationBase.h b/libminifi/test/integration/IntegrationBase.h
index c247312..c51dd2c 100644
--- a/libminifi/test/integration/IntegrationBase.h
+++ b/libminifi/test/integration/IntegrationBase.h
@@ -18,6 +18,8 @@
 #ifndef LIBMINIFI_TEST_INTEGRATION_INTEGRATIONBASE_H_
 #define LIBMINIFI_TEST_INTEGRATION_INTEGRATIONBASE_H_
 
+#define DEFAULT_WAITTIME_MSECS 3000
+
 #include "core/logging/Logger.h"
 #include "core/ProcessGroup.h"
 #include "core/yaml/YamlConfiguration.h"
@@ -31,7 +33,7 @@
 
 class IntegrationBase {
  public:
-  IntegrationBase(uint64_t waitTime = 60000);
+  IntegrationBase(uint64_t waitTime = DEFAULT_WAITTIME_MSECS);
 
   virtual ~IntegrationBase();
 
@@ -53,7 +55,7 @@
   virtual void runAssertions() = 0;
 
   virtual void waitToVerifyProcessor() {
-    std::this_thread::sleep_for(std::chrono::seconds(3));
+    std::this_thread::sleep_for(std::chrono::milliseconds(wait_time_));
   }
 
  protected:
diff --git a/libminifi/test/resources/TestTailFile.yml b/libminifi/test/resources/TestTailFile.yml
index a1a78b9..e15a600 100644
--- a/libminifi/test/resources/TestTailFile.yml
+++ b/libminifi/test/resources/TestTailFile.yml
@@ -36,8 +36,7 @@
       id: 2438e3c8-015a-1000-79ca-83af40ec1995
       class: org.apache.nifi.processors.standard.LogAttribute
       max concurrent tasks: 1
-      scheduling strategy: TIMER_DRIVEN
-      scheduling period: 500 msec
+      scheduling strategy: EVENT_DRIVEN
       penalization period: 30 sec
       yield period: 1 sec
       run duration nanos: 0
@@ -45,6 +44,7 @@
        - success
       Properties:
         Log Payload: true
+        FlowFiles To Log: 0
 
 Connections:
     - name: tr1
diff --git a/libminifi/test/resources/TestTailFileCron.yml b/libminifi/test/resources/TestTailFileCron.yml
index dd30937..fdf63c0 100644
--- a/libminifi/test/resources/TestTailFileCron.yml
+++ b/libminifi/test/resources/TestTailFileCron.yml
@@ -36,8 +36,7 @@
       id: 2438e3c8-015a-1000-79ca-83af40ec1995
       class: org.apache.nifi.processors.standard.LogAttribute
       max concurrent tasks: 1
-      scheduling strategy: TIMER_DRIVEN
-      scheduling period: 500 msec
+      scheduling strategy: EVENT_DRIVEN
       penalization period: 30 sec
       yield period: 1 sec
       run duration nanos: 0
@@ -45,6 +44,7 @@
        - success
       Properties:
         Log Payload: true
+        FlowFiles To Log: 0
 
 Connections:
     - name: tr1
