envoyproxy / envoyproxy/envoy

integration tests should use simulated time

Aperta
#4,160 12 commenti 0 reazioni 0 assegnatari Vedi su GitHub
help wanted tech debt
Lingua principale
C++
Stelle
28.9k
Fork
5.6k
Merge medio
1g 22h
PR unite (30g)
430

Descrizione

*Description*:
>A slow testing environment causes test failures and flakes, such as the one described in https://github.com/envoyproxy/envoy/issues/4135. It also makes it hard to run tests under a debugger, which, in addition to helping to debug tests, is a strategy I use sometimes to learn code.

My feeling is that the root of this problem (and others) is singleton patterns like:
[ProdMonotonicTimeSource::instance_](https://github.com/envoyproxy/envoy/blob/a3c55bf7bc514202b203cc797b504212da797a47/source/common/common/utility.h#L117)

In the past I've used strategies where these get passed downward as the world gets constructed, so singletons are never referenced in code that needs to be tested (or even exist, usually).

My hope is that injecting MonotonicTime refs into key classes in the system will eliminate the need to reference singletons deeply.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.