]> Sergey Matveev's repositories - btrtrc.git/blobdiff - metainfo/metainfo_test.go
metainfo.Info.BuildFromFilePath: Ensure stable file ordering
[btrtrc.git] / metainfo / metainfo_test.go
index b2845fa9d87f6ad11ef8a7d3a7ce66cf1806ef71..a119f31381eab3e0733401b88f15ddb8d700345f 100644 (file)
@@ -3,7 +3,9 @@ package metainfo
 import (
        "io"
        "io/ioutil"
+       "os"
        "path"
+       "path/filepath"
        "testing"
 
        "github.com/anacrolix/missinggo"
@@ -68,3 +70,29 @@ func TestNumPieces(t *testing.T) {
                assert.EqualValues(t, _case.NumPieces, info.NumPieces())
        }
 }
+
+func touchFile(path string) (err error) {
+       f, err := os.Create(path)
+       if err != nil {
+               return
+       }
+       err = f.Close()
+       return
+}
+
+func TestBuildFromFilePathOrder(t *testing.T) {
+       td, err := ioutil.TempDir("", "anacrolix")
+       require.NoError(t, err)
+       defer os.RemoveAll(td)
+       require.NoError(t, touchFile(filepath.Join(td, "b")))
+       require.NoError(t, touchFile(filepath.Join(td, "a")))
+       info := Info{
+               PieceLength: 1,
+       }
+       require.NoError(t, info.BuildFromFilePath(td))
+       assert.EqualValues(t, []FileInfo{{
+               Path: []string{"a"},
+       }, {
+               Path: []string{"b"},
+       }}, info.Files)
+}