mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-17 22:34:25 +01:00
Signed-off-by: Qi Feng Huo <huoqif@cn.ibm.com> fix typo Signed-off-by: Qi Feng Huo <huoqif@cn.ibm.com> qemu: remove useless fmt.Sprintf for qemuParams Signed-off-by: Qi Feng Huo <huoqif@cn.ibm.com> fix test cases for s390x Signed-off-by: Qi Feng Huo <huoqif@cn.ibm.com>
109 lines
4.2 KiB
Go
109 lines
4.2 KiB
Go
// +build s390x
|
|
|
|
/*
|
|
// Copyright contributors to the Virtual Machine Manager for Go project
|
|
//
|
|
// 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 qemu
|
|
|
|
import "testing"
|
|
|
|
// -pci devices don't play well with Z hence replace them with corresponding -ccw devices
|
|
// See https://wiki.qemu.org/Documentation/Platforms/S390X
|
|
var (
|
|
deviceFSString = "-device virtio-9p-ccw,fsdev=workload9p,mount_tag=rootfs,devno=" + DevNo + " -fsdev local,id=workload9p,path=/var/lib/docker/devicemapper/mnt/e31ebda2,security_model=none,multidevs=remap"
|
|
deviceFSIOMMUString = "-device virtio-9p-ccw,fsdev=workload9p,mount_tag=rootfs,iommu_platform=on,devno=" + DevNo + " -fsdev local,id=workload9p,path=/var/lib/docker/devicemapper/mnt/e31ebda2,security_model=none,multidevs=remap"
|
|
deviceNetworkString = "-netdev tap,id=tap0,vhost=on,ifname=ceth0,downscript=no,script=no -device driver=virtio-net-ccw,netdev=tap0,mac=01:02:de:ad:be:ef,devno=" + DevNo
|
|
deviceNetworkStringMq = "-netdev tap,id=tap0,vhost=on,fds=3:4 -device driver=virtio-net-ccw,netdev=tap0,mac=01:02:de:ad:be:ef,mq=on,devno=" + DevNo
|
|
deviceSerialString = "-device virtio-serial-ccw,id=serial0,devno=" + DevNo
|
|
deviceVSOCKString = "-device vhost-vsock-ccw,id=vhost-vsock-pci0,guest-cid=4,devno=" + DevNo
|
|
deviceVFIOString = "-device vfio-ccw,host=02:10.0,devno=" + DevNo
|
|
deviceSCSIControllerStr = "-device virtio-scsi-ccw,id=foo,devno=" + DevNo
|
|
deviceSCSIControllerBusAddrStr = "-device virtio-scsi-ccw,id=foo,bus=pci.0,addr=00:04.0,iothread=iothread1,devno=" + DevNo
|
|
deviceBlockString = "-device virtio-blk-ccw,drive=hd0,scsi=off,config-wce=off,devno=" + DevNo + ",share-rw=on -drive id=hd0,file=/var/lib/vm.img,aio=threads,format=qcow2,if=none,readonly"
|
|
devicePCIBridgeString = "-device pci-bridge,bus=/pci-bus/pcie.0,id=mybridge,chassis_nr=5,shpc=on,addr=ff"
|
|
devicePCIEBridgeString = "-device pcie-pci-bridge,bus=/pci-bus/pcie.0,id=mybridge,addr=ff"
|
|
romfile = ""
|
|
)
|
|
|
|
func TestAppendVirtioBalloon(t *testing.T) {
|
|
balloonDevice := BalloonDevice{
|
|
ID: "balloon",
|
|
}
|
|
|
|
var deviceString = "-device " + string(VirtioBalloon) + "-" + string(TransportCCW)
|
|
deviceString += ",id=" + balloonDevice.ID
|
|
balloonDevice.DevNo = DevNo
|
|
devnoOptios := ",devno=" + DevNo
|
|
|
|
var OnDeflateOnOMM = ",deflate-on-oom=on"
|
|
var OffDeflateOnOMM = ",deflate-on-oom=off"
|
|
testAppend(balloonDevice, deviceString+devnoOptios+OffDeflateOnOMM, t)
|
|
|
|
balloonDevice.DeflateOnOOM = true
|
|
testAppend(balloonDevice, deviceString+devnoOptios+OnDeflateOnOMM, t)
|
|
}
|
|
|
|
func TestAppendDeviceFSCCW(t *testing.T) {
|
|
defaultKnobs := Knobs{
|
|
NoUserConfig: true,
|
|
}
|
|
|
|
fsdev := FSDevice{
|
|
Driver: Virtio9P,
|
|
FSDriver: Local,
|
|
ID: "workload9p",
|
|
Path: "/var/lib/docker/devicemapper/mnt/e31ebda2",
|
|
MountTag: "rootfs",
|
|
SecurityModel: None,
|
|
DisableModern: true,
|
|
ROMFile: "efi-virtio.rom",
|
|
Multidev: Remap,
|
|
Transport: TransportCCW,
|
|
DevNo: DevNo,
|
|
}
|
|
|
|
var config Config
|
|
config.Knobs = defaultKnobs
|
|
|
|
testConfigAppend(&config, fsdev, deviceFSString, t)
|
|
}
|
|
|
|
func TestAppendDeviceFSCCWIOMMU(t *testing.T) {
|
|
defaultKnobs := Knobs{
|
|
NoUserConfig: true,
|
|
IOMMUPlatform: true,
|
|
}
|
|
|
|
fsdev := FSDevice{
|
|
Driver: Virtio9P,
|
|
FSDriver: Local,
|
|
ID: "workload9p",
|
|
Path: "/var/lib/docker/devicemapper/mnt/e31ebda2",
|
|
MountTag: "rootfs",
|
|
SecurityModel: None,
|
|
DisableModern: true,
|
|
ROMFile: "efi-virtio.rom",
|
|
Multidev: Remap,
|
|
Transport: TransportCCW,
|
|
DevNo: DevNo,
|
|
}
|
|
|
|
var config Config
|
|
config.Knobs = defaultKnobs
|
|
|
|
testConfigAppend(&config, fsdev, deviceFSIOMMUString, t)
|
|
}
|