From d5c6ca0485fdc39eef86446ad9d6e87cd601ccbb Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Thu, 18 Feb 2021 14:34:42 +1100 Subject: [PATCH] Add test case for #464 --- internal/cmd/issue-464/main.go | 48 ++++++++++++++++++ ...IRED CD - Rip. Sample. Mash. Share.torrent | Bin 0 -> 18593 bytes 2 files changed, 48 insertions(+) create mode 100644 internal/cmd/issue-464/main.go create mode 100644 testdata/The WIRED CD - Rip. Sample. Mash. Share.torrent diff --git a/internal/cmd/issue-464/main.go b/internal/cmd/issue-464/main.go new file mode 100644 index 00000000..fbac1b43 --- /dev/null +++ b/internal/cmd/issue-464/main.go @@ -0,0 +1,48 @@ +package main + +import ( + "fmt" + "io" + "log" + + "github.com/anacrolix/torrent" +) + +const testMagnet = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F" + +func main() { + err := mainErr() + if err != nil { + log.Fatalf("error in main: %v", err) + } +} + +func mainErr() error { + cfg := torrent.NewDefaultClientConfig() + // We could disable non-webseed peer types here, to force any errors. + client, _ := torrent.NewClient(cfg) + + // Add directly from metainfo, because we want to force webseeding to serve data, and webseeding + // won't get us the metainfo. + t, err := client.AddTorrentFromFile("testdata/The WIRED CD - Rip. Sample. Mash. Share.torrent") + if err != nil { + return err + } + <-t.GotInfo() + + fmt.Println("GOT INFO") + + f := t.Files()[0] + + r := f.NewReader() + + r.Seek(5, io.SeekStart) + buf := make([]byte, 5) + n, err := r.Read(buf) + + fmt.Println("END", n, buf, err) + + t.DownloadAll() + client.WaitAll() + return nil +} diff --git a/testdata/The WIRED CD - Rip. Sample. Mash. Share.torrent b/testdata/The WIRED CD - Rip. Sample. Mash. Share.torrent new file mode 100644 index 0000000000000000000000000000000000000000..e5acba508544ddc46186a3e90eb4ebc0b608d2c7 GIT binary patch literal 18593 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 TbS`OcFLZBma%FCGb1!9OZVJ-o literal 0 HcmV?d00001 -- 2.48.1