diff --git a/base/util/test.go b/base/util/test.go index 61b5180e..0981dfe2 100644 --- a/base/util/test.go +++ b/base/util/test.go @@ -134,3 +134,12 @@ func verifyStruct(t *testing.T, v reflect.Value, p path.ContextPath, fieldName s // didn't find field return false } + +func CompressDataURL(t *testing.T, contents []byte) (string, string) { + t.Helper() + uri, compression, err := MakeDataURL(contents, nil, true) + if err != nil { + t.Fatalf("MakeDataURL: %v", err) + } + return uri, *compression +} diff --git a/base/v0_2/translate_test.go b/base/v0_2/translate_test.go index e68c33b5..3d3cfbe0 100644 --- a/base/v0_2/translate_test.go +++ b/base/v0_2/translate_test.go @@ -56,9 +56,9 @@ func init() { // TestTranslateFile tests translating the ct storage.files.[i] entries to ignition storage.files.[i] entries. func TestTranslateFile(t *testing.T) { zzz := "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" - zzz_gz := "data:;base64,H4sIAAAAAAAC/6oajAAQAAD//5tA8d+VAAAA" + zzzURI, zzzCompression := baseutil.CompressDataURL(t, []byte(zzz)) random := "\xc0\x9cl\x01\x89i\xa5\xbfW\xe4\x1b\xf4J_\xb79P\xa3#\xa7" - random_b64 := "data:;base64,wJxsAYlppb9X5Bv0Sl+3OVCjI6c=" + randomURI, randomCompression := baseutil.CompressDataURL(t, []byte(random)) filesDir := t.TempDir() fileContents := map[string]string{ @@ -477,21 +477,21 @@ func TestTranslateFile(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, Append: []types.Resource{ { - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { Source: util.StrToPtr("data:," + zzz), @@ -962,6 +962,9 @@ RequiredBy=local-fs.target`), // TestTranslateTree tests translating the butane storage.trees.[i] entries to ignition storage.files.[i] entries. func TestTranslateTree(t *testing.T) { + deepPath := "tree/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/file" + deepPathURI, deepPathCompression := baseutil.CompressDataURL(t, []byte(deepPath)) + tests := []struct { options *common.TranslateOptions // defaulted if not specified dirDirs map[string]os.FileMode // relative path -> mode @@ -1109,8 +1112,8 @@ func TestTranslateTree(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/yopSk3VLy5NSsksIptKy8xJBQQAAP//gkRzjkgAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(deepPathURI), + Compression: util.StrToPtr(deepPathCompression), }, Mode: util.IntToPtr(0644), }, diff --git a/base/v0_3/translate_test.go b/base/v0_3/translate_test.go index dbda38e2..c0500dd0 100644 --- a/base/v0_3/translate_test.go +++ b/base/v0_3/translate_test.go @@ -56,9 +56,9 @@ func init() { // TestTranslateFile tests translating the ct storage.files.[i] entries to ignition storage.files.[i] entries. func TestTranslateFile(t *testing.T) { zzz := "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" - zzz_gz := "data:;base64,H4sIAAAAAAAC/6oajAAQAAD//5tA8d+VAAAA" + zzzURI, zzzCompression := baseutil.CompressDataURL(t, []byte(zzz)) random := "\xc0\x9cl\x01\x89i\xa5\xbfW\xe4\x1b\xf4J_\xb79P\xa3#\xa7" - random_b64 := "data:;base64,wJxsAYlppb9X5Bv0Sl+3OVCjI6c=" + randomURI, randomCompression := baseutil.CompressDataURL(t, []byte(random)) filesDir := t.TempDir() fileContents := map[string]string{ @@ -477,21 +477,21 @@ func TestTranslateFile(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, Append: []types.Resource{ { - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { Source: util.StrToPtr("data:," + zzz), @@ -1116,6 +1116,9 @@ RequiredBy=remote-fs.target`), // TestTranslateTree tests translating the butane storage.trees.[i] entries to ignition storage.files.[i] entries. func TestTranslateTree(t *testing.T) { + deepPath := "tree/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/file" + deepPathURI, deepPathCompression := baseutil.CompressDataURL(t, []byte(deepPath)) + tests := []struct { options *common.TranslateOptions // defaulted if not specified dirDirs map[string]os.FileMode // relative path -> mode @@ -1263,8 +1266,8 @@ func TestTranslateTree(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/yopSk3VLy5NSsksIptKy8xJBQQAAP//gkRzjkgAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(deepPathURI), + Compression: util.StrToPtr(deepPathCompression), }, Mode: util.IntToPtr(0644), }, diff --git a/base/v0_4/translate_test.go b/base/v0_4/translate_test.go index 473c2ed0..42a0f9d9 100644 --- a/base/v0_4/translate_test.go +++ b/base/v0_4/translate_test.go @@ -56,9 +56,9 @@ func init() { // TestTranslateFile tests translating the ct storage.files.[i] entries to ignition storage.files.[i] entries. func TestTranslateFile(t *testing.T) { zzz := "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" - zzz_gz := "data:;base64,H4sIAAAAAAAC/6oajAAQAAD//5tA8d+VAAAA" + zzzURI, zzzCompression := baseutil.CompressDataURL(t, []byte(zzz)) random := "\xc0\x9cl\x01\x89i\xa5\xbfW\xe4\x1b\xf4J_\xb79P\xa3#\xa7" - random_b64 := "data:;base64,wJxsAYlppb9X5Bv0Sl+3OVCjI6c=" + randomURI, randomCompression := baseutil.CompressDataURL(t, []byte(random)) filesDir := t.TempDir() fileContents := map[string]string{ @@ -477,21 +477,21 @@ func TestTranslateFile(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, Append: []types.Resource{ { - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { Source: util.StrToPtr("data:," + zzz), @@ -1201,6 +1201,9 @@ RequiredBy=swap.target`), // TestTranslateTree tests translating the butane storage.trees.[i] entries to ignition storage.files.[i] entries. func TestTranslateTree(t *testing.T) { + deepPath := "tree/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/file" + deepPathURI, deepPathCompression := baseutil.CompressDataURL(t, []byte(deepPath)) + tests := []struct { options *common.TranslateOptions // defaulted if not specified dirDirs map[string]os.FileMode // relative path -> mode @@ -1348,8 +1351,8 @@ func TestTranslateTree(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/yopSk3VLy5NSsksIptKy8xJBQQAAP//gkRzjkgAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(deepPathURI), + Compression: util.StrToPtr(deepPathCompression), }, Mode: util.IntToPtr(0644), }, diff --git a/base/v0_5/translate_test.go b/base/v0_5/translate_test.go index 0b0124fb..a9f2f151 100644 --- a/base/v0_5/translate_test.go +++ b/base/v0_5/translate_test.go @@ -56,9 +56,9 @@ func init() { // TestTranslateFile tests translating the ct storage.files.[i] entries to ignition storage.files.[i] entries. func TestTranslateFile(t *testing.T) { zzz := "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" - zzz_gz := "data:;base64,H4sIAAAAAAAC/6oajAAQAAD//5tA8d+VAAAA" + zzzURI, zzzCompression := baseutil.CompressDataURL(t, []byte(zzz)) random := "\xc0\x9cl\x01\x89i\xa5\xbfW\xe4\x1b\xf4J_\xb79P\xa3#\xa7" - random_b64 := "data:;base64,wJxsAYlppb9X5Bv0Sl+3OVCjI6c=" + randomURI, randomCompression := baseutil.CompressDataURL(t, []byte(random)) filesDir := t.TempDir() fileContents := map[string]string{ @@ -477,21 +477,21 @@ func TestTranslateFile(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, Append: []types.Resource{ { - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { Source: util.StrToPtr("data:," + zzz), @@ -1201,6 +1201,9 @@ RequiredBy=swap.target`), // TestTranslateTree tests translating the butane storage.trees.[i] entries to ignition storage.files.[i] entries. func TestTranslateTree(t *testing.T) { + deepPath := "tree/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/file" + deepPathURI, deepPathCompression := baseutil.CompressDataURL(t, []byte(deepPath)) + tests := []struct { options *common.TranslateOptions // defaulted if not specified dirDirs map[string]os.FileMode // relative path -> mode @@ -1348,8 +1351,8 @@ func TestTranslateTree(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/yopSk3VLy5NSsksIptKy8xJBQQAAP//gkRzjkgAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(deepPathURI), + Compression: util.StrToPtr(deepPathCompression), }, Mode: util.IntToPtr(0644), }, diff --git a/base/v0_6/translate_test.go b/base/v0_6/translate_test.go index d500a33b..0ed14723 100644 --- a/base/v0_6/translate_test.go +++ b/base/v0_6/translate_test.go @@ -56,9 +56,9 @@ func init() { // TestTranslateFile tests translating the ct storage.files.[i] entries to ignition storage.files.[i] entries. func TestTranslateFile(t *testing.T) { zzz := "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" - zzz_gz := "data:;base64,H4sIAAAAAAAC/6oajAAQAAD//5tA8d+VAAAA" + zzzURI, zzzCompression := baseutil.CompressDataURL(t, []byte(zzz)) random := "\xc0\x9cl\x01\x89i\xa5\xbfW\xe4\x1b\xf4J_\xb79P\xa3#\xa7" - random_b64 := "data:;base64,wJxsAYlppb9X5Bv0Sl+3OVCjI6c=" + randomURI, randomCompression := baseutil.CompressDataURL(t, []byte(random)) filesDir := t.TempDir() fileContents := map[string]string{ @@ -477,21 +477,21 @@ func TestTranslateFile(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, Append: []types.Resource{ { - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { Source: util.StrToPtr("data:," + zzz), @@ -1201,6 +1201,9 @@ RequiredBy=swap.target`), // TestTranslateTree tests translating the butane storage.trees.[i] entries to ignition storage.files.[i] entries. func TestTranslateTree(t *testing.T) { + deepPath := "tree/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/file" + deepPathURI, deepPathCompression := baseutil.CompressDataURL(t, []byte(deepPath)) + tests := []struct { options *common.TranslateOptions // defaulted if not specified dirDirs map[string]os.FileMode // relative path -> mode @@ -1348,8 +1351,8 @@ func TestTranslateTree(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/yopSk3VLy5NSsksIptKy8xJBQQAAP//gkRzjkgAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(deepPathURI), + Compression: util.StrToPtr(deepPathCompression), }, Mode: util.IntToPtr(0644), }, diff --git a/base/v0_7/translate_test.go b/base/v0_7/translate_test.go index 3be86234..03a45ce9 100644 --- a/base/v0_7/translate_test.go +++ b/base/v0_7/translate_test.go @@ -56,9 +56,9 @@ func init() { // TestTranslateFile tests translating the ct storage.files.[i] entries to ignition storage.files.[i] entries. func TestTranslateFile(t *testing.T) { zzz := "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" - zzz_gz := "data:;base64,H4sIAAAAAAAC/6oajAAQAAD//5tA8d+VAAAA" + zzzURI, zzzCompression := baseutil.CompressDataURL(t, []byte(zzz)) random := "\xc0\x9cl\x01\x89i\xa5\xbfW\xe4\x1b\xf4J_\xb79P\xa3#\xa7" - random_b64 := "data:;base64,wJxsAYlppb9X5Bv0Sl+3OVCjI6c=" + randomURI, randomCompression := baseutil.CompressDataURL(t, []byte(random)) filesDir := t.TempDir() fileContents := map[string]string{ @@ -477,21 +477,21 @@ func TestTranslateFile(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, Append: []types.Resource{ { - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { Source: util.StrToPtr("data:," + zzz), @@ -1201,6 +1201,9 @@ RequiredBy=swap.target`), // TestTranslateTree tests translating the butane storage.trees.[i] entries to ignition storage.files.[i] entries. func TestTranslateTree(t *testing.T) { + deepPath := "tree/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/file" + deepPathURI, deepPathCompression := baseutil.CompressDataURL(t, []byte(deepPath)) + tests := []struct { options *common.TranslateOptions // defaulted if not specified dirDirs map[string]os.FileMode // relative path -> mode @@ -1349,8 +1352,8 @@ func TestTranslateTree(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/yopSk3VLy5NSsksIptKy8xJBQQAAP//gkRzjkgAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(deepPathURI), + Compression: util.StrToPtr(deepPathCompression), }, Mode: util.IntToPtr(0644), }, diff --git a/base/v0_8_exp/translate_test.go b/base/v0_8_exp/translate_test.go index e23a7263..f87bbba3 100644 --- a/base/v0_8_exp/translate_test.go +++ b/base/v0_8_exp/translate_test.go @@ -56,9 +56,9 @@ func init() { // TestTranslateFile tests translating the ct storage.files.[i] entries to ignition storage.files.[i] entries. func TestTranslateFile(t *testing.T) { zzz := "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" - zzz_gz := "data:;base64,H4sIAAAAAAAC/6oajAAQAAD//5tA8d+VAAAA" + zzzURI, zzzCompression := baseutil.CompressDataURL(t, []byte(zzz)) random := "\xc0\x9cl\x01\x89i\xa5\xbfW\xe4\x1b\xf4J_\xb79P\xa3#\xa7" - random_b64 := "data:;base64,wJxsAYlppb9X5Bv0Sl+3OVCjI6c=" + randomURI, randomCompression := baseutil.CompressDataURL(t, []byte(random)) filesDir := t.TempDir() fileContents := map[string]string{ @@ -477,21 +477,21 @@ func TestTranslateFile(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, Append: []types.Resource{ { - Source: util.StrToPtr(zzz_gz), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(zzzURI), + Compression: util.StrToPtr(zzzCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { - Source: util.StrToPtr(random_b64), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(randomURI), + Compression: util.StrToPtr(randomCompression), }, { Source: util.StrToPtr("data:," + zzz), @@ -1201,6 +1201,9 @@ RequiredBy=swap.target`), // TestTranslateTree tests translating the butane storage.trees.[i] entries to ignition storage.files.[i] entries. func TestTranslateTree(t *testing.T) { + deepPath := "tree/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/subdir/file" + deepPathURI, deepPathCompression := baseutil.CompressDataURL(t, []byte(deepPath)) + tests := []struct { options *common.TranslateOptions // defaulted if not specified dirDirs map[string]os.FileMode // relative path -> mode @@ -1349,8 +1352,8 @@ func TestTranslateTree(t *testing.T) { }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/yopSk3VLy5NSsksIptKy8xJBQQAAP//gkRzjkgAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(deepPathURI), + Compression: util.StrToPtr(deepPathCompression), }, Mode: util.IntToPtr(0644), }, @@ -2529,8 +2532,6 @@ Exec=sleep infinity [Install] WantedBy=multi-user.target` - SleepContainerAsData = "data:,%5BUnit%5D%0ADescription%3DA%20sleepy%20container%0A%5BContainer%5D%0AContainerName%3Dsleepy-pod-inf%0AImage%3Dquay.io%2Ffedora%2Ffedora%0AExec%3Dsleep%20infinity%0A%5BInstall%5D%0AWantedBy%3Dmulti-user.target" - SleepContainerTemplate = `[Unit] Description=A templated sleepy container [Container] @@ -2541,10 +2542,11 @@ Exec=sleep %i Restart=always [Install] WantedBy=multi-user.target` - - SleepContainerTemplateAsData = "data:;base64,H4sIAAAAAAAC/zSNvU4DMRCE+32KlRAl4Qlc8FekBSGKk4uVb5Ks5Fsf3j2C3x6JJNWMRvPpmz5NI9MrvHRdQ5ulJw4sa5XAzF6BdXBpFqKGTtPLrWbaL3JE+t5k7LQ9HjC3Ltegt1+U9E/zvdL0gf6jBZnu+B0e0oP9MvH5BLt4+KCmfoLT9ZOknmU4TXvzkFozfYkF5ueRlq2GPmyOvgvpR8RfAAAA//91kIIEyQAAAA==" ) + sleepContainerAsData, sleepContainerCompression := baseutil.CompressDataURL(t, []byte(SleepContainer)) + sleepContainerTemplateAsData, sleepContainerTemplateCompression := baseutil.CompressDataURL(t, []byte(SleepContainerTemplate)) + filesDir := t.TempDir() fileContents := map[string]string{ "sample.container": SleepContainer, @@ -2600,8 +2602,8 @@ WantedBy=multi-user.target` }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(SleepContainerAsData), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(sleepContainerAsData), + Compression: util.StrToPtr(sleepContainerCompression), }, Mode: util.IntToPtr(0644), }, @@ -2612,8 +2614,8 @@ WantedBy=multi-user.target` }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(SleepContainerAsData), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(sleepContainerAsData), + Compression: util.StrToPtr(sleepContainerCompression), }, Mode: util.IntToPtr(0644), }, @@ -2651,8 +2653,8 @@ WantedBy=multi-user.target` }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(SleepContainerTemplateAsData), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(sleepContainerTemplateAsData), + Compression: util.StrToPtr(sleepContainerTemplateCompression), }, Mode: util.IntToPtr(0644), }, @@ -2712,8 +2714,8 @@ WantedBy=multi-user.target` }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(SleepContainerAsData), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(sleepContainerAsData), + Compression: util.StrToPtr(sleepContainerCompression), }, Mode: util.IntToPtr(0644), }, @@ -2786,8 +2788,8 @@ WantedBy=multi-user.target` }, FileEmbedded1: types.FileEmbedded1{ Contents: types.Resource{ - Source: util.StrToPtr(SleepContainerTemplateAsData), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(sleepContainerTemplateAsData), + Compression: util.StrToPtr(sleepContainerTemplateCompression), }, Mode: util.IntToPtr(0644), }, diff --git a/config/fcos/v1_5/translate_test.go b/config/fcos/v1_5/translate_test.go index bdcddcba..ba47b0f5 100644 --- a/config/fcos/v1_5/translate_test.go +++ b/config/fcos/v1_5/translate_test.go @@ -1747,6 +1747,21 @@ func TestRootPartitionConstraints(t *testing.T) { // TestTranslateGrub tests translating the Butane config Grub section. func TestTranslateGrub(t *testing.T) { + singleUserExpectedConfig := `# Generated by Butane + +set superusers="root" +password_pbkdf2 root grub.pbkdf2.sha512.10000.874A958E526409... +` + singleUserURI, singleUserCompression := baseutil.CompressDataURL(t, []byte(singleUserExpectedConfig)) + + multiUserExpectedConfig := `# Generated by Butane + +set superusers="root1 root2" +password_pbkdf2 root1 grub.pbkdf2.sha512.10000.874A958E526409... +password_pbkdf2 root2 grub.pbkdf2.sha512.10000.874B829D126209... +` + multiUserURI, multiUserCompression := baseutil.CompressDataURL(t, []byte(multiUserExpectedConfig)) + // Some tests below have the same translations translations := []translate.Translation{ {From: path.New("yaml", "version"), To: path.New("json", "ignition", "version")}, @@ -1802,8 +1817,8 @@ func TestTranslateGrub(t *testing.T) { FileEmbedded1: types.FileEmbedded1{ Append: []types.Resource{ { - Source: util.StrToPtr("data:,%23%20Generated%20by%20Butane%0A%0Aset%20superusers%3D%22root%22%0Apassword_pbkdf2%20root%20grub.pbkdf2.sha512.10000.874A958E526409...%0A"), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(singleUserURI), + Compression: util.StrToPtr(singleUserCompression), }, }, }, @@ -1850,8 +1865,8 @@ func TestTranslateGrub(t *testing.T) { FileEmbedded1: types.FileEmbedded1{ Append: []types.Resource{ { - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/3zMsQrCMBDG8b1PcdT9SI62JoODRfExJCGngtCEuwTx7UWyiss3fH/47eDCG0uonCC+YW01bDwMyhW0FZamLHoYJedq4bs0DiWovrKka4nPdCPo8S4tYn9QH2G2hNYYY9Dtp6Of3XmmZTIeEX8C9BdYHfmTpYU68AkAAP//Mp8bt7YAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(multiUserURI), + Compression: util.StrToPtr(multiUserCompression), }, }, }, diff --git a/config/fcos/v1_6/translate_test.go b/config/fcos/v1_6/translate_test.go index a4375195..cf9cf07c 100644 --- a/config/fcos/v1_6/translate_test.go +++ b/config/fcos/v1_6/translate_test.go @@ -1747,6 +1747,21 @@ func TestRootPartitionConstraints(t *testing.T) { // TestTranslateGrub tests translating the Butane config Grub section. func TestTranslateGrub(t *testing.T) { + singleUserExpectedConfig := `# Generated by Butane + +set superusers="root" +password_pbkdf2 root grub.pbkdf2.sha512.10000.874A958E526409... +` + singleUserURI, singleUserCompression := baseutil.CompressDataURL(t, []byte(singleUserExpectedConfig)) + + multiUserExpectedConfig := `# Generated by Butane + +set superusers="root1 root2" +password_pbkdf2 root1 grub.pbkdf2.sha512.10000.874A958E526409... +password_pbkdf2 root2 grub.pbkdf2.sha512.10000.874B829D126209... +` + multiUserURI, multiUserCompression := baseutil.CompressDataURL(t, []byte(multiUserExpectedConfig)) + // Some tests below have the same translations translations := []translate.Translation{ {From: path.New("yaml", "version"), To: path.New("json", "ignition", "version")}, @@ -1802,8 +1817,8 @@ func TestTranslateGrub(t *testing.T) { FileEmbedded1: types.FileEmbedded1{ Append: []types.Resource{ { - Source: util.StrToPtr("data:,%23%20Generated%20by%20Butane%0A%0Aset%20superusers%3D%22root%22%0Apassword_pbkdf2%20root%20grub.pbkdf2.sha512.10000.874A958E526409...%0A"), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(singleUserURI), + Compression: util.StrToPtr(singleUserCompression), }, }, }, @@ -1850,8 +1865,8 @@ func TestTranslateGrub(t *testing.T) { FileEmbedded1: types.FileEmbedded1{ Append: []types.Resource{ { - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/3zMsQrCMBDG8b1PcdT9SI62JoODRfExJCGngtCEuwTx7UWyiss3fH/47eDCG0uonCC+YW01bDwMyhW0FZamLHoYJedq4bs0DiWovrKka4nPdCPo8S4tYn9QH2G2hNYYY9Dtp6Of3XmmZTIeEX8C9BdYHfmTpYU68AkAAP//Mp8bt7YAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(multiUserURI), + Compression: util.StrToPtr(multiUserCompression), }, }, }, diff --git a/config/fcos/v1_7/translate_test.go b/config/fcos/v1_7/translate_test.go index f861e6c6..29e2fd68 100644 --- a/config/fcos/v1_7/translate_test.go +++ b/config/fcos/v1_7/translate_test.go @@ -1748,6 +1748,21 @@ func TestRootPartitionConstraints(t *testing.T) { // TestTranslateGrub tests translating the Butane config Grub section. func TestTranslateGrub(t *testing.T) { + singleUserExpectedConfig := `# Generated by Butane + +set superusers="root" +password_pbkdf2 root grub.pbkdf2.sha512.10000.874A958E526409... +` + singleUserURI, singleUserCompression := baseutil.CompressDataURL(t, []byte(singleUserExpectedConfig)) + + multiUserExpectedConfig := `# Generated by Butane + +set superusers="root1 root2" +password_pbkdf2 root1 grub.pbkdf2.sha512.10000.874A958E526409... +password_pbkdf2 root2 grub.pbkdf2.sha512.10000.874B829D126209... +` + multiUserURI, multiUserCompression := baseutil.CompressDataURL(t, []byte(multiUserExpectedConfig)) + // Some tests below have the same translations translations := []translate.Translation{ {From: path.New("yaml", "version"), To: path.New("json", "ignition", "version")}, @@ -1803,8 +1818,8 @@ func TestTranslateGrub(t *testing.T) { FileEmbedded1: types.FileEmbedded1{ Append: []types.Resource{ { - Source: util.StrToPtr("data:,%23%20Generated%20by%20Butane%0A%0Aset%20superusers%3D%22root%22%0Apassword_pbkdf2%20root%20grub.pbkdf2.sha512.10000.874A958E526409...%0A"), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(singleUserURI), + Compression: util.StrToPtr(singleUserCompression), }, }, }, @@ -1851,8 +1866,8 @@ func TestTranslateGrub(t *testing.T) { FileEmbedded1: types.FileEmbedded1{ Append: []types.Resource{ { - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/3zMsQrCMBDG8b1PcdT9SI62JoODRfExJCGngtCEuwTx7UWyiss3fH/47eDCG0uonCC+YW01bDwMyhW0FZamLHoYJedq4bs0DiWovrKka4nPdCPo8S4tYn9QH2G2hNYYY9Dtp6Of3XmmZTIeEX8C9BdYHfmTpYU68AkAAP//Mp8bt7YAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(multiUserURI), + Compression: util.StrToPtr(multiUserCompression), }, }, }, diff --git a/config/fcos/v1_8_exp/translate_test.go b/config/fcos/v1_8_exp/translate_test.go index 1728c26f..810b3f22 100644 --- a/config/fcos/v1_8_exp/translate_test.go +++ b/config/fcos/v1_8_exp/translate_test.go @@ -1508,6 +1508,21 @@ func TestTranslateBootDevice(t *testing.T) { // TestTranslateGrub tests translating the Butane config Grub section. func TestTranslateGrub(t *testing.T) { + singleUserExpectedConfig := `# Generated by Butane + +set superusers="root" +password_pbkdf2 root grub.pbkdf2.sha512.10000.874A958E526409... +` + singleUserURI, singleUserCompression := baseutil.CompressDataURL(t, []byte(singleUserExpectedConfig)) + + multiUserExpectedConfig := `# Generated by Butane + +set superusers="root1 root2" +password_pbkdf2 root1 grub.pbkdf2.sha512.10000.874A958E526409... +password_pbkdf2 root2 grub.pbkdf2.sha512.10000.874B829D126209... +` + multiUserURI, multiUserCompression := baseutil.CompressDataURL(t, []byte(multiUserExpectedConfig)) + // Some tests below have the same translations translations := []translate.Translation{ {From: path.New("yaml", "version"), To: path.New("json", "ignition", "version")}, @@ -1563,8 +1578,8 @@ func TestTranslateGrub(t *testing.T) { FileEmbedded1: types.FileEmbedded1{ Append: []types.Resource{ { - Source: util.StrToPtr("data:,%23%20Generated%20by%20Butane%0A%0Aset%20superusers%3D%22root%22%0Apassword_pbkdf2%20root%20grub.pbkdf2.sha512.10000.874A958E526409...%0A"), - Compression: util.StrToPtr(""), + Source: util.StrToPtr(singleUserURI), + Compression: util.StrToPtr(singleUserCompression), }, }, }, @@ -1611,8 +1626,8 @@ func TestTranslateGrub(t *testing.T) { FileEmbedded1: types.FileEmbedded1{ Append: []types.Resource{ { - Source: util.StrToPtr("data:;base64,H4sIAAAAAAAC/3zMsQrCMBDG8b1PcdT9SI62JoODRfExJCGngtCEuwTx7UWyiss3fH/47eDCG0uonCC+YW01bDwMyhW0FZamLHoYJedq4bs0DiWovrKka4nPdCPo8S4tYn9QH2G2hNYYY9Dtp6Of3XmmZTIeEX8C9BdYHfmTpYU68AkAAP//Mp8bt7YAAAA="), - Compression: util.StrToPtr("gzip"), + Source: util.StrToPtr(multiUserURI), + Compression: util.StrToPtr(multiUserCompression), }, }, },