github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/core/arch/arches_test.go (about)

     1  // Copyright 2020 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package arch_test
     5  
     6  import (
     7  	"github.com/juju/testing"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/core/arch"
    12  )
    13  
    14  type archSuite struct {
    15  	testing.IsolationSuite
    16  }
    17  
    18  var _ = gc.Suite(&archSuite{})
    19  
    20  func (s archSuite) TestContains(c *gc.C) {
    21  	arches := arch.AllArches()
    22  	c.Assert(arches.Contains(arch.Arch("amd64")), jc.IsTrue)
    23  	c.Assert(arches.Contains(arch.Arch("risc")), jc.IsFalse)
    24  }
    25  
    26  func (s archSuite) TestStringList(c *gc.C) {
    27  	arches := arch.AllArches()
    28  	c.Assert(arches.StringList(), jc.DeepEquals, []string{"amd64", "arm64", "ppc64el", "riscv64", "s390x"})
    29  }
    30  
    31  func (s archSuite) TestString(c *gc.C) {
    32  	arches := arch.AllArches()
    33  	c.Assert(arches.String(), gc.Equals, "amd64,arm64,ppc64el,riscv64,s390x")
    34  }
    35  
    36  func (s *archSuite) TestHostArch(c *gc.C) {
    37  	a := arch.HostArch()
    38  	c.Assert(arch.IsSupportedArch(a), jc.IsTrue)
    39  }
    40  
    41  func (s *archSuite) TestNormaliseArch(c *gc.C) {
    42  	for _, test := range []struct {
    43  		raw  string
    44  		arch string
    45  	}{
    46  		{"amd64", "amd64"},
    47  		{"x86_64", "amd64"},
    48  		{"aarch64", "arm64"},
    49  		{"arm64", "arm64"},
    50  		{"ppc64el", "ppc64el"},
    51  		{"ppc64le", "ppc64el"},
    52  		{"s390x", "s390x"},
    53  		{"riscv64", "riscv64"},
    54  		{"risc", "riscv64"},
    55  		{"risc-v64", "riscv64"},
    56  		{"risc-V64", "riscv64"},
    57  	} {
    58  		arch := arch.NormaliseArch(test.raw)
    59  		c.Check(arch, gc.Equals, test.arch)
    60  	}
    61  }
    62  
    63  func (s *archSuite) TestIsSupportedArch(c *gc.C) {
    64  	for _, a := range arch.AllSupportedArches {
    65  		c.Assert(arch.IsSupportedArch(a), jc.IsTrue)
    66  	}
    67  	c.Assert(arch.IsSupportedArch("invalid"), jc.IsFalse)
    68  }