From 3532dbec441342ed9cd399d2b563d816703bd9ce Mon Sep 17 00:00:00 2001 From: Giuseppe Valente Date: Wed, 25 Apr 2018 15:54:15 -0700 Subject: [PATCH] manifest: test ArchFile() --- manifest/example_test.go | 40 +++++++++++++++------------------------- manifest/parse_test.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 25 deletions(-) diff --git a/manifest/example_test.go b/manifest/example_test.go index a2627fe..c98dd71 100644 --- a/manifest/example_test.go +++ b/manifest/example_test.go @@ -2,13 +2,13 @@ package manifest_test import ( "bufio" + "fmt" "strings" - "testing" "github.com/docker-library/go-dockerlibrary/manifest" ) -func TestExample(t *testing.T) { +func Example() { man, err := manifest.Parse(bufio.NewReader(strings.NewReader(`# RFC 2822 # I LOVE CAKE @@ -60,30 +60,20 @@ Tags: raspbian-s390x Architectures: s390x, i386 -Tags: 1.5-withfile -SharedTags: 1.5-debian -GitCommit: d7e2a8d90a9b8f5dfd5bcd428e0c33b68c40cc19 -File: Dockerfile-15 - -Tags: 1.5-withdirandfile -SharedTags: 1.5-debian -GitCommit: d7e2a8d90a9b8f5dfd5bcd428e0c33b68c40cc19 -Directory: 1.5 -File: Dockerfile-debian `))) if err != nil { - t.Fatal(err) + panic(err) } - t.Logf("-------------\n2822:\n%s\n", man) + fmt.Printf("-------------\n2822:\n%s\n", man) - t.Logf("\nShared Tag Groups:\n") + fmt.Printf("\nShared Tag Groups:\n") for _, group := range man.GetSharedTagGroups() { - t.Logf("\n - %s\n", strings.Join(group.SharedTags, ", ")) + fmt.Printf("\n - %s\n", strings.Join(group.SharedTags, ", ")) for _, entry := range group.Entries { - t.Logf(" - %s\n", entry.TagsString()) + fmt.Printf(" - %s\n", entry.TagsString()) } } - t.Logf("\n") + fmt.Printf("\n") man, err = manifest.Parse(bufio.NewReader(strings.NewReader(` # maintainer: InfoSiftr (@infosiftr) @@ -100,7 +90,7 @@ i: g@h j if err != nil { panic(err) } - t.Logf("-------------\nline-based:\n%v\n", man) + fmt.Printf("-------------\nline-based:\n%v\n", man) // Output: // ------------- @@ -161,15 +151,15 @@ i: g@h j // Directory: j } -func TestExampleFetch_local(t *testing.T) { +func ExampleFetch_local() { repoName, tagName, man, err := manifest.Fetch("testdata", "bash:4.4") if err != nil { panic(err) } - t.Logf("%s:%s\n\n", repoName, tagName) + fmt.Printf("%s:%s\n\n", repoName, tagName) - t.Log(man.GetTag(tagName).ClearDefaults(manifest.DefaultManifestEntry).String()) + fmt.Println(man.GetTag(tagName).ClearDefaults(manifest.DefaultManifestEntry).String()) // Output: // bash:4.4 @@ -181,15 +171,15 @@ func TestExampleFetch_local(t *testing.T) { // Directory: 4.4 } -func TestExampleFetch_remote(t *testing.T) { +func ExampleFetch_remote() { repoName, tagName, man, err := manifest.Fetch("/home/jsmith/docker/official-images/library", "https://github.com/docker-library/official-images/raw/1a3c4cd6d5cd53bd538a6f56a69f94c5b35325a7/library/bash:4.4") if err != nil { panic(err) } - t.Logf("%s:%s\n\n", repoName, tagName) + fmt.Printf("%s:%s\n\n", repoName, tagName) - t.Log(man.GetTag(tagName).ClearDefaults(manifest.DefaultManifestEntry).String()) + fmt.Println(man.GetTag(tagName).ClearDefaults(manifest.DefaultManifestEntry).String()) // Output: // bash:4.4 diff --git a/manifest/parse_test.go b/manifest/parse_test.go index 02a2e4a..19b4db0 100644 --- a/manifest/parse_test.go +++ b/manifest/parse_test.go @@ -18,3 +18,36 @@ func TestParseError(t *testing.T) { t.Errorf("Unexpected error: %v", err) } } + +func TestArchFile(t *testing.T) { + tests := []struct { + file string + defaultArchFile string + }{{ + file: "", + defaultArchFile: "Dockerfile", + }, { + file: "Dockerfile", + defaultArchFile: "Dockerfile", + }, { + file: "Dockerfile-foo", + defaultArchFile: "Dockerfile-foo", + }, + } + + for _, test := range tests { + manString := `Maintainers: Giuseppe Valente (@7AC) +GitCommit: abcdef +` + if test.file != "" { + manString += "File: " + test.file + } + man, err := manifest.Parse2822(strings.NewReader(manString)) + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } + if man.Global.ArchFile(manifest.DefaultArchitecture) != test.defaultArchFile { + t.Fatalf("Unexpected arch file: %s", man.Global.ArchFile(manifest.DefaultArchitecture)) + } + } +}