Sfoglia il codice sorgente

replace json.Unmarshal with NewFromJSON in Create

Signed-off-by: Jim Lin <b04705003@ntu.edu.tw>
Jim Lin 4 anni fa
parent
commit
c9ec21e17a
2 ha cambiato i file con 10 aggiunte e 3 eliminazioni
  1. 2 3
      image/store.go
  2. 8 0
      image/store_test.go

+ 2 - 3
image/store.go

@@ -1,7 +1,6 @@
 package image // import "github.com/docker/docker/image"
 package image // import "github.com/docker/docker/image"
 
 
 import (
 import (
-	"encoding/json"
 	"fmt"
 	"fmt"
 	"sync"
 	"sync"
 	"time"
 	"time"
@@ -118,8 +117,8 @@ func (is *store) restore() error {
 }
 }
 
 
 func (is *store) Create(config []byte) (ID, error) {
 func (is *store) Create(config []byte) (ID, error) {
-	var img Image
-	err := json.Unmarshal(config, &img)
+	var img *Image
+	img, err := NewFromJSON(config)
 	if err != nil {
 	if err != nil {
 		return "", err
 		return "", err
 	}
 	}

+ 8 - 0
image/store_test.go

@@ -10,6 +10,14 @@ import (
 	"gotest.tools/v3/assert/cmp"
 	"gotest.tools/v3/assert/cmp"
 )
 )
 
 
+func TestCreate(t *testing.T) {
+	is, cleanup := defaultImageStore(t)
+	defer cleanup()
+
+	_, err := is.Create([]byte(`{}`))
+	assert.Check(t, cmp.Error(err, "invalid image JSON, no RootFS key"))
+}
+
 func TestRestore(t *testing.T) {
 func TestRestore(t *testing.T) {
 	fs, cleanup := defaultFSStoreBackend(t)
 	fs, cleanup := defaultFSStoreBackend(t)
 	defer cleanup()
 	defer cleanup()