X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=remote%2Fsync%2Ffiles_test.go;h=7a4ce260f487b21d956b60600c8d946e8074dd10;hb=HEAD;hp=ded6614e2c35fbc246658ceff4a1bd951590a500;hpb=c661469342af4e738e7ef4a7cedc96c9be4dd9d1;p=safcm%2Fsafcm.git diff --git a/remote/sync/files_test.go b/remote/sync/files_test.go index ded6614..7a4ce26 100644 --- a/remote/sync/files_test.go +++ b/remote/sync/files_test.go @@ -1,17 +1,5 @@ -// Copyright (C) 2021-2022 Simon Ruderich -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (C) 2021-2024 Simon Ruderich package sync @@ -1006,6 +994,44 @@ func TestSyncFile(t *testing.T) { nil, }, + { + "file: create, missing parent (dry-run)", + safcm.MsgSyncReq{ + DryRun: true, + }, + &safcm.File{ + Path: "does-not-exist/file", + Mode: 0644, + Uid: -1, + Gid: -1, + Data: []byte("content\n"), + OrigGroup: "group", + }, + nil, + true, + []ft.File{root}, + safcm.MsgSyncResp{ + FileChanges: []safcm.FileChange{ + { + Path: "does-not-exist/file", + Created: true, + New: safcm.FileChangeInfo{ + Mode: 0644, + User: user, + Uid: uid, + Group: group, + Gid: gid, + }, + }, + }, + }, + []string{ + `4: files: "does-not-exist/file" (group): will create (parent missing)`, + `4: files: "does-not-exist/file" (group): dry-run, skipping changes`, + }, + nil, + }, + { "file: unchanged", safcm.MsgSyncReq{}, @@ -1486,6 +1512,43 @@ func TestSyncFile(t *testing.T) { nil, }, + { + "directory: create, missing parent (dry-run)", + safcm.MsgSyncReq{ + DryRun: true, + }, + &safcm.File{ + Path: "does-not-exist/dir", + Mode: fs.ModeDir | 0755, + Uid: -1, + Gid: -1, + OrigGroup: "group", + }, + nil, + true, + []ft.File{root}, + safcm.MsgSyncResp{ + FileChanges: []safcm.FileChange{ + { + Path: "does-not-exist/dir", + Created: true, + New: safcm.FileChangeInfo{ + Mode: fs.ModeDir | 0755, + User: user, + Uid: uid, + Group: group, + Gid: gid, + }, + }, + }, + }, + []string{ + `4: files: "does-not-exist/dir" (group): will create (parent missing)`, + `4: files: "does-not-exist/dir" (group): dry-run, skipping changes`, + }, + nil, + }, + { "directory: unchanged", safcm.MsgSyncReq{},