diff options
Diffstat (limited to 'internal/pipewire/pipewire_test.go')
| -rw-r--r-- | internal/pipewire/pipewire_test.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/internal/pipewire/pipewire_test.go b/internal/pipewire/pipewire_test.go index 0b65b86b..9305e7ec 100644 --- a/internal/pipewire/pipewire_test.go +++ b/internal/pipewire/pipewire_test.go @@ -6,6 +6,7 @@ import ( "strconv" . "syscall" "testing" + "time" "hakurei.app/container/stub" "hakurei.app/internal/pipewire" @@ -715,6 +716,18 @@ type stubUnixConn struct { current int } +func (conn *stubUnixConn) MightBlock(timeout time.Duration) { + if timeout != 5*time.Second { + panic("unexpected timeout " + timeout.String()) + } + if conn.current == 0 || + (conn.samples[conn.current-1].nr == SYS_RECVMSG && conn.samples[conn.current-1].errno == EAGAIN && conn.samples[conn.current].nr == SYS_SENDMSG) || + (conn.samples[conn.current-1].nr == SYS_SENDMSG && conn.samples[conn.current].nr == SYS_RECVMSG) { + return + } + panic("unexpected blocking hint before sample " + strconv.Itoa(conn.current)) +} + // nextSample returns the current sample and increments the counter. func (conn *stubUnixConn) nextSample(nr uintptr) (sample *stubUnixConnSample, wantOOB []byte, err error) { sample = &conn.samples[conn.current] |
