mirror of
https://github.com/kopia/kopia.git
synced 2026-05-14 09:47:35 -04:00
* repo: added 'enable password change' flag (defaults to true for new repositories), which prevents embedding replicas of kopia.repository in pack blobs * cli: added 'repo change-password' which can change the password of a connected repository * repo: nit - renamed variables and functions dealing with key derivation * repo: fixed cache validation HMAC secret to use stored HMAC secret instead of password-derived one * cli: added test for repo change-password * repo: negative cases for attempting to change password in an old repository * Update cli/command_repository_change_password.go Co-authored-by: Julio Lopez <julio+gh@kasten.io> Co-authored-by: Julio Lopez <julio+gh@kasten.io>
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package testenv
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/kopia/kopia/cli"
|
|
"github.com/kopia/kopia/internal/buf"
|
|
"github.com/kopia/kopia/internal/testlogging"
|
|
)
|
|
|
|
// CLIInProcRunner is a CLIRunner that invokes provided commands in the current process.
|
|
type CLIInProcRunner struct {
|
|
RepoPassword string
|
|
}
|
|
|
|
// Start implements CLIRunner.
|
|
func (e *CLIInProcRunner) Start(t *testing.T, args []string) (stdout, stderr io.Reader, wait func() error, kill func()) {
|
|
t.Helper()
|
|
|
|
ctx := testlogging.Context(t)
|
|
|
|
a := cli.NewApp()
|
|
a.AdvancedCommands = "enabled"
|
|
|
|
return a.RunSubcommand(ctx, append([]string{
|
|
"--password", e.RepoPassword,
|
|
}, args...))
|
|
}
|
|
|
|
// NewInProcRunner returns a runner that executes CLI subcommands in the current process using cli.RunSubcommand().
|
|
func NewInProcRunner(t *testing.T) *CLIInProcRunner {
|
|
t.Helper()
|
|
|
|
if os.Getenv("KOPIA_EXE") != "" && os.Getenv("KOPIA_RUN_ALL_INTEGRATION_TESTS") == "" {
|
|
t.Skip("not running test since it's also included in the unit tests")
|
|
}
|
|
|
|
return &CLIInProcRunner{
|
|
RepoPassword: TestRepoPassword,
|
|
}
|
|
}
|
|
|
|
var _ CLIRunner = (*CLIInProcRunner)(nil)
|
|
|
|
func init() {
|
|
// disable buffer management in end-to-end tests as running too many of them in parallel causes too
|
|
// much memory usage on low-end platforms.
|
|
buf.DisableBufferManagement = true
|
|
}
|