Add CreateManifests tests for renames in manifests

Signed-off-by: Matthew Johnson <matthew.johnson@intel.com>
This commit is contained in:
Matthew Johnson
2018-02-06 10:25:08 -08:00
parent 0d8d06b37f
commit d4fdf292a8
2 changed files with 99 additions and 1 deletions
+98
View File
@@ -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...)
}
+1 -1
View File
@@ -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)
}
}
}