|
|
@ -29,7 +29,6 @@ import (
|
|
|
|
"os"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
|
|
|
"strings"
|
|
|
|
"sync"
|
|
|
|
|
|
|
|
"time"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/distribution/distribution/v3/configuration"
|
|
|
|
"github.com/distribution/distribution/v3/configuration"
|
|
|
@ -65,12 +64,13 @@ type TestSuite struct {
|
|
|
|
CompromisedRegistryHost string
|
|
|
|
CompromisedRegistryHost string
|
|
|
|
WorkspaceDir string
|
|
|
|
WorkspaceDir string
|
|
|
|
RegistryClient *Client
|
|
|
|
RegistryClient *Client
|
|
|
|
|
|
|
|
dockerRegistry *registry.Registry
|
|
|
|
|
|
|
|
|
|
|
|
// A mock DNS server needed for TLS connection testing.
|
|
|
|
// A mock DNS server needed for TLS connection testing.
|
|
|
|
srv *mockdns.Server
|
|
|
|
srv *mockdns.Server
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func setup(suite *TestSuite, tlsEnabled, insecure bool) *registry.Registry {
|
|
|
|
func setup(suite *TestSuite, tlsEnabled, insecure bool) {
|
|
|
|
suite.WorkspaceDir = testWorkspaceDir
|
|
|
|
suite.WorkspaceDir = testWorkspaceDir
|
|
|
|
os.RemoveAll(suite.WorkspaceDir)
|
|
|
|
os.RemoveAll(suite.WorkspaceDir)
|
|
|
|
os.Mkdir(suite.WorkspaceDir, 0700)
|
|
|
|
os.Mkdir(suite.WorkspaceDir, 0700)
|
|
|
@ -166,20 +166,20 @@ func setup(suite *TestSuite, tlsEnabled, insecure bool) *registry.Registry {
|
|
|
|
config.HTTP.TLS.ClientCAs = []string{tlsCA}
|
|
|
|
config.HTTP.TLS.ClientCAs = []string{tlsCA}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
dockerRegistry, err := registry.NewRegistry(context.Background(), config)
|
|
|
|
suite.dockerRegistry, err = registry.NewRegistry(context.Background(), config)
|
|
|
|
suite.Nil(err, "no error creating test registry")
|
|
|
|
suite.Nil(err, "no error creating test registry")
|
|
|
|
|
|
|
|
|
|
|
|
suite.CompromisedRegistryHost = initCompromisedRegistryTestServer()
|
|
|
|
suite.CompromisedRegistryHost = initCompromisedRegistryTestServer()
|
|
|
|
return dockerRegistry
|
|
|
|
go func() {
|
|
|
|
|
|
|
|
_ = suite.dockerRegistry.ListenAndServe()
|
|
|
|
|
|
|
|
_ = suite.srv.Close()
|
|
|
|
|
|
|
|
mockdns.UnpatchNet(net.DefaultResolver)
|
|
|
|
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func teardown(suite *TestSuite) {
|
|
|
|
func teardown(suite *TestSuite) {
|
|
|
|
var lock sync.Mutex
|
|
|
|
if suite.dockerRegistry != nil {
|
|
|
|
lock.Lock()
|
|
|
|
_ = suite.dockerRegistry.Shutdown(context.Background())
|
|
|
|
defer lock.Unlock()
|
|
|
|
|
|
|
|
if suite.srv != nil {
|
|
|
|
|
|
|
|
mockdns.UnpatchNet(net.DefaultResolver)
|
|
|
|
|
|
|
|
suite.srv.Close()
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|