github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/pkg/rpcserver/last_executing_test.go (about) 1 // Copyright 2024 syzkaller project authors. All rights reserved. 2 // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 package rpcserver 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestLastExecutingEmpty(t *testing.T) { 13 last := MakeLastExecuting(10, 10) 14 assert.Empty(t, last.Collect()) 15 } 16 17 func TestLastExecuting(t *testing.T) { 18 last := MakeLastExecuting(21, 3) 19 last.Note(1, 0, []byte("prog1"), 1) 20 21 last.Note(2, 1, []byte("prog2"), 2) 22 last.Note(3, 1, []byte("prog3"), 3) 23 24 last.Note(4, 3, []byte("prog4"), 4) 25 last.Note(5, 3, []byte("prog5"), 5) 26 last.Note(6, 3, []byte("prog6"), 6) 27 28 last.Note(7, 7, []byte("prog7"), 7) 29 last.Note(8, 7, []byte("prog8"), 8) 30 last.Note(9, 7, []byte("prog9"), 9) 31 last.Note(10, 7, []byte("prog10"), 10) 32 last.Note(11, 7, []byte("prog11"), 11) 33 34 last.Note(12, 9, []byte("prog12"), 12) 35 36 last.Note(13, 8, []byte("prog13"), 13) 37 38 assert.Equal(t, last.Collect(), []ExecRecord{ 39 {ID: 1, Proc: 0, Prog: []byte("prog1"), Time: 12}, 40 41 {ID: 2, Proc: 1, Prog: []byte("prog2"), Time: 11}, 42 {ID: 3, Proc: 1, Prog: []byte("prog3"), Time: 10}, 43 44 {ID: 4, Proc: 3, Prog: []byte("prog4"), Time: 9}, 45 {ID: 5, Proc: 3, Prog: []byte("prog5"), Time: 8}, 46 {ID: 6, Proc: 3, Prog: []byte("prog6"), Time: 7}, 47 48 {ID: 9, Proc: 7, Prog: []byte("prog9"), Time: 4}, 49 {ID: 10, Proc: 7, Prog: []byte("prog10"), Time: 3}, 50 {ID: 11, Proc: 7, Prog: []byte("prog11"), Time: 2}, 51 52 {ID: 12, Proc: 9, Prog: []byte("prog12"), Time: 1}, 53 54 {ID: 13, Proc: 8, Prog: []byte("prog13"), Time: 0}, 55 }) 56 } 57 58 func TestLastExecutingHanged(t *testing.T) { 59 last := MakeLastExecuting(1, 3) 60 last.Note(1, 0, []byte("prog1"), 10) 61 last.Note(2, 0, []byte("prog2"), 20) 62 last.Hanged(2, 0, []byte("prog2"), 25) 63 last.Note(3, 0, []byte("prog3"), 30) 64 last.Note(4, 0, []byte("prog4"), 40) 65 last.Note(5, 0, []byte("prog5"), 50) 66 last.Hanged(5, 0, []byte("prog5"), 55) 67 last.Note(6, 0, []byte("prog6"), 60) 68 last.Note(7, 0, []byte("prog7"), 70) 69 last.Note(8, 0, []byte("prog8"), 80) 70 last.Note(9, 0, []byte("prog9"), 90) 71 assert.Equal(t, last.Collect(), []ExecRecord{ 72 {ID: 2, Proc: 32, Prog: []byte("prog2"), Time: 65}, 73 {ID: 5, Proc: 33, Prog: []byte("prog5"), Time: 35}, 74 {ID: 7, Proc: 0, Prog: []byte("prog7"), Time: 20}, 75 {ID: 8, Proc: 0, Prog: []byte("prog8"), Time: 10}, 76 {ID: 9, Proc: 0, Prog: []byte("prog9"), Time: 0}, 77 }) 78 }