You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

conaninfo_parser_test.go 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package conan
  4. import (
  5. "strings"
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. const (
  10. settingsKey = "arch"
  11. settingsValue = "x84_64"
  12. optionsKey = "shared"
  13. optionsValue = "False"
  14. requires = "fmt/7.1.3"
  15. hash = "74714915a51073acb548ca1ce29afbac"
  16. envKey = "CC"
  17. envValue = "gcc-10"
  18. contentConaninfo = `[settings]
  19. ` + settingsKey + `=` + settingsValue + `
  20. [requires]
  21. ` + requires + `
  22. [options]
  23. ` + optionsKey + `=` + optionsValue + `
  24. [full_settings]
  25. ` + settingsKey + `=` + settingsValue + `
  26. [full_requires]
  27. ` + requires + `
  28. [full_options]
  29. ` + optionsKey + `=` + optionsValue + `
  30. [recipe_hash]
  31. ` + hash + `
  32. [env]
  33. ` + envKey + `=` + envValue + `
  34. `
  35. )
  36. func TestParseConaninfo(t *testing.T) {
  37. info, err := ParseConaninfo(strings.NewReader(contentConaninfo))
  38. assert.NotNil(t, info)
  39. assert.Nil(t, err)
  40. assert.Equal(
  41. t,
  42. map[string]string{
  43. settingsKey: settingsValue,
  44. },
  45. info.Settings,
  46. )
  47. assert.Equal(t, info.Settings, info.FullSettings)
  48. assert.Equal(
  49. t,
  50. map[string]string{
  51. optionsKey: optionsValue,
  52. },
  53. info.Options,
  54. )
  55. assert.Equal(t, info.Options, info.FullOptions)
  56. assert.Equal(
  57. t,
  58. []string{requires},
  59. info.Requires,
  60. )
  61. assert.Equal(t, info.Requires, info.FullRequires)
  62. assert.Equal(t, hash, info.RecipeHash)
  63. assert.Equal(
  64. t,
  65. map[string][]string{
  66. envKey: {envValue},
  67. },
  68. info.Environment,
  69. )
  70. }