//
// SPDX-License-Identifier: AGPL-3.0
-// Skip this slow test unless invoked as "go test -tags docker".
-// +build docker
-
package localdb
import (
"os"
"os/exec"
+ "testing"
- "git.arvados.org/arvados.git/sdk/go/arvados"
- "git.arvados.org/arvados.git/sdk/go/arvadostest"
check "gopkg.in/check.v1"
)
-var _ = check.Suite(&LDAPSuite{})
-
-type LDAPSuite struct{}
-
-func (s *LDAPSuite) TearDownSuite(c *check.C) {
- // Undo any changes/additions to the user database so they
- // don't affect subsequent tests.
- arvadostest.ResetEnv()
- c.Check(arvados.NewClientFromEnv().RequestAndDecode(nil, "POST", "database/reset", nil, nil), check.IsNil)
+func haveDocker() bool {
+ _, err := exec.Command("docker", "info").CombinedOutput()
+ return err == nil
}
func (s *LDAPSuite) TestLoginLDAPViaPAM(c *check.C) {
+ if testing.Short() {
+ c.Skip("skipping docker test in short mode")
+ }
+ if !haveDocker() {
+ c.Skip("skipping docker test because docker is not available")
+ }
+ pgproxy := newPgProxy(c, s.cluster)
+ defer pgproxy.Close()
+
cmd := exec.Command("bash", "login_ldap_docker_test.sh")
cmd.Stdout = os.Stderr
cmd.Stderr = os.Stderr
- cmd.Env = append(os.Environ(), "config_method=pam")
+ cmd.Env = append(os.Environ(), "config_method=pam", "pgport="+pgproxy.Port())
err := cmd.Run()
c.Check(err, check.IsNil)
}
func (s *LDAPSuite) TestLoginLDAPBuiltin(c *check.C) {
+ if testing.Short() {
+ c.Skip("skipping docker test in short mode")
+ }
+ if !haveDocker() {
+ c.Skip("skipping docker test because docker is not available")
+ }
+ pgproxy := newPgProxy(c, s.cluster)
+ defer pgproxy.Close()
+
cmd := exec.Command("bash", "login_ldap_docker_test.sh")
cmd.Stdout = os.Stderr
cmd.Stderr = os.Stderr
- cmd.Env = append(os.Environ(), "config_method=ldap")
+ cmd.Env = append(os.Environ(), "config_method=ldap", "pgport="+pgproxy.Port())
err := cmd.Run()
c.Check(err, check.IsNil)
}