...

Text file src/github.com/emissary-ingress/emissary/v3/pkg/envoy-control-plane/test/main/README.md

Documentation: github.com/emissary-ingress/emissary/v3/pkg/envoy-control-plane/test/main

     1# End-to-end testing script
     2
     3This directory contains a basic end-to-end testing script.
     4The script sets up a configuration cache, stands up a configuration server,
     5and starts up Envoy with the server as either ADS or xDS discovery option. The
     6configuration is periodically refreshed with new routes and new clusters. In
     7parallel, the test sends echo requests one after another through Envoy,
     8exercising the pushed configuration.
     9
    10## Requirements
    11
    12* Envoy binary `envoy` available: set `ENVOY` environment variable to the
    13  location of the binary, or use the default value `/usr/local/bin/envoy`
    14* `go-control-plane` builds successfully
    15
    16## Steps
    17
    18To run the script with a single ADS server:
    19
    20    make integration.ads
    21
    22To run the script with a single server configured as different xDS servers:
    23
    24    make integration.xds
    25
    26To run the script with a single server configured to use `Fetch` through HTTP:
    27
    28    make integration.rest
    29
    30You should see runs of configuration push events and request batch reports. The
    31test executes batches of requests to exercise multiple listeners, routes, and
    32clusters, and records the number of successful and failed requests. The test is
    33successful if at least one batch passes through all requests (e.g. Envoy
    34eventually converges to use the latest pushed configuration) for each run.
    35
    36## Customizing the test driver
    37
    38You can run ```bin/test -help``` to get a list of the cli flags that
    39the test program accepts.  There are also comments in ```main.go```.
    40
    41## Using the pprof profiler
    42
    43One customization is to run the go language profiler [pprof](https://github.com/DataDog/go-profiler-notes/blob/main/pprof.md). See also <https://golang.org/pkg/runtime/pprof/>.
    44
    45The profiler is normally off because it adds overhead to the tests. You can turn 
    46it on with the command line option `--pprof`. There is an environment variable 
    47`PPROF` for the `make` commands shown above. For example:
    48
    49    (export PPROF=true; make integration.xds)
    50
    51The test will then write files of the form `block_profile_xds.pb.gz`. The files
    52get written to the root of the project, in the same place as the envoy logs.
    53
    54You can use `go tool pprof bin/test <file name>` to analyze the profile data. 

View as plain text