@@ -195,43 +195,37 @@ func TestInputStart_RemoteSessionWithDomain(t *testing.T) {
195195// TestInputRead_RPCInvalidBound tests that the Input handles RPC_S_INVALID_BOUND errors properly
196196func TestInputRead_RPCInvalidBound (t * testing.T ) {
197197 // Save original procs and restore after test
198- originalNextProc := nextProc
199- originalCloseProc := closeProc
200- originalSubscribeProc := subscribeProc
198+ originalEvtNext := evtNext
199+ originalEvtClose := evtClose
200+ originalEvtSubscribe := evtSubscribe
201201
202202 // Track calls to our mocked functions
203203 var nextCalls , closeCalls , subscribeCalls int
204204
205205 // Mock the procs
206- closeProc = MockProc {
207- call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
208- closeCalls ++
209- return 1 , 0 , nil
210- },
206+ evtClose = func (_ uintptr ) error {
207+ closeCalls ++
208+ return nil
211209 }
212210
213- subscribeProc = MockProc {
214- call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
215- subscribeCalls ++
216- return 42 , 0 , nil
217- },
211+ evtSubscribe = func (_ uintptr , _ windows.Handle , _ , _ * uint16 , _ , _ , _ uintptr , _ uint32 ) (uintptr , error ) {
212+ subscribeCalls ++
213+ return 42 , nil
218214 }
219215
220- nextProc = MockProc {
221- call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
222- nextCalls ++
223- if nextCalls == 1 {
224- return 0 , 0 , windows .RPC_S_INVALID_BOUND
225- }
216+ evtNext = func (_ uintptr , _ uint32 , _ * uintptr , _ , _ uint32 , _ * uint32 ) error {
217+ nextCalls ++
218+ if nextCalls == 1 {
219+ return windows .RPC_S_INVALID_BOUND
220+ }
226221
227- return 1 , 0 , nil
228- },
222+ return nil
229223 }
230224
231225 defer func () {
232- nextProc = originalNextProc
233- closeProc = originalCloseProc
234- subscribeProc = originalSubscribeProc
226+ evtNext = originalEvtNext
227+ evtClose = originalEvtClose
228+ evtSubscribe = originalEvtSubscribe
235229 }()
236230
237231 // Create a logger with an observer for testing log output
@@ -402,78 +396,74 @@ func TestInputIncludeLogRecordOriginalFalse(t *testing.T) {
402396
403397// TestInputRead_Batching tests that the Input handles MaxEventsPerPoll and MaxReads correctly
404398func TestInputRead_Batching (t * testing.T ) {
405- originalNextProc := nextProc
406- originalRenderProc := renderProc
407- originalCloseProc := closeProc
408- originalSubscribeProc := subscribeProc
399+ originalEvtNext := evtNext
400+ originalEvtRender := evtRender
401+ originalEvtClose := evtClose
402+ originalEvtSubscribe := evtSubscribe
409403 originalCreateBookmarkProc := createBookmarkProc
410- originalUpdateBookmarkProc := updateBookmarkProc
404+ originalEvtUpdateBookmark := evtUpdateBookmark
411405 defer func () {
412- nextProc = originalNextProc
413- renderProc = originalRenderProc
414- closeProc = originalCloseProc
415- subscribeProc = originalSubscribeProc
406+ evtNext = originalEvtNext
407+ evtRender = originalEvtRender
408+ evtClose = originalEvtClose
409+ evtSubscribe = originalEvtSubscribe
416410 createBookmarkProc = originalCreateBookmarkProc
417- updateBookmarkProc = originalUpdateBookmarkProc
411+ evtUpdateBookmark = originalEvtUpdateBookmark
418412 }()
419413
414+ evtSubscribe = func (_ uintptr , _ windows.Handle , _ , _ * uint16 , _ , _ , _ uintptr , _ uint32 ) (uintptr , error ) {
415+ return 42 , nil
416+ }
417+
418+ evtRender = func (_ , _ uintptr , _ , _ uint32 , _ * byte ) (* uint32 , error ) {
419+ bufferUsed := new (uint32 )
420+ return bufferUsed , nil
421+ }
422+
423+ evtClose = func (_ uintptr ) error {
424+ return nil
425+ }
426+
427+ createBookmarkProc = MockProc {
428+ call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
429+ return 1 , 0 , nil
430+ },
431+ }
432+
433+ evtUpdateBookmark = func (_ , _ uintptr ) error {
434+ return nil
435+ }
436+
420437 var nextCalls , processedEvents , emittedEvents int
421438
422439 maxEventsToEmit := - 1
423440
424441 mockBatch := make ([]uintptr , 99 )
425- producedEvents := 0
426442 var pinner runtime.Pinner
427443 pinner .Pin (& mockBatch [0 ])
428- pinner .Pin (& producedEvents )
429444 defer pinner .Unpin ()
430445
446+ producedEvents := 0
447+
431448 for i := range mockBatch {
432449 mockBatch [i ] = uintptr (i )
433450 }
434451
435- renderProc = MockProc {
436- call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
437- return 1 , 0 , nil
438- },
439- }
440- createBookmarkProc = MockProc {
441- call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
442- return 1 , 0 , nil
443- },
444- }
445- closeProc = MockProc {
446- call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
447- return 1 , 0 , nil
448- },
449- }
450- subscribeProc = MockProc {
451- call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
452- return 42 , 0 , nil
453- },
454- }
455- updateBookmarkProc = MockProc {
456- call : func (_ ... uintptr ) (uintptr , uintptr , error ) {
457- return 1 , 0 , nil
458- },
459- }
460- nextProc = MockProc {
461- call : func (params ... uintptr ) (uintptr , uintptr , error ) {
462- nextCalls ++
463-
464- wantsToRead := int (params [1 ])
465- producedEvents = min (len (mockBatch ), wantsToRead )
466- if maxEventsToEmit >= 0 {
467- producedEvents = min (producedEvents , maxEventsToEmit - emittedEvents )
468- }
452+ evtNext = func (_ uintptr , eventsSize uint32 , events * uintptr , _ , _ uint32 , returned * uint32 ) error {
453+ nextCalls ++
469454
470- * (* uint32 )(unsafe .Pointer (params [5 ])) = uint32 (producedEvents )
471- * (* uintptr )(unsafe .Pointer (params [2 ])) = uintptr (unsafe .Pointer (& mockBatch [0 ]))
455+ wantsToRead := int (eventsSize )
456+ producedEvents = min (len (mockBatch ), wantsToRead )
457+ if maxEventsToEmit >= 0 {
458+ producedEvents = min (producedEvents , maxEventsToEmit - emittedEvents )
459+ }
472460
473- emittedEvents += producedEvents
461+ * returned = uint32 (producedEvents )
462+ * events = uintptr (unsafe .Pointer (& mockBatch [0 ]))
474463
475- return 1 , 0 , nil
476- },
464+ emittedEvents += producedEvents
465+
466+ return nil
477467 }
478468
479469 input := newTestInput ()
0 commit comments