github.com/anacrolix/torrent@v1.61.0/reader_test.go (about) 1 package torrent 2 3 import ( 4 "context" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/require" 9 10 "github.com/anacrolix/torrent/internal/testutil" 11 ) 12 13 func TestReaderReadContext(t *testing.T) { 14 cl, err := NewClient(TestingConfig(t)) 15 require.NoError(t, err) 16 defer cl.Close() 17 tt, err := cl.AddTorrent(testutil.GreetingMetaInfo()) 18 require.NoError(t, err) 19 defer tt.Drop() 20 ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Millisecond)) 21 defer cancel() 22 r := tt.Files()[0].NewReader() 23 defer r.Close() 24 _, err = r.ReadContext(ctx, make([]byte, 1)) 25 require.EqualValues(t, context.DeadlineExceeded, err) 26 } 27 28 func TestReaderSetContextAndRead(t *testing.T) { 29 cl, err := NewClient(TestingConfig(t)) 30 require.NoError(t, err) 31 defer cl.Close() 32 tt, err := cl.AddTorrent(testutil.GreetingMetaInfo()) 33 require.NoError(t, err) 34 defer tt.Drop() 35 ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Millisecond)) 36 defer cancel() 37 r := tt.Files()[0].NewReader() 38 defer r.Close() 39 r.SetContext(ctx) 40 _, err = r.Read(make([]byte, 1)) 41 require.EqualValues(t, context.DeadlineExceeded, err) 42 }