publish_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package main
  2. import (
  3. "testing"
  4. )
  5. type testPackage struct {
  6. path string
  7. version string
  8. os string
  9. arch string
  10. }
  11. var testData = []testPackage{
  12. {
  13. path: "grafana-5.2.0-474pre1.aarch64.rpm",
  14. version: "5.2.0-474pre1",
  15. os: "rhel",
  16. arch: "arm64",
  17. },
  18. {
  19. path: "grafana-5.2.0-474pre1.armhfp.rpm",
  20. version: "5.2.0-474pre1",
  21. os: "rhel",
  22. arch: "armv7",
  23. },
  24. {
  25. path: "grafana-5.2.0-474pre1.darwin-amd64.tar.gz",
  26. version: "5.2.0-474pre1",
  27. os: "darwin",
  28. arch: "amd64",
  29. },
  30. {
  31. path: "grafana-5.2.0-474pre1.linux-amd64.tar.gz",
  32. version: "5.2.0-474pre1",
  33. os: "linux",
  34. arch: "amd64",
  35. },
  36. {
  37. path: "grafana-5.2.0-474pre1.linux-arm64.tar.gz",
  38. version: "5.2.0-474pre1",
  39. os: "linux",
  40. arch: "arm64",
  41. },
  42. {
  43. path: "grafana-5.2.0-474pre1.linux-armv7.tar.gz",
  44. version: "5.2.0-474pre1",
  45. os: "linux",
  46. arch: "armv7",
  47. },
  48. {
  49. path: "grafana-5.2.0-474pre1.windows-amd64.zip",
  50. version: "5.2.0-474pre1",
  51. os: "win",
  52. arch: "amd64",
  53. },
  54. {
  55. path: "grafana-5.2.0-474pre1.x86_64.rpm",
  56. version: "5.2.0-474pre1",
  57. os: "rhel",
  58. arch: "amd64",
  59. },
  60. {
  61. path: "grafana_5.2.0-474pre1_amd64.deb",
  62. version: "5.2.0-474pre1",
  63. os: "deb",
  64. arch: "amd64",
  65. },
  66. {
  67. path: "grafana_5.2.0-474pre1_arm64.deb",
  68. version: "5.2.0-474pre1",
  69. os: "deb",
  70. arch: "arm64",
  71. },
  72. {
  73. path: "grafana_5.2.0-474pre1_armhf.deb",
  74. version: "5.2.0-474pre1",
  75. os: "deb",
  76. arch: "armv7",
  77. },
  78. }
  79. func TestFileWalker(t *testing.T) {
  80. for _, packageInfo := range testData {
  81. version = ""
  82. actualPackageInfo, err := mapPackage(packageInfo.path, packageInfo.path, []byte{})
  83. if err != nil {
  84. t.Error(err)
  85. continue
  86. }
  87. if version != packageInfo.version {
  88. t.Errorf("Testing (%v), expected %v to be %v.", packageInfo.path, version, packageInfo.version)
  89. }
  90. if actualPackageInfo.Os != packageInfo.os {
  91. t.Errorf("Testing (%v), expected %v to be %v.", packageInfo.path, actualPackageInfo.Os, packageInfo.os)
  92. }
  93. if actualPackageInfo.Arch != packageInfo.arch {
  94. t.Errorf("Testing (%v), expected %v to be %v.", packageInfo.path, actualPackageInfo.Arch, packageInfo.arch)
  95. }
  96. }
  97. incorrectPackageName := "grafana_5.2.0-474pre1_armfoo.deb"
  98. _, err := mapPackage(incorrectPackageName, incorrectPackageName, []byte{})
  99. if err == nil {
  100. t.Errorf("Testing (%v), expected to fail due to an unrecognized arch, but signaled no error.", incorrectPackageName)
  101. }
  102. }