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  }