aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/flatrpc
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-11-19 16:42:32 +0100
committerDmitry Vyukov <dvyukov@google.com>2024-11-20 11:33:58 +0000
commitf56b4dcc82d7af38bf94d643c5750cf49a91a297 (patch)
tree19b2ea6bfcbf61ab7287d420f39c45432bd9b4cc /pkg/flatrpc
parent7d02db5adbb376babbbd3199f8c530e468292727 (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.fbs1
-rw-r--r--pkg/flatrpc/flatrpc.go27
-rw-r--r--pkg/flatrpc/flatrpc.h20
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];
}