summaryrefslogtreecommitdiff
path: root/internal/streamrow/row_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-20 14:37:41 +0300
committerPaul Buetow <paul@buetow.org>2026-05-20 14:37:41 +0300
commit96355c79a38032ab4bd880b3b3ff4192ae709795 (patch)
tree7a395706e3db680f6e695c8602501741eed6ad45 /internal/streamrow/row_test.go
parentf063e626a28339735da583142e5af864a60c2111 (diff)
task 27: add KindSleep and requested sleep metric
Diffstat (limited to 'internal/streamrow/row_test.go')
-rw-r--r--internal/streamrow/row_test.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/internal/streamrow/row_test.go b/internal/streamrow/row_test.go
index 7573f43..9757722 100644
--- a/internal/streamrow/row_test.go
+++ b/internal/streamrow/row_test.go
@@ -62,6 +62,7 @@ func TestNewPopulatesFieldsFromPair(t *testing.T) {
pair.DurationToPrev = 19
pair.Bytes = 512
pair.AddressSpaceBytes = 2048
+ pair.RequestedSleepNs = 987_654
got := New(9, pair)
if got.Seq != 9 || got.TimeNs != 1234 {
@@ -82,6 +83,9 @@ func TestNewPopulatesFieldsFromPair(t *testing.T) {
if got.AddressSpaceBytes != 2048 {
t.Fatalf("AddressSpaceBytes = %d, want 2048", got.AddressSpaceBytes)
}
+ if got.RequestedSleepNs != 987_654 {
+ t.Fatalf("RequestedSleepNs = %d, want 987654", got.RequestedSleepNs)
+ }
if got.RetVal != -2 || !got.IsError {
t.Fatalf("RetVal/IsError = %d/%v, want -2/true", got.RetVal, got.IsError)
}
@@ -140,6 +144,25 @@ func TestNewCarriesReadyCountForPoll(t *testing.T) {
}
}
+func TestNewCarriesRequestedSleepNs(t *testing.T) {
+ enter := &types.SleepEvent{TraceId: types.SYS_ENTER_NANOSLEEP, Time: 3200, Pid: 31, Tid: 32, RequestedNs: 5_000_000}
+ exit := &types.RetEvent{TraceId: types.SYS_EXIT_NANOSLEEP, Time: 3300, Ret: 0, Pid: 31, Tid: 32}
+ pair := event.NewPair(enter)
+ pair.ExitEv = exit
+ pair.RequestedSleepNs = enter.RequestedNs
+
+ got := New(25, pair)
+ if got.Syscall != "nanosleep" || got.FD != UnknownFD {
+ t.Fatalf("Syscall/FD = %q/%d, want nanosleep/%d", got.Syscall, got.FD, UnknownFD)
+ }
+ if got.RequestedSleepNs != 5_000_000 {
+ t.Fatalf("RequestedSleepNs = %d, want 5000000", got.RequestedSleepNs)
+ }
+ if got.Bytes != 0 {
+ t.Fatalf("Bytes = %d, want 0 for sleep events", got.Bytes)
+ }
+}
+
// TestRowValueAccessors verifies that all typed accessor methods return the
// underlying field values set on a Row.
func TestRowValueAccessors(t *testing.T) {