diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-11-19 16:42:32 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-11-20 11:33:58 +0000 |
| commit | f56b4dcc82d7af38bf94d643c5750cf49a91a297 (patch) | |
| tree | 19b2ea6bfcbf61ab7287d420f39c45432bd9b4cc /pkg/flatrpc | |
| parent | 7d02db5adbb376babbbd3199f8c530e468292727 (diff) | |
pkg/manager: show number of times coverage for each call has overflowed
If the overflows happen often, it's bad.
Add visibility into this.
Diffstat (limited to 'pkg/flatrpc')
| -rw-r--r-- | pkg/flatrpc/flatrpc.fbs | 1 | ||||
| -rw-r--r-- | pkg/flatrpc/flatrpc.go | 27 | ||||
| -rw-r--r-- | pkg/flatrpc/flatrpc.h | 20 |
3 files changed, 31 insertions, 17 deletions
diff --git a/pkg/flatrpc/flatrpc.fbs b/pkg/flatrpc/flatrpc.fbs index 51066d9a4..0bd32b743 100644 --- a/pkg/flatrpc/flatrpc.fbs +++ b/pkg/flatrpc/flatrpc.fbs @@ -202,6 +202,7 @@ enum CallFlag : uint8 (bit_flags) { Finished, // finished executing (rather than blocked forever) Blocked, // finished but blocked during execution FaultInjected, // fault was injected into this call + CoverageOverflow, // coverage buffer has overflowed so we have truncated coverage } table CallInfoRaw { diff --git a/pkg/flatrpc/flatrpc.go b/pkg/flatrpc/flatrpc.go index 0a9c0e0d0..8445cde2d 100644 --- a/pkg/flatrpc/flatrpc.go +++ b/pkg/flatrpc/flatrpc.go @@ -392,24 +392,27 @@ func (v ExecFlag) String() string { type CallFlag byte const ( - CallFlagExecuted CallFlag = 1 - CallFlagFinished CallFlag = 2 - CallFlagBlocked CallFlag = 4 - CallFlagFaultInjected CallFlag = 8 + CallFlagExecuted CallFlag = 1 + CallFlagFinished CallFlag = 2 + CallFlagBlocked CallFlag = 4 + CallFlagFaultInjected CallFlag = 8 + CallFlagCoverageOverflow CallFlag = 16 ) var EnumNamesCallFlag = map[CallFlag]string{ - CallFlagExecuted: "Executed", - CallFlagFinished: "Finished", - CallFlagBlocked: "Blocked", - CallFlagFaultInjected: "FaultInjected", + CallFlagExecuted: "Executed", + CallFlagFinished: "Finished", + CallFlagBlocked: "Blocked", + CallFlagFaultInjected: "FaultInjected", + CallFlagCoverageOverflow: "CoverageOverflow", } var EnumValuesCallFlag = map[string]CallFlag{ - "Executed": CallFlagExecuted, - "Finished": CallFlagFinished, - "Blocked": CallFlagBlocked, - "FaultInjected": CallFlagFaultInjected, + "Executed": CallFlagExecuted, + "Finished": CallFlagFinished, + "Blocked": CallFlagBlocked, + "FaultInjected": CallFlagFaultInjected, + "CoverageOverflow": CallFlagCoverageOverflow, } func (v CallFlag) String() string { diff --git a/pkg/flatrpc/flatrpc.h b/pkg/flatrpc/flatrpc.h index 5232114b3..94e1c15f6 100644 --- a/pkg/flatrpc/flatrpc.h +++ b/pkg/flatrpc/flatrpc.h @@ -649,23 +649,25 @@ enum class CallFlag : uint8_t { Finished = 2, Blocked = 4, FaultInjected = 8, + CoverageOverflow = 16, NONE = 0, - ANY = 15 + ANY = 31 }; FLATBUFFERS_DEFINE_BITMASK_OPERATORS(CallFlag, uint8_t) -inline const CallFlag (&EnumValuesCallFlag())[4] { +inline const CallFlag (&EnumValuesCallFlag())[5] { static const CallFlag values[] = { CallFlag::Executed, CallFlag::Finished, CallFlag::Blocked, - CallFlag::FaultInjected + CallFlag::FaultInjected, + CallFlag::CoverageOverflow }; return values; } inline const char * const *EnumNamesCallFlag() { - static const char * const names[9] = { + static const char * const names[17] = { "Executed", "Finished", "", @@ -674,13 +676,21 @@ inline const char * const *EnumNamesCallFlag() { "", "", "FaultInjected", + "", + "", + "", + "", + "", + "", + "", + "CoverageOverflow", nullptr }; return names; } inline const char *EnumNameCallFlag(CallFlag e) { - if (flatbuffers::IsOutRange(e, CallFlag::Executed, CallFlag::FaultInjected)) return ""; + if (flatbuffers::IsOutRange(e, CallFlag::Executed, CallFlag::CoverageOverflow)) return ""; const size_t index = static_cast<size_t>(e) - static_cast<size_t>(CallFlag::Executed); return EnumNamesCallFlag()[index]; } |
