diff options
Diffstat (limited to 'internal/outcome/sppulse_test.go')
| -rw-r--r-- | internal/outcome/sppulse_test.go | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/internal/outcome/sppulse_test.go b/internal/outcome/sppulse_test.go index 4ec445db..70fae9e9 100644 --- a/internal/outcome/sppulse_test.go +++ b/internal/outcome/sppulse_test.go @@ -18,24 +18,40 @@ import ( func TestSpPulseOp(t *testing.T) { t.Parallel() - config := hst.Template() + newConfig := func() *hst.Config { + config := hst.Template() + config.DirectPulse = true + config.Enablements = hst.NewEnablements(hst.EPulse) + return config + } + + config := newConfig() sampleCookie := bytes.Repeat([]byte{0xfc}, pulseCookieSizeMax) checkOpBehaviour(t, []opBehaviourTestCase{ {"not enabled", func(bool, bool) outcomeOp { return new(spPulseOp) }, func() *hst.Config { - c := hst.Template() + c := newConfig() + c.DirectPulse = true *c.Enablements = 0 return c }, nil, nil, nil, nil, errNotEnabled, nil, nil, nil, nil, nil}, + {"not enabled direct", func(bool, bool) outcomeOp { + return new(spPulseOp) + }, func() *hst.Config { + c := newConfig() + c.DirectPulse = false + return c + }, nil, nil, nil, nil, errNotEnabled, nil, nil, nil, nil, nil}, + {"socketDir stat", func(isShim, _ bool) outcomeOp { if !isShim { return new(spPulseOp) } return &spPulseOp{Cookie: (*[256]byte)(sampleCookie)} - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), stub.UniqueError(2)), }, nil, nil, &hst.AppError{ Step: `access PulseAudio directory "/proc/nonexistent/xdg_runtime_dir/pulse"`, @@ -44,7 +60,7 @@ func TestSpPulseOp(t *testing.T) { {"socketDir nonexistent", func(bool, bool) outcomeOp { return new(spPulseOp) - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), os.ErrNotExist), }, nil, nil, &hst.AppError{ Step: "finalise", @@ -54,7 +70,7 @@ func TestSpPulseOp(t *testing.T) { {"socket stat", func(bool, bool) outcomeOp { return new(spPulseOp) - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, (*stubFi)(nil), stub.UniqueError(1)), }, nil, nil, &hst.AppError{ @@ -64,7 +80,7 @@ func TestSpPulseOp(t *testing.T) { {"socket nonexistent", func(bool, bool) outcomeOp { return new(spPulseOp) - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, (*stubFi)(nil), os.ErrNotExist), }, nil, nil, &hst.AppError{ @@ -75,7 +91,7 @@ func TestSpPulseOp(t *testing.T) { {"socket mode", func(bool, bool) outcomeOp { return new(spPulseOp) - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, &stubFi{mode: 0660}, nil), }, nil, nil, &hst.AppError{ @@ -86,7 +102,7 @@ func TestSpPulseOp(t *testing.T) { {"cookie notAbs", func(bool, bool) outcomeOp { return new(spPulseOp) - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, &stubFi{mode: 0666}, nil), call("lookupEnv", stub.ExpectArgs{"PULSE_COOKIE"}, "proc/nonexistent/cookie", nil), @@ -97,7 +113,7 @@ func TestSpPulseOp(t *testing.T) { {"cookie loadFile", func(bool, bool) outcomeOp { return new(spPulseOp) - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, &stubFi{mode: 0666}, nil), call("lookupEnv", stub.ExpectArgs{"PULSE_COOKIE"}, "/proc/nonexistent/cookie", nil), @@ -118,7 +134,7 @@ func TestSpPulseOp(t *testing.T) { op.CookieSize += +0xfd } return op - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, &stubFi{mode: 0666}, nil), call("lookupEnv", stub.ExpectArgs{"PULSE_COOKIE"}, "/proc/nonexistent/cookie", nil), @@ -150,7 +166,7 @@ func TestSpPulseOp(t *testing.T) { sampleCookieTrunc := make([]byte, pulseCookieSizeMax) copy(sampleCookieTrunc, sampleCookie[:len(sampleCookie)-0xe]) return &spPulseOp{Cookie: (*[pulseCookieSizeMax]byte)(sampleCookieTrunc), CookieSize: pulseCookieSizeMax - 0xe} - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, &stubFi{mode: 0666}, nil), call("lookupEnv", stub.ExpectArgs{"PULSE_COOKIE"}, "/proc/nonexistent/cookie", nil), @@ -183,7 +199,7 @@ func TestSpPulseOp(t *testing.T) { return new(spPulseOp) } return &spPulseOp{Cookie: (*[pulseCookieSizeMax]byte)(sampleCookie), CookieSize: pulseCookieSizeMax} - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, &stubFi{mode: 0666}, nil), call("lookupEnv", stub.ExpectArgs{"PULSE_COOKIE"}, "/proc/nonexistent/cookie", nil), @@ -213,7 +229,7 @@ func TestSpPulseOp(t *testing.T) { {"success", func(bool, bool) outcomeOp { return new(spPulseOp) - }, hst.Template, nil, []stub.Call{ + }, newConfig, nil, []stub.Call{ call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse"}, (*stubFi)(nil), nil), call("stat", stub.ExpectArgs{wantRuntimePath + "/pulse/native"}, &stubFi{mode: 0666}, nil), call("lookupEnv", stub.ExpectArgs{"PULSE_COOKIE"}, nil, nil), |
