data/file/file_test.go | 32 ++++++++++++++++++++++++++++++++ diff --git a/data/file/file_test.go b/data/file/file_test.go new file mode 100644 index 0000000000000000000000000000000000000000..52e345b02443de7f1de86af72713d849da126b70 --- /dev/null +++ b/data/file/file_test.go @@ -0,0 +1,32 @@ +package file + +import ( + "bytes" + "io" + "io/ioutil" + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/anacrolix/torrent/metainfo" +) + +func TestShortFile(t *testing.T) { + td, err := ioutil.TempDir("", "") + require.NoError(t, err) + defer os.RemoveAll(td) + data := TorrentData(&metainfo.Info{ + Name: "a", + Length: 2, + }, td) + f, err := os.Create(filepath.Join(td, "a")) + err = f.Truncate(1) + f.Close() + var buf bytes.Buffer + n, err := io.Copy(&buf, io.NewSectionReader(data, 0, 2)) + assert.EqualValues(t, 1, n) + assert.Equal(t, io.ErrUnexpectedEOF, err) +}