github.com/pdmccormick/importable-docker-buildx@v0.0.0-20240426161518-e47091289030/tests/workers/backend.go (about)

     1  package workers
     2  
     3  import (
     4  	"os"
     5  	"strings"
     6  
     7  	"github.com/moby/buildkit/util/testutil/integration"
     8  )
     9  
    10  type backend struct {
    11  	builder             string
    12  	context             string
    13  	unsupportedFeatures []string
    14  }
    15  
    16  var _ integration.Backend = &backend{}
    17  
    18  func (s *backend) Address() string {
    19  	return s.builder
    20  }
    21  
    22  func (s *backend) DockerAddress() string {
    23  	return s.context
    24  }
    25  
    26  func (s *backend) ContainerdAddress() string {
    27  	return ""
    28  }
    29  
    30  func (s *backend) Snapshotter() string {
    31  	return ""
    32  }
    33  
    34  func (s *backend) Rootless() bool {
    35  	return false
    36  }
    37  
    38  func (s *backend) NetNSDetached() bool {
    39  	return false
    40  }
    41  
    42  func (s *backend) ExtraEnv() []string {
    43  	return nil
    44  }
    45  
    46  func (s backend) Supports(feature string) bool {
    47  	if enabledFeatures := os.Getenv("BUILDKIT_TEST_ENABLE_FEATURES"); enabledFeatures != "" {
    48  		for _, enabledFeature := range strings.Split(enabledFeatures, ",") {
    49  			if feature == enabledFeature {
    50  				return true
    51  			}
    52  		}
    53  	}
    54  	if disabledFeatures := os.Getenv("BUILDKIT_TEST_DISABLE_FEATURES"); disabledFeatures != "" {
    55  		for _, disabledFeature := range strings.Split(disabledFeatures, ",") {
    56  			if feature == disabledFeature {
    57  				return false
    58  			}
    59  		}
    60  	}
    61  	for _, unsupportedFeature := range s.unsupportedFeatures {
    62  		if feature == unsupportedFeature {
    63  			return false
    64  		}
    65  	}
    66  	return true
    67  }