mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	Merge pull request #41884 from rcowsill/41829-load-valid-parent
Fix spurious error from "docker load"
This commit is contained in:
		
						commit
						4a054ec00f
					
				
					 3 changed files with 35 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -4,6 +4,7 @@ import (
 | 
			
		|||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"io"
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
| 
						 | 
				
			
			@ -218,6 +219,16 @@ func NewHistory(author, comment, createdBy string, isEmptyLayer bool) History {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Equal compares two history structs for equality
 | 
			
		||||
func (h History) Equal(i History) bool {
 | 
			
		||||
	if !h.Created.Equal(i.Created) {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	i.Created = h.Created
 | 
			
		||||
 | 
			
		||||
	return reflect.DeepEqual(h, i)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Exporter provides interface for loading and saving images
 | 
			
		||||
type Exporter interface {
 | 
			
		||||
	Load(io.ReadCloser, io.Writer, bool) error
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,6 +56,29 @@ func TestMarshalKeyOrder(t *testing.T) {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const sampleHistoryJSON = `{
 | 
			
		||||
	"created": "2021-01-13T09:35:56Z",
 | 
			
		||||
	"created_by": "image_test.go"
 | 
			
		||||
}`
 | 
			
		||||
 | 
			
		||||
func TestHistoryEqual(t *testing.T) {
 | 
			
		||||
	h := historyFromJSON(t, sampleHistoryJSON)
 | 
			
		||||
	hCopy := h
 | 
			
		||||
	assert.Check(t, h.Equal(hCopy))
 | 
			
		||||
 | 
			
		||||
	hUTC := historyFromJSON(t, `{"created": "2021-01-13T14:00:00Z"}`)
 | 
			
		||||
	hOffset0 := historyFromJSON(t, `{"created": "2021-01-13T14:00:00+00:00"}`)
 | 
			
		||||
	assert.Check(t, hUTC.Created != hOffset0.Created)
 | 
			
		||||
	assert.Check(t, hUTC.Equal(hOffset0))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func historyFromJSON(t *testing.T, historyJSON string) History {
 | 
			
		||||
	var h History
 | 
			
		||||
	err := json.Unmarshal([]byte(historyJSON), &h)
 | 
			
		||||
	assert.Check(t, err)
 | 
			
		||||
	return h
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestImage(t *testing.T) {
 | 
			
		||||
	cid := "50a16564e727"
 | 
			
		||||
	config := &container.Config{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,6 @@ import (
 | 
			
		|||
	"io/ioutil"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"runtime"
 | 
			
		||||
 | 
			
		||||
	"github.com/containerd/containerd/platforms"
 | 
			
		||||
| 
						 | 
				
			
			@ -410,7 +409,7 @@ func checkValidParent(img, parent *image.Image) bool {
 | 
			
		|||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	for i, h := range parent.History {
 | 
			
		||||
		if !reflect.DeepEqual(h, img.History[i]) {
 | 
			
		||||
		if !h.Equal(img.History[i]) {
 | 
			
		||||
			return false
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue