]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add test for issue #111 and #112
authorMatt Joiner <anacrolix@gmail.com>
Mon, 12 Sep 2016 06:53:20 +0000 (16:53 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 12 Sep 2016 06:53:20 +0000 (16:53 +1000)
torrent_test.go

index 6095166386cf676523593af90282baf57cdc9d82..f841e7f32d8a2b25bb4704e75f04bc46f76edba5 100644 (file)
@@ -1,11 +1,16 @@
 package torrent
 
 import (
+       "os"
+       "path/filepath"
        "testing"
 
+       "github.com/anacrolix/missinggo"
        "github.com/bradfitz/iter"
        "github.com/stretchr/testify/assert"
+       "github.com/stretchr/testify/require"
 
+       "github.com/anacrolix/torrent/bencode"
        "github.com/anacrolix/torrent/metainfo"
        "github.com/anacrolix/torrent/peer_protocol"
 )
@@ -89,3 +94,25 @@ func BenchmarkUpdatePiecePriorities(b *testing.B) {
                t.updatePiecePriorities()
        }
 }
+
+func TestEmptyFilesAndZeroPieceLength(t *testing.T) {
+       cl, err := NewClient(&TestingConfig)
+       require.NoError(t, err)
+       defer cl.Close()
+       ib, err := bencode.Marshal(metainfo.Info{
+               Name:   "empty",
+               Length: 0,
+       })
+       require.NoError(t, err)
+       fp := filepath.Join(TestingConfig.DataDir, "empty")
+       os.Remove(fp)
+       assert.False(t, missinggo.FilePathExists(fp))
+       tt, err := cl.AddTorrent(&metainfo.MetaInfo{
+               InfoBytes: ib,
+       })
+       require.NoError(t, err)
+       defer tt.Drop()
+       tt.DownloadAll()
+       require.True(t, cl.WaitAll())
+       assert.True(t, missinggo.FilePathExists(fp))
+}