From c08682181932e2f0ec53cf3bfa414007aa81b4c2 Mon Sep 17 00:00:00 2001 From: Jarek Kowalski Date: Fri, 5 Nov 2021 12:33:25 -0700 Subject: [PATCH] testing: rclone test cleanup - pass config file --- repo/blob/rclone/rclone_storage_test.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/repo/blob/rclone/rclone_storage_test.go b/repo/blob/rclone/rclone_storage_test.go index f7c2f873f..61ed2833a 100644 --- a/repo/blob/rclone/rclone_storage_test.go +++ b/repo/blob/rclone/rclone_storage_test.go @@ -235,7 +235,25 @@ func TestRCloneProviders(t *testing.T) { func cleanupOldData(t *testing.T, rcloneExe, remotePath string) { t.Helper() - c := exec.Command(rcloneExe, "lsjson", remotePath) + configFile := os.Getenv("KOPIA_RCLONE_CONFIG_FILE") + + if cfg := os.Getenv("KOPIA_RCLONE_EMBEDDED_CONFIG_B64"); cfg != "" { + b, err := base64.StdEncoding.DecodeString(cfg) + if err != nil { + t.Fatalf("unable to decode KOPIA_RCLONE_EMBEDDED_CONFIG_B64: %v", err) + } + + tmpDir := testutil.TempDirectory(t) + + configFile = filepath.Join(tmpDir, "rclone.conf") + + // nolint:gomnd + if err = os.WriteFile(configFile, b, 0o600); err != nil { + t.Fatalf("unable to write config file: %v", err) + } + } + + c := exec.Command(rcloneExe, "--config", configFile, "lsjson", remotePath) b, err := c.Output() require.NoError(t, err) @@ -256,7 +274,7 @@ func cleanupOldData(t *testing.T, rcloneExe, remotePath string) { if age > cleanupAge { t.Logf("purging: %v %v", e.Name, age) - if err := exec.Command(rcloneExe, "purge", remotePath+"/"+e.Name).Run(); err != nil { + if err := exec.Command(rcloneExe, "--config", configFile, "purge", remotePath+"/"+e.Name).Run(); err != nil { t.Logf("error purging %v: %v", e.Name, err) } }