34 lines
1.3 KiB
Go
34 lines
1.3 KiB
Go
package rsync
|
|
|
|
import (
|
|
"slices"
|
|
"testing"
|
|
|
|
"git.casaderoll.de/michael/urbm/internal/model"
|
|
)
|
|
|
|
func TestArgumentsUseExplicitSafeOptions(t *testing.T) {
|
|
job := model.Job{Sources: []model.Source{{Path: "/mnt/user/data"}}, Excludes: []string{"*.tmp"}, Rsync: model.RsyncOptions{Target: "/mnt/remotes/backup", Delete: true, PreservePermissions: true}}
|
|
args := Arguments(job)
|
|
for _, expected := range []string{"--recursive", "--delete-delay", "--perms", "--exclude", "*.tmp", "--", "/mnt/user/data", "/mnt/remotes/backup/"} {
|
|
if !slices.Contains(args, expected) {
|
|
t.Fatalf("missing %q in %#v", expected, args)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestParseProgress(t *testing.T) {
|
|
progress, ok := parseProgress(" 1,234,567 42% 12.34MB/s 0:00:05")
|
|
if !ok || progress.Bytes != 1234567 || progress.Percent != 42 {
|
|
t.Fatalf("progress = %#v, %v", progress, ok)
|
|
}
|
|
}
|
|
|
|
func TestArrayDiskMirrorKeepsDiskDirectory(t *testing.T) {
|
|
job := model.Job{Sources: []model.Source{{Path: "/mnt/disk1"}}, Rsync: model.RsyncOptions{Target: "/mnt/disks/USB Backup", Overwrite: true, Delete: true}}
|
|
args := Arguments(job)
|
|
if !slices.Equal(args[len(args)-3:], []string{"--", "/mnt/disk1", "/mnt/disks/USB Backup/"}) || !slices.Contains(args, "--delete-delay") {
|
|
t.Fatalf("mirror arguments = %v", args)
|
|
}
|
|
}
|