From 4ba85c40cce56193464e706b9538098d18b0e019 Mon Sep 17 00:00:00 2001 From: Matthias Freund Date: Thu, 30 Jan 2020 01:59:57 +0100 Subject: [PATCH] daemon/job/build_jobs: fix validateReceivingSidesDoNotOverlap --- daemon/job/build_jobs.go | 5 +++++ daemon/job/build_jobs_test.go | 1 + 2 files changed, 6 insertions(+) diff --git a/daemon/job/build_jobs.go b/daemon/job/build_jobs.go index dd6707a..6d1454a 100644 --- a/daemon/job/build_jobs.go +++ b/daemon/job/build_jobs.go @@ -104,6 +104,11 @@ func validateReceivingSidesDoNotOverlap(receivingRootFSs []string) error { sort.Slice(rfss, func(i, j int) bool { return strings.Compare(rfss[i], rfss[j]) == -1 }) + // add tailing slash because of hierarchy-simulation + // rootfs/ is not root of rootfs2/ + for i := 0; i < len(rfss); i++ { + rfss[i] += "/" + } // idea: // no path in rfss must be prefix of another // diff --git a/daemon/job/build_jobs_test.go b/daemon/job/build_jobs_test.go index 02f122e..5173d83 100644 --- a/daemon/job/build_jobs_test.go +++ b/daemon/job/build_jobs_test.go @@ -18,6 +18,7 @@ func TestValidateReceivingSidesDoNotOverlap(t *testing.T) { {false, []string{"a"}}, {false, []string{"some/path"}}, {false, []string{"zroot/sink1", "zroot/sink2", "zroot/sink3"}}, + {false, []string{"zroot/foo", "zroot/foobar"}}, {true, []string{"zroot/b", "zroot/b"}}, {true, []string{"zroot/foo", "zroot/foo/bar", "zroot/baz"}}, {false, []string{"a/x", "b/x"}},