github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/container/lxd/shared_test.go (about) 1 // Copyright 2023 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package lxd 5 6 import ( 7 "encoding/pem" 8 9 gc "gopkg.in/check.v1" 10 11 lxdtesting "github.com/juju/juju/container/lxd/testing" 12 ) 13 14 type sharedSuite struct { 15 lxdtesting.BaseSuite 16 } 17 18 var _ = gc.Suite(&sharedSuite{}) 19 20 func (sharedSuite) TestGenerateMemCert(c *gc.C) { 21 22 cert, key, err := GenerateMemCert(false, true) 23 if err != nil { 24 c.Error(err) 25 return 26 } 27 28 if cert == nil { 29 c.Error("GenerateMemCert returned a nil cert") 30 return 31 } 32 33 if key == nil { 34 c.Error("GenerateMemCert returned a nil key") 35 return 36 } 37 38 block, rest := pem.Decode(cert) 39 if len(rest) != 0 { 40 c.Errorf("GenerateMemCert returned a cert with trailing content: %q", string(rest)) 41 } 42 43 if block.Type != "CERTIFICATE" { 44 c.Errorf("GenerateMemCert returned a cert with Type %q not \"CERTIFICATE\"", block.Type) 45 } 46 47 block, rest = pem.Decode(key) 48 if len(rest) != 0 { 49 c.Errorf("GenerateMemCert returned a key with trailing content: %q", string(rest)) 50 } 51 52 if block.Type != "EC PRIVATE KEY" { 53 c.Errorf("GenerateMemCert returned a cert with Type %q not \"EC PRIVATE KEY\"", block.Type) 54 } 55 }