mirror of
https://github.com/clearlinux/mixer-tools.git
synced 2026-09-06 21:51:30 +00:00
Add CreateManifests tests for renames in manifests
Signed-off-by: Matthew Johnson <matthew.johnson@intel.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"io/ioutil"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
@@ -618,3 +619,100 @@ func TestCreateManifestsIndexInclude(t *testing.T) {
|
||||
|
||||
checkManifestContains(t, testDir, "10", "test-bundle2", "includes:\tos-core-update-index")
|
||||
}
|
||||
|
||||
func TestCreateManifestsDirectRenames(t *testing.T) {
|
||||
testDir := mustSetupTestDir(t, "directRenames")
|
||||
defer removeIfNoErrors(t, testDir)
|
||||
|
||||
mustInitStandardTest(t, testDir, "0", "10", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "10", "test-bundle", "foo", strings.Repeat("foo", 100))
|
||||
mustCreateManifestsStandard(t, 10, testDir)
|
||||
|
||||
mustInitStandardTest(t, testDir, "10", "20", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "20", "test-bundle", "bar", strings.Repeat("foo", 100))
|
||||
mustCreateManifestsStandard(t, 20, testDir)
|
||||
|
||||
re := regexp.MustCompile("F\\.\\.r\t.*\t20\t/bar\n")
|
||||
checkManifestMatches(t, testDir, "20", "test-bundle", re)
|
||||
re = regexp.MustCompile("\\.d\\.r\t.*\t20\t/foo\n")
|
||||
checkManifestMatches(t, testDir, "20", "test-bundle", re)
|
||||
}
|
||||
|
||||
func TestCreateManifestsRenamesNewHash(t *testing.T) {
|
||||
testDir := mustSetupTestDir(t, "renamesNewHash")
|
||||
defer removeIfNoErrors(t, testDir)
|
||||
|
||||
mustInitStandardTest(t, testDir, "0", "10", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "10", "test-bundle", "foo", strings.Repeat("foo", 100))
|
||||
mustCreateManifestsStandard(t, 10, testDir)
|
||||
|
||||
mustInitStandardTest(t, testDir, "10", "20", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "20", "test-bundle", "foo33", strings.Repeat("foo", 100)+"ch-ch-ch-changes")
|
||||
mustCreateManifestsStandard(t, 20, testDir)
|
||||
|
||||
re := regexp.MustCompile("F\\.\\.r\t.*\t20\t/foo33\n")
|
||||
checkManifestMatches(t, testDir, "20", "test-bundle", re)
|
||||
re = regexp.MustCompile("\\.d\\.r\t.*\t20\t/foo\n")
|
||||
checkManifestMatches(t, testDir, "20", "test-bundle", re)
|
||||
}
|
||||
|
||||
func TestCreateManifestsRenamesOrphanedDeletes(t *testing.T) {
|
||||
testDir := mustSetupTestDir(t, "renamesOrphanedDeletes")
|
||||
defer removeIfNoErrors(t, testDir)
|
||||
mustInitStandardTest(t, testDir, "0", "10", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "10", "test-bundle", "direct", strings.Repeat("foo", 100))
|
||||
mustGenFile(t, testDir, "10", "test-bundle", "hashchange", strings.Repeat("boo", 100))
|
||||
mustCreateManifestsStandard(t, 10, testDir)
|
||||
|
||||
mustInitStandardTest(t, testDir, "10", "20", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "20", "test-bundle", "direct1", strings.Repeat("foo", 100))
|
||||
mustGenFile(t, testDir, "20", "test-bundle", "hashchange1", strings.Repeat("roo", 100))
|
||||
mustCreateManifestsStandard(t, 20, testDir)
|
||||
|
||||
mustInitStandardTest(t, testDir, "20", "30", []string{"test-bundle"})
|
||||
mustCreateManifestsStandard(t, 30, testDir)
|
||||
|
||||
res := []*regexp.Regexp{
|
||||
regexp.MustCompile("\\.d\\.\\.\t.*\t20\t/direct\n"),
|
||||
regexp.MustCompile("\\.d\\.\\.\t.*\t30\t/direct1\n"),
|
||||
regexp.MustCompile("\\.d\\.\\.\t.*\t20\t/hashchange\n"),
|
||||
regexp.MustCompile("\\.d\\.\\.\t.*\t30\t/hashchange1\n"),
|
||||
}
|
||||
checkManifestMatches(t, testDir, "30", "test-bundle", res...)
|
||||
}
|
||||
|
||||
func TestCreateRenamesOrphanedChain(t *testing.T) {
|
||||
testDir := mustSetupTestDir(t, "renamesOrphanedChain")
|
||||
defer removeIfNoErrors(t, testDir)
|
||||
mustInitStandardTest(t, testDir, "0", "10", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "10", "test-bundle", "direct", strings.Repeat("foo", 100))
|
||||
mustGenFile(t, testDir, "10", "test-bundle", "hashchange", strings.Repeat("boo", 100))
|
||||
mustCreateManifestsStandard(t, 10, testDir)
|
||||
|
||||
mustInitStandardTest(t, testDir, "10", "20", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "20", "test-bundle", "direct1", strings.Repeat("foo", 100))
|
||||
mustGenFile(t, testDir, "20", "test-bundle", "hashchange1", strings.Repeat("roo", 100))
|
||||
mustCreateManifestsStandard(t, 20, testDir)
|
||||
|
||||
mustInitStandardTest(t, testDir, "20", "30", []string{"test-bundle"})
|
||||
mustGenFile(t, testDir, "30", "test-bundle", "direct2", strings.Repeat("foo", 100))
|
||||
mustGenFile(t, testDir, "30", "test-bundle", "hashchange2", strings.Repeat("goo", 100))
|
||||
mustCreateManifestsStandard(t, 30, testDir)
|
||||
|
||||
res := []*regexp.Regexp{
|
||||
// direct deleted
|
||||
regexp.MustCompile("\\.d\\.\\.\t.*\t20\tdirect\n"),
|
||||
// direct1 is now rename-from
|
||||
regexp.MustCompile("\\.d\\.r\t.*\t30\tdirect1\n"),
|
||||
// direct2 is now rename-to
|
||||
regexp.MustCompile("F\\.\\.r\t.*\t30\tdirect2\n"),
|
||||
|
||||
// hashchange deleted
|
||||
regexp.MustCompile("\\.d\\.\\.\t.*\t20\thashchange\n"),
|
||||
// hashchange1 now rename-from
|
||||
regexp.MustCompile("\\.d\\.r\t.*\t30\thashchange1\n"),
|
||||
// hashchange2 now rename-to
|
||||
regexp.MustCompile("F\\.\\.r\t.*\t30\thashchange2\n"),
|
||||
}
|
||||
checkManifestMatches(t, testDir, "30", "test-bundle", res...)
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ func checkManifestMatches(t *testing.T, testDir, ver, name string, res ...*regex
|
||||
|
||||
for _, re := range res {
|
||||
if !re.Match(b) {
|
||||
t.Errorf("%v not found in %s/Manifest.%s", re.String(), ver, name)
|
||||
t.Errorf("%v not found in %s", re.String(), manFpath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user