mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-10-22 04:18:53 +00:00
virtcontainers: Initial import
This is a virtcontainers 1.0.8 import into Kata Containers runtime. virtcontainers is a Go library designed to manage hardware virtualized pods and containers. It is the core Clear Containers framework and will become the core Kata Containers framework, as discussed at https://github.com/kata-containers/runtime/issues/33 Some more more pointers: virtcontainers README, including some design and architecure notes: https://github.com/containers/virtcontainers/blob/master/README.md virtcontainers 1.0 API: https://github.com/containers/virtcontainers/blob/master/documentation/api/1.0/api.md Fixes #40 Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
117
virtcontainers/asset_test.go
Normal file
117
virtcontainers/asset_test.go
Normal file
@@ -0,0 +1,117 @@
|
||||
//
|
||||
// Copyright (c) 2017 Intel Corporation
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
package virtcontainers
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/containers/virtcontainers/pkg/annotations"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var assetContent = []byte("FakeAsset fake asset FAKE ASSET")
|
||||
var assetContentHash = "92549f8d2018a95a294d28a65e795ed7d1a9d150009a28cea108ae10101178676f04ab82a6950d0099e4924f9c5e41dcba8ece56b75fc8b4e0a7492cb2a8c880"
|
||||
var assetContentWrongHash = "92549f8d2018a95a294d28a65e795ed7d1a9d150009a28cea108ae10101178676f04ab82a6950d0099e4924f9c5e41dcba8ece56b75fc8b4e0a7492cb2a8c881"
|
||||
|
||||
func TestAssetWrongHashType(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
tmpfile, err := ioutil.TempFile("", "virtcontainers-test-")
|
||||
assert.Nil(err)
|
||||
|
||||
defer func() {
|
||||
tmpfile.Close()
|
||||
os.Remove(tmpfile.Name()) // clean up
|
||||
}()
|
||||
|
||||
_, err = tmpfile.Write(assetContent)
|
||||
assert.Nil(err)
|
||||
|
||||
a := &asset{
|
||||
path: tmpfile.Name(),
|
||||
}
|
||||
|
||||
h, err := a.hash("shafoo")
|
||||
assert.Equal(h, "")
|
||||
assert.NotNil(err)
|
||||
}
|
||||
|
||||
func TestAssetHash(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
tmpfile, err := ioutil.TempFile("", "virtcontainers-test-")
|
||||
assert.Nil(err)
|
||||
|
||||
defer func() {
|
||||
tmpfile.Close()
|
||||
os.Remove(tmpfile.Name()) // clean up
|
||||
}()
|
||||
|
||||
_, err = tmpfile.Write(assetContent)
|
||||
assert.Nil(err)
|
||||
|
||||
a := &asset{
|
||||
path: tmpfile.Name(),
|
||||
}
|
||||
|
||||
hash, err := a.hash(annotations.SHA512)
|
||||
assert.Nil(err)
|
||||
assert.Equal(assetContentHash, hash)
|
||||
assert.Equal(assetContentHash, a.computedHash)
|
||||
}
|
||||
|
||||
func TestAssetNew(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
tmpfile, err := ioutil.TempFile("", "virtcontainers-test-")
|
||||
assert.Nil(err)
|
||||
|
||||
defer func() {
|
||||
tmpfile.Close()
|
||||
os.Remove(tmpfile.Name()) // clean up
|
||||
}()
|
||||
|
||||
_, err = tmpfile.Write(assetContent)
|
||||
assert.Nil(err)
|
||||
|
||||
p := &PodConfig{
|
||||
Annotations: map[string]string{
|
||||
annotations.KernelPath: tmpfile.Name(),
|
||||
annotations.KernelHash: assetContentHash,
|
||||
},
|
||||
}
|
||||
|
||||
a, err := newAsset(p, imageAsset)
|
||||
assert.Nil(err)
|
||||
assert.Nil(a)
|
||||
|
||||
a, err = newAsset(p, kernelAsset)
|
||||
assert.Nil(err)
|
||||
assert.Equal(assetContentHash, a.computedHash)
|
||||
|
||||
p = &PodConfig{
|
||||
Annotations: map[string]string{
|
||||
annotations.KernelPath: tmpfile.Name(),
|
||||
annotations.KernelHash: assetContentWrongHash,
|
||||
},
|
||||
}
|
||||
|
||||
a, err = newAsset(p, kernelAsset)
|
||||
assert.NotNil(err)
|
||||
}
|
Reference in New Issue
Block a user