@@ -12,6 +12,7 @@ import (
1212 "log/slog"
1313
1414 "github.com/onkernel/kernel-images/server/lib/devtoolsproxy"
15+ "github.com/onkernel/kernel-images/server/lib/events"
1516 "github.com/onkernel/kernel-images/server/lib/nekoclient"
1617 oapi "github.com/onkernel/kernel-images/server/lib/oapi"
1718 "github.com/onkernel/kernel-images/server/lib/recorder"
@@ -25,7 +26,7 @@ func TestApiService_StartRecording(t *testing.T) {
2526
2627 t .Run ("success" , func (t * testing.T ) {
2728 mgr := recorder .NewFFmpegManager ()
28- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
29+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
2930 require .NoError (t , err )
3031
3132 resp , err := svc .StartRecording (ctx , oapi.StartRecordingRequestObject {})
@@ -39,7 +40,7 @@ func TestApiService_StartRecording(t *testing.T) {
3940
4041 t .Run ("already recording" , func (t * testing.T ) {
4142 mgr := recorder .NewFFmpegManager ()
42- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
43+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
4344 require .NoError (t , err )
4445
4546 // First start should succeed
@@ -54,7 +55,7 @@ func TestApiService_StartRecording(t *testing.T) {
5455
5556 t .Run ("custom ids don't collide" , func (t * testing.T ) {
5657 mgr := recorder .NewFFmpegManager ()
57- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
58+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
5859 require .NoError (t , err )
5960
6061 for i := 0 ; i < 5 ; i ++ {
@@ -87,7 +88,7 @@ func TestApiService_StopRecording(t *testing.T) {
8788
8889 t .Run ("no active recording" , func (t * testing.T ) {
8990 mgr := recorder .NewFFmpegManager ()
90- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
91+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
9192 require .NoError (t , err )
9293
9394 resp , err := svc .StopRecording (ctx , oapi.StopRecordingRequestObject {})
@@ -100,7 +101,7 @@ func TestApiService_StopRecording(t *testing.T) {
100101 rec := & mockRecorder {id : "default" , isRecordingFlag : true }
101102 require .NoError (t , mgr .RegisterRecorder (ctx , rec ), "failed to register recorder" )
102103
103- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
104+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
104105 require .NoError (t , err )
105106 resp , err := svc .StopRecording (ctx , oapi.StopRecordingRequestObject {})
106107 require .NoError (t , err )
@@ -115,7 +116,7 @@ func TestApiService_StopRecording(t *testing.T) {
115116
116117 force := true
117118 req := oapi.StopRecordingRequestObject {Body : & oapi.StopRecordingJSONRequestBody {ForceStop : & force }}
118- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
119+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
119120 require .NoError (t , err )
120121 resp , err := svc .StopRecording (ctx , req )
121122 require .NoError (t , err )
@@ -129,7 +130,7 @@ func TestApiService_DownloadRecording(t *testing.T) {
129130
130131 t .Run ("not found" , func (t * testing.T ) {
131132 mgr := recorder .NewFFmpegManager ()
132- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
133+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
133134 require .NoError (t , err )
134135 resp , err := svc .DownloadRecording (ctx , oapi.DownloadRecordingRequestObject {})
135136 require .NoError (t , err )
@@ -149,7 +150,7 @@ func TestApiService_DownloadRecording(t *testing.T) {
149150 rec := & mockRecorder {id : "default" , isRecordingFlag : true , recordingData : randomBytes (minRecordingSizeInBytes - 1 )}
150151 require .NoError (t , mgr .RegisterRecorder (ctx , rec ), "failed to register recorder" )
151152
152- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
153+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
153154 require .NoError (t , err )
154155 // will return a 202 when the recording is too small
155156 resp , err := svc .DownloadRecording (ctx , oapi.DownloadRecordingRequestObject {})
@@ -179,7 +180,7 @@ func TestApiService_DownloadRecording(t *testing.T) {
179180 rec := & mockRecorder {id : "default" , recordingData : data }
180181 require .NoError (t , mgr .RegisterRecorder (ctx , rec ), "failed to register recorder" )
181182
182- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
183+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
183184 require .NoError (t , err )
184185 resp , err := svc .DownloadRecording (ctx , oapi.DownloadRecordingRequestObject {})
185186 require .NoError (t , err )
@@ -199,7 +200,7 @@ func TestApiService_Shutdown(t *testing.T) {
199200 rec := & mockRecorder {id : "default" , isRecordingFlag : true }
200201 require .NoError (t , mgr .RegisterRecorder (ctx , rec ), "failed to register recorder" )
201202
202- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
203+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
203204 require .NoError (t , err )
204205
205206 require .NoError (t , svc .Shutdown (ctx ))
@@ -303,10 +304,16 @@ func newMockNekoClient(t *testing.T) *nekoclient.AuthClient {
303304 return client
304305}
305306
307+ func newEventsPipeline () * events.Pipeline {
308+ ring := events .NewRingBuffer (64 )
309+ fw := events .NewFileWriter (os .TempDir ())
310+ return events .NewPipeline (ring , fw )
311+ }
312+
306313func TestApiService_PatchChromiumFlags (t * testing.T ) {
307314 ctx := context .Background ()
308315 mgr := recorder .NewFFmpegManager ()
309- svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ))
316+ svc , err := New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), newEventsPipeline (), 0 )
310317 require .NoError (t , err )
311318
312319 // Test with valid flags
0 commit comments