From bf7b1f12eac0ec2da9aa457ffe9663017c7cd6be Mon Sep 17 00:00:00 2001 From: greatroar <@> Date: Thu, 18 Jun 2020 13:54:54 +0200 Subject: [PATCH] rclone: Add test for pipe handling when rclone exits --- internal/backend/rclone/internal_test.go | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 internal/backend/rclone/internal_test.go diff --git a/internal/backend/rclone/internal_test.go b/internal/backend/rclone/internal_test.go new file mode 100644 index 000000000..1705d9baf --- /dev/null +++ b/internal/backend/rclone/internal_test.go @@ -0,0 +1,31 @@ +package rclone + +import ( + "context" + "testing" + + "github.com/restic/restic/internal/restic" + rtest "github.com/restic/restic/internal/test" +) + +// restic should detect rclone exiting. +func TestRcloneExit(t *testing.T) { + dir, cleanup := rtest.TempDir(t) + defer cleanup() + + cfg := NewConfig() + cfg.Remote = dir + be, err := Open(cfg, nil) + rtest.OK(t, err) + defer be.Close() + + err = be.cmd.Process.Kill() + rtest.OK(t, err) + t.Log("killed rclone") + + _, err = be.Stat(context.TODO(), restic.Handle{ + Name: "foo", + Type: restic.DataFile, + }) + rtest.Assert(t, err != nil, "expected an error") +}