LCOV - code coverage report
Current view: top level - source/server - regex_engine.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 10 16 62.5 %
Date: 2024-01-05 06:35:25 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include "source/server/regex_engine.h"
       2             : 
       3             : #include "source/common/common/regex.h"
       4             : #include "source/common/config/utility.h"
       5             : 
       6             : namespace Envoy {
       7             : namespace Server {
       8             : 
       9             : Regex::EnginePtr createRegexEngine(const envoy::config::bootstrap::v3::Bootstrap& bootstrap,
      10             :                                    ProtobufMessage::ValidationVisitor& validation_visitor,
      11         248 :                                    Configuration::ServerFactoryContext& server_factory_context) {
      12         248 :   Regex::EnginePtr regex_engine;
      13         248 :   if (bootstrap.has_default_regex_engine()) {
      14           0 :     const auto& default_regex_engine = bootstrap.default_regex_engine();
      15           0 :     Regex::EngineFactory& factory =
      16           0 :         Config::Utility::getAndCheckFactory<Regex::EngineFactory>(default_regex_engine);
      17           0 :     auto config = Config::Utility::translateAnyToFactoryConfig(default_regex_engine.typed_config(),
      18           0 :                                                                validation_visitor, factory);
      19           0 :     regex_engine = factory.createEngine(*config, server_factory_context);
      20         248 :   } else {
      21         248 :     regex_engine = std::make_shared<Regex::GoogleReEngine>();
      22         248 :   }
      23         248 :   Regex::EngineSingleton::clear();
      24         248 :   Regex::EngineSingleton::initialize(regex_engine.get());
      25             : 
      26         248 :   return regex_engine;
      27         248 : }
      28             : 
      29             : } // namespace Server
      30             : } // namespace Envoy

Generated by: LCOV version 1.15