2
0

util_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package internal
  2. import (
  3. "io/ioutil"
  4. "os"
  5. "path/filepath"
  6. "testing"
  7. . "github.com/smartystreets/goconvey/convey"
  8. )
  9. func TestExtractSizeFromRsyncLog(t *testing.T) {
  10. realLogContent := `
  11. Number of files: 998,470 (reg: 925,484, dir: 58,892, link: 14,094)
  12. Number of created files: 1,049 (reg: 1,049)
  13. Number of deleted files: 1,277 (reg: 1,277)
  14. Number of regular files transferred: 5,694
  15. Total file size: 1.33T bytes
  16. Total transferred file size: 2.86G bytes
  17. Literal data: 780.62M bytes
  18. Matched data: 2.08G bytes
  19. File list size: 37.55M
  20. File list generation time: 7.845 seconds
  21. File list transfer time: 0.000 seconds
  22. Total bytes sent: 7.55M
  23. Total bytes received: 823.25M
  24. sent 7.55M bytes received 823.25M bytes 5.11M bytes/sec
  25. total size is 1.33T speedup is 1,604.11
  26. `
  27. Convey("Log parser should work", t, func() {
  28. tmpDir, err := ioutil.TempDir("", "tunasync")
  29. So(err, ShouldBeNil)
  30. defer os.RemoveAll(tmpDir)
  31. logFile := filepath.Join(tmpDir, "rs.log")
  32. err = ioutil.WriteFile(logFile, []byte(realLogContent), 0755)
  33. So(err, ShouldBeNil)
  34. res := ExtractSizeFromRsyncLog(logFile)
  35. So(res, ShouldEqual, "1.33T")
  36. })
  37. }