userver: components::TestsuiteSupport Class Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts

#include <userver/testsuite/testsuite_support.hpp>

Detailed Description

Testsuite support component.

Provides additional functionality for testing, e.g. forced cache updates.

Static options:

Name Description Default value
testsuite-periodic-update-enabled whether caches update periodically true
testsuite-pg-execute-timeout execute timeout override for postgres -
testsuite-pg-statement-timeout statement timeout override for postgres -
testsuite-pg-readonly-master-expected mutes readonly master detection warning false
testsuite-redis-timeout-connect minimum connection timeout for redis -
testsuite-redis-timeout-single minimum single shard timeout for redis -
testsuite-redis-timeout-all minimum command timeout for redis -
testsuite-tasks-enabled enable testsuite tasks facility false
testsuite-increased-timeout increase timeouts for connections, statement executions, RPC timeouts to avoid timeouts happening in testing environments, where the hardware differs from production. Overrides postgres, redis and grpc timeouts if these are missing 0ms
cache-update-execution If 'sequential' the caches are updated by testsuite sequentially in the order for cache component registration, which makes sense if service has components that push value into a cache component. If 'concurrent' the caches are updated concurrently with respect to the cache component dependencies. concurrent

Static configuration example:

    testsuite-support:
      testsuite-periodic-update-enabled: true
      testsuite-pg-execute-timeout: 300ms
      testsuite-pg-statement-timeout: 300ms
      testsuite-pg-readonly-master-expected: false
      testsuite-redis-timeout-connect: 5s
      testsuite-redis-timeout-single: 1s
      testsuite-redis-timeout-all: 750ms
      testsuite-increased-timeout: 40s
      cache-update-execution: concurrent
Examples
samples/grpc_middleware_service/src/main.cpp, samples/grpc_service/grpc_service.cpp, samples/http_caching/http_caching.cpp, and samples/postgres_service/postgres_service.cpp.

Definition at line 53 of file testsuite_support.hpp.

+ Inheritance diagram for components::TestsuiteSupport:
+ Collaboration diagram for components::TestsuiteSupport:

Public Member Functions

 TestsuiteSupport (const components::ComponentConfig &component_config, const components::ComponentContext &component_context)
 
testsuite::CacheControlGetCacheControl ()
 
testsuite::DumpControlGetDumpControl ()
 
testsuite::PeriodicTaskControlGetPeriodicTaskControl ()
 
testsuite::TestpointControlGetTestpointControl ()
 
const testsuite::PostgresControlGetPostgresControl ()
 
const testsuite::RedisControlGetRedisControl ()
 
testsuite::TestsuiteTasksGetTestsuiteTasks ()
 
testsuite::HttpAllowedUrlsExtraGetHttpAllowedUrlsExtra ()
 
testsuite::GrpcControlGetGrpcControl ()
 
std::chrono::milliseconds GetIncreasedTimeout () const noexcept
 

Static Public Member Functions

static yaml_config::Schema GetStaticConfigSchema ()
 

Static Public Attributes

static constexpr std::string_view kName = "testsuite-support"
 The default name of components::TestsuiteSupport.
 

Member Function Documentation

◆ GetIncreasedTimeout()

std::chrono::milliseconds components::TestsuiteSupport::GetIncreasedTimeout ( ) const
noexcept
Returns
0 if timeout was not increased via testsuite-increased-timeout static option, testsuite-increased-timeout value otherwise

The documentation for this class was generated from the following file: