diff --git a/cmd/podman/images/history.go b/cmd/podman/images/history.go index 8f910f82da..b6b380658d 100644 --- a/cmd/podman/images/history.go +++ b/cmd/podman/images/history.go @@ -3,9 +3,7 @@ package images import ( "fmt" "os" - "strings" "time" - "unicode" "github.com/containers/common/pkg/report" "github.com/containers/podman/v4/cmd/podman/common" @@ -149,9 +147,7 @@ func (h historyReporter) Created() string { } func (h historyReporter) Size() string { - s := units.HumanSizeWithPrecision(float64(h.ImageHistoryLayer.Size), 3) - i := strings.LastIndexFunc(s, unicode.IsNumber) - return s[:i+1] + " " + s[i+1:] + return units.HumanSizeWithPrecision(float64(h.ImageHistoryLayer.Size), 3) } func (h historyReporter) CreatedBy() string { @@ -169,7 +165,7 @@ func (h historyReporter) ID() string { } func (h historyReporter) CreatedAt() string { - return time.Unix(h.ImageHistoryLayer.Created.Unix(), 0).UTC().String() + return time.Unix(h.ImageHistoryLayer.Created.Unix(), 0).Format(time.RFC3339) } func (h historyReporter) CreatedSince() string { diff --git a/test/e2e/history_test.go b/test/e2e/history_test.go index 8f0e08b125..a9be63b9ab 100644 --- a/test/e2e/history_test.go +++ b/test/e2e/history_test.go @@ -44,6 +44,11 @@ var _ = Describe("Podman history", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) Expect(session.OutputToStringArray()).ToNot(BeEmpty()) + + session = podmanTest.Podman([]string{"history", "--format", "{{.CreatedAt}};{{.Size}}", ALPINE}) + session.WaitWithDefaultTimeout() + Expect(session).Should(Exit(0)) + Expect(session.OutputToString()).To(MatchRegexp("[0-9-]{10}T[0-9:]{8}[Z0-9+:-]+;[0-9.]+[MG]*B( .+)?")) }) It("podman history with human flag", func() { diff --git a/test/system/110-history.bats b/test/system/110-history.bats index da6f2177c6..bee533003e 100644 --- a/test/system/110-history.bats +++ b/test/system/110-history.bats @@ -57,15 +57,26 @@ size | -\\\?[0-9]\\\+ @test "podman image history Created" { # Values from image LIST - run_podman image list --format '{{.CreatedSince}}--{{.CreatedAt}}' $IMAGE + run_podman image list --format '{{.CreatedSince}};{{.CreatedAt}}' $IMAGE from_imagelist="$output" - assert "$from_imagelist" =~ "^[0-9].* ago--[0-9]+-[0-9]+-[0-9]+ [0-9:]+ " \ + assert "$from_imagelist" =~ "^[0-9].* ago;[0-9]+-[0-9]+-[0-9]+ [0-9:]+ " \ "CreatedSince and CreatedAt look reasonable" # Values from image HISTORY - run_podman image history --format '{{.CreatedSince}}--{{.CreatedAt}}' $IMAGE - assert "${lines[0]}" == "$from_imagelist" \ - "CreatedSince and CreatedAt from image history should == image list" + run_podman image history --format '{{.CreatedSince}};{{.CreatedAt}}' $IMAGE + from_imagehistory="${lines[0]}" + + imagelist_since=$(echo "$from_imagelist" | cut -d';' -f1) + imagehist_since=$(echo "$from_imagehistory" | cut -d';' -f1) + + assert "$imagehist_since" == "$imagelist_since" \ + "CreatedSince from image history should == image list" + + imagelist_at=$(date --rfc-3339=seconds -f <(echo "$from_imagelist" | cut -d';' -f2 | sed 's/ UTC//')) + imagehist_at=$(date --rfc-3339=seconds -f <(echo "$from_imagehistory" | cut -d';' -f2)) + + assert "$imagehist_at" == "$imagelist_at" \ + "CreatedAt from image history should == image list" } # vim: filetype=sh