@@ -7,52 +7,52 @@ import (
77
88func TestReassemblerRejectsAmbiguousLastAndDuplicates (t * testing.T ) {
99 r := NewReassembler (2 , 64 )
10- if _ , _ , err := r .Add (Fragment {MessageID : 1 , Number : 5 , Data : []byte ("late" )}); err != nil {
10+ if _ , _ , err := r .Add (Fragment {MessageID : 1 , Number : 5 , Data : []byte ("late" )}, 1 ); err != nil {
1111 t .Fatal (err )
1212 }
13- if _ , _ , err := r .Add (Fragment {MessageID : 1 , Number : 0 , Last : true , Data : []byte ("first" )}); ! errors .Is (err , ErrFragment ) {
13+ if _ , _ , err := r .Add (Fragment {MessageID : 1 , Number : 0 , Last : true , Data : []byte ("first" )}, 1 ); ! errors .Is (err , ErrFragment ) {
1414 t .Fatalf ("late fragment conflict = %v" , err )
1515 }
16- if _ , _ , err := r .Add (Fragment {MessageID : 2 , Number : 0 , Data : []byte ("a" )}); err != nil {
16+ if _ , _ , err := r .Add (Fragment {MessageID : 2 , Number : 0 , Data : []byte ("a" )}, 2 ); err != nil {
1717 t .Fatal (err )
1818 }
19- if _ , _ , err := r .Add (Fragment {MessageID : 2 , Number : 0 , Data : []byte ("b" )}); ! errors .Is (err , ErrFragment ) {
19+ if _ , _ , err := r .Add (Fragment {MessageID : 2 , Number : 0 , Data : []byte ("b" )}, 2 ); ! errors .Is (err , ErrFragment ) {
2020 t .Fatalf ("duplicate conflict = %v" , err )
2121 }
2222 r = NewReassembler (2 , 64 )
23- if _ , _ , err := r .Add (Fragment {MessageID : 3 , Number : 0 , Data : []byte ("same" )}); err != nil {
23+ if _ , _ , err := r .Add (Fragment {MessageID : 3 , Number : 0 , Data : []byte ("same" )}, 3 ); err != nil {
2424 t .Fatal (err )
2525 }
26- if _ , _ , err := r .Add (Fragment {MessageID : 3 , Number : 0 , Last : true , Data : []byte ("same" )}); ! errors .Is (err , ErrFragment ) {
26+ if _ , _ , err := r .Add (Fragment {MessageID : 3 , Number : 0 , Last : true , Data : []byte ("same" )}, 3 ); ! errors .Is (err , ErrFragment ) {
2727 t .Fatalf ("duplicate terminal conflict = %v" , err )
2828 }
2929}
3030
3131func TestReassemblerEvictsAndExpiresIncompleteEntries (t * testing.T ) {
3232 r := NewReassembler (1 , 64 )
33- _ , _ , _ = r .Add (Fragment {MessageID : 1 , Number : 0 , Data : []byte ("a" )})
34- _ , _ , _ = r .Add (Fragment {MessageID : 2 , Number : 0 , Data : []byte ("b" )})
33+ _ , _ , _ = r .Add (Fragment {MessageID : 1 , Number : 0 , Data : []byte ("a" )}, 1 )
34+ _ , _ , _ = r .Add (Fragment {MessageID : 2 , Number : 0 , Data : []byte ("b" )}, 2 )
3535 if len (r .entries ) != 1 || r .entries [2 ] == nil {
3636 t .Fatalf ("LRU entries = %#v" , r .entries )
3737 }
38- if removed := r .Expire (r . clock + 1 ); removed != 1 || len (r .entries ) != 0 {
38+ if removed := r .Expire (2 ); removed != 1 || len (r .entries ) != 0 {
3939 t .Fatalf ("Expire = %d, entries=%d" , removed , len (r .entries ))
4040 }
4141}
4242
4343func TestReassemblerPooledEntryDoesNotRetainEvictedFragments (t * testing.T ) {
4444 reassembler := NewReassembler (1 , 64 )
45- if _ , _ , err := reassembler .Add (Fragment {MessageID : 1 , Number : 0 , Data : []byte ("old" )}); err != nil {
45+ if _ , _ , err := reassembler .Add (Fragment {MessageID : 1 , Number : 0 , Data : []byte ("old" )}, 1 ); err != nil {
4646 t .Fatal (err )
4747 }
48- if _ , _ , err := reassembler .Add (Fragment {MessageID : 2 , Number : 0 , Data : []byte ("new" )}); err != nil {
48+ if _ , _ , err := reassembler .Add (Fragment {MessageID : 2 , Number : 0 , Data : []byte ("new" )}, 2 ); err != nil {
4949 t .Fatal (err )
5050 }
51- message , done , err := reassembler .Add (Fragment {MessageID : 2 , Number : 1 , Last : true , Data : []byte (" tail" )})
51+ message , done , err := reassembler .Add (Fragment {MessageID : 2 , Number : 1 , Last : true , Data : []byte (" tail" )}, 3 )
5252 if err != nil || ! done || string (message ) != "new tail" {
5353 t .Fatalf ("reused entry message = %q, %t, %v" , message , done , err )
5454 }
55- if message , done , err = reassembler .Add (Fragment {MessageID : 1 , Number : 1 , Last : true , Data : []byte (" tail" )}); err != nil || done || message != nil {
55+ if message , done , err = reassembler .Add (Fragment {MessageID : 1 , Number : 1 , Last : true , Data : []byte (" tail" )}, 4 ); err != nil || done || message != nil {
5656 t .Fatalf ("evicted message resumed with pooled data = %q, %t, %v" , message , done , err )
5757 }
5858}
@@ -65,10 +65,10 @@ func BenchmarkReassemblerPooledFragments(b *testing.B) {
6565 for b .Loop () {
6666 first .MessageID ++
6767 last .MessageID = first .MessageID
68- if _ , _ , err := reassembler .Add (first ); err != nil {
68+ if _ , _ , err := reassembler .Add (first , uint64 ( first . MessageID ) ); err != nil {
6969 b .Fatal (err )
7070 }
71- if _ , done , err := reassembler .Add (last ); err != nil || ! done {
71+ if _ , done , err := reassembler .Add (last , uint64 ( last . MessageID ) ); err != nil || ! done {
7272 b .Fatalf ("complete = %t, %v" , done , err )
7373 }
7474 }
0 commit comments