aaparser_test.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package aaparser // import "github.com/docker/docker/pkg/aaparser"
  2. import (
  3. "testing"
  4. )
  5. type versionExpected struct {
  6. output string
  7. version int
  8. }
  9. func TestParseVersion(t *testing.T) {
  10. versions := []versionExpected{
  11. {
  12. output: `AppArmor parser version 2.10
  13. Copyright (C) 1999-2008 Novell Inc.
  14. Copyright 2009-2012 Canonical Ltd.
  15. `,
  16. version: 210000,
  17. },
  18. {
  19. output: `AppArmor parser version 2.8
  20. Copyright (C) 1999-2008 Novell Inc.
  21. Copyright 2009-2012 Canonical Ltd.
  22. `,
  23. version: 208000,
  24. },
  25. {
  26. output: `AppArmor parser version 2.20
  27. Copyright (C) 1999-2008 Novell Inc.
  28. Copyright 2009-2012 Canonical Ltd.
  29. `,
  30. version: 220000,
  31. },
  32. {
  33. output: `AppArmor parser version 2.05
  34. Copyright (C) 1999-2008 Novell Inc.
  35. Copyright 2009-2012 Canonical Ltd.
  36. `,
  37. version: 205000,
  38. },
  39. {
  40. output: `AppArmor parser version 2.2.0~rc2
  41. Copyright (C) 1999-2008 Novell Inc.
  42. Copyright 2009-2012 Canonical Ltd.
  43. `,
  44. version: 202000,
  45. },
  46. {
  47. output: `AppArmor parser version 2.9.95
  48. Copyright (C) 1999-2008 Novell Inc.
  49. Copyright 2009-2012 Canonical Ltd.
  50. `,
  51. version: 209095,
  52. },
  53. {
  54. output: `AppArmor parser version 3.14.159
  55. Copyright (C) 1999-2008 Novell Inc.
  56. Copyright 2009-2012 Canonical Ltd.
  57. `,
  58. version: 314159,
  59. },
  60. {
  61. output: `AppArmor parser version 3.0.0-beta1
  62. Copyright (C) 1999-2008 Novell Inc.
  63. Copyright 2009-2018 Canonical Ltd.
  64. `,
  65. version: 300000,
  66. },
  67. {
  68. output: `AppArmor parser version 3.0.0-beta1-foo-bar
  69. Copyright (C) 1999-2008 Novell Inc.
  70. Copyright 2009-2018 Canonical Ltd.
  71. `,
  72. version: 300000,
  73. },
  74. }
  75. for _, v := range versions {
  76. version, err := parseVersion(v.output)
  77. if err != nil {
  78. t.Fatalf("expected error to be nil for %#v, got: %v", v, err)
  79. }
  80. if version != v.version {
  81. t.Fatalf("expected version to be %d, was %d, for: %#v\n", v.version, version, v)
  82. }
  83. }
  84. }