Compare commits
No commits in common. 'c8-stream-rhel' and 'stream-virt-rhel-rhel-8.9.0' have entirely different histories.
c8-stream-
...
stream-vir
@ -0,0 +1,130 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# Copyright (c) 2018 Pino Toscano <ptoscano@redhat.com>
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
|
||||||
|
import queue
|
||||||
|
import sys
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleGraph(object):
|
||||||
|
def __init__(self):
|
||||||
|
# node -> children mapping
|
||||||
|
self.nodes = {}
|
||||||
|
|
||||||
|
def _findRoots(self):
|
||||||
|
ret = []
|
||||||
|
for k in self.nodes.keys():
|
||||||
|
if not self._findInValues(k, self.nodes):
|
||||||
|
ret.append(k)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def _findInValues(self, k, d):
|
||||||
|
for v in d.values():
|
||||||
|
if k in v:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def addNode(self, node, parents):
|
||||||
|
for p in parents:
|
||||||
|
if p not in self.nodes:
|
||||||
|
self.nodes[p] = []
|
||||||
|
self.nodes[p].append(node)
|
||||||
|
if node not in self.nodes:
|
||||||
|
self.nodes[node] = [] # insert the item
|
||||||
|
|
||||||
|
def bfs(self):
|
||||||
|
'''
|
||||||
|
Simply Breadth-first search.
|
||||||
|
|
||||||
|
Returns a list of steps, with each step a list of all the nodes
|
||||||
|
for it.
|
||||||
|
'''
|
||||||
|
ret = []
|
||||||
|
nodesCopy = self.nodes
|
||||||
|
roots = self._findRoots()
|
||||||
|
q = queue.Queue()
|
||||||
|
STEPDEL = '--------'
|
||||||
|
visited = set()
|
||||||
|
for r in roots:
|
||||||
|
q.put(r)
|
||||||
|
visited.add(r)
|
||||||
|
ret.append([])
|
||||||
|
q.put(STEPDEL)
|
||||||
|
while not q.empty():
|
||||||
|
n = q.get()
|
||||||
|
if n == STEPDEL:
|
||||||
|
if not q.empty():
|
||||||
|
ret.append([])
|
||||||
|
q.put(STEPDEL)
|
||||||
|
else:
|
||||||
|
children = nodesCopy.pop(n, [])
|
||||||
|
for c in children:
|
||||||
|
if c in visited:
|
||||||
|
continue
|
||||||
|
elif self._findInValues(c, nodesCopy):
|
||||||
|
# child of another node too, so let that other node
|
||||||
|
# handle this child
|
||||||
|
continue
|
||||||
|
q.put(c)
|
||||||
|
visited.add(c)
|
||||||
|
ret[-1].append(n)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
if len(sys.argv) != 3:
|
||||||
|
sys.stderr.write("Usage: %s DEPSFILE MODYAML\n" % sys.argv[0])
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
g = SimpleGraph()
|
||||||
|
|
||||||
|
with open(sys.argv[1]) as f:
|
||||||
|
for l in f:
|
||||||
|
if not l.strip() or l.startswith('#'):
|
||||||
|
continue
|
||||||
|
pieces = [x.strip() for x in l.split(' ')]
|
||||||
|
if not pieces or not pieces[0].endswith(':'):
|
||||||
|
sys.stderr.write("Invalid line '%s', skipped\n" % l)
|
||||||
|
continue
|
||||||
|
node = pieces[0][:-1]
|
||||||
|
parents = pieces[1:]
|
||||||
|
g.addNode(node, parents)
|
||||||
|
|
||||||
|
with open(sys.argv[2]) as f:
|
||||||
|
ydoc = yaml.safe_load(f)
|
||||||
|
|
||||||
|
steps = g.bfs()
|
||||||
|
stepsIndexes = {}
|
||||||
|
for i, step in enumerate(steps, 1):
|
||||||
|
for x in step:
|
||||||
|
stepsIndexes[x] = i
|
||||||
|
|
||||||
|
rpmComps = ydoc['data']['components']['rpms']
|
||||||
|
for k, v in rpmComps.items():
|
||||||
|
step = stepsIndexes[k]
|
||||||
|
try:
|
||||||
|
actualStep = int(v['buildorder'])
|
||||||
|
if step != actualStep:
|
||||||
|
print("%s has buildorder %d but must be %d" %
|
||||||
|
(k, actualStep, step))
|
||||||
|
except KeyError:
|
||||||
|
print("%s has no buildorder, set it to %d" % (k, step))
|
@ -0,0 +1,19 @@
|
|||||||
|
# dependencies for packages
|
||||||
|
# format:
|
||||||
|
# package: dep1 dep2 ... depN
|
||||||
|
|
||||||
|
SLOF:
|
||||||
|
hivex:
|
||||||
|
libguestfs-winsupport: libguestfs
|
||||||
|
libguestfs: supermin qemu-kvm libvirt hivex
|
||||||
|
libiscsi:
|
||||||
|
libvirt-dbus: libvirt
|
||||||
|
libvirt-python: libvirt
|
||||||
|
libvirt: qemu-kvm
|
||||||
|
nbdkit: libguestfs qemu-kvm libnbd
|
||||||
|
netcf:
|
||||||
|
perl-Sys-Virt: libvirt
|
||||||
|
qemu-kvm: libiscsi
|
||||||
|
seabios:
|
||||||
|
sgabios:
|
||||||
|
supermin: hivex
|
@ -0,0 +1,14 @@
|
|||||||
|
# recipients: virt-ci-test-results, ymankad, libvirt-qe, kvmqe-ci, yoguo
|
||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-8
|
||||||
|
decision_context: osci_compose_gate_modules
|
||||||
|
subject_type: redhat-module
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: xen-ci.libguestfs.redhat-module.tier1.functional}
|
||||||
|
- !PassingTestCaseRule {test_case_name: libvirt-ci.libvirt.redhat-module.gating.x86_64.tier1.functional}
|
||||||
|
- !PassingTestCaseRule {test_case_name: libvirt-ci.libvirt-python.redhat-module.gating.x86_64.tier1.functional}
|
||||||
|
- !PassingTestCaseRule {test_case_name: libvirt-ci.perl-Sys-Virt.redhat-module.gating.x86_64.tier1.functional}
|
||||||
|
- !PassingTestCaseRule {test_case_name: libvirt-ci.v2v.redhat-module.gating.x86_64.tier1.functional}
|
||||||
|
- !PassingTestCaseRule {test_case_name: kvm-ci.qemu.x86_64-intel.redhat-module.gating.tier1.functional}
|
||||||
|
- !PassingTestCaseRule {test_case_name: kvm-ci.qemu.x86_64-amd.redhat-module.gating.tier1.functional}
|
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Create symlinks required by the qemu-iotests
|
||||||
|
ln -sf /usr/libexec/qemu-kvm /usr/lib64/qemu-kvm/tests-src/tests/qemu-iotests/qemu
|
||||||
|
ln -sf /usr/bin/qemu-io /usr/lib64/qemu-kvm/tests-src/tests/qemu-iotests/qemu-io
|
||||||
|
ln -sf /usr/bin/qemu-img /usr/lib64/qemu-kvm/tests-src/tests/qemu-iotests/qemu-img
|
||||||
|
ln -sf /usr/bin/qemu-nbd /usr/lib64/qemu-kvm/tests-src/tests/qemu-iotests/qemu-nbd
|
||||||
|
|
||||||
|
cd /usr/lib64/qemu-kvm/tests-src/tests/qemu-iotests/
|
||||||
|
# Run STABLE set of qemu-iotests
|
||||||
|
./check -v -raw 001 002 004 005 008 009 010 011 012 021 \
|
||||||
|
025 032 033 048 052 063 077 086 101 106 \
|
||||||
|
120 140 143 145 150 159 160 162 170 171 \
|
||||||
|
175 184 221 226
|
||||||
|
|
||||||
|
./check -v -qcow2 001 002 004 005 008 009 010 011 012 017 \
|
||||||
|
018 019 020 021 024 025 027 028 029 032 \
|
||||||
|
033 034 035 037 038 042 046 047 048 050 \
|
||||||
|
052 053 058 062 063 066 068 069 072 073 \
|
||||||
|
074 086 087 089 090 095 098 102 103 105 \
|
||||||
|
107 108 110 111 120 127 133 134 138 140 \
|
||||||
|
141 143 144 145 150 154 156 158 159 162 \
|
||||||
|
170 177 179 182 184 188 190 195 204 217 \
|
||||||
|
226
|
||||||
|
|
||||||
|
./check -v -luks 001 002 004 005 008 009 010 011 012 021 \
|
||||||
|
025 032 033 048 052 140 143 145 162 184 \
|
||||||
|
192
|
||||||
|
|
||||||
|
./check -v -nbd 001 002 004 005 008 009 010 011 021 032 \
|
||||||
|
033 077 094 119 123 143 145 162 184
|
@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
|
||||||
|
# The following tasks set up the environment for the avocado_qemu
|
||||||
|
pre_tasks:
|
||||||
|
- name: Install qemu-kvm and pip3 # This step is to avoid failures when building from a private branch
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: latest
|
||||||
|
with_items:
|
||||||
|
- qemu-kvm
|
||||||
|
- python3-pip
|
||||||
|
|
||||||
|
- name: Get N-V-R from qemu-kvm
|
||||||
|
shell: "rpm -q {{ item }} qemu-kvm"
|
||||||
|
args:
|
||||||
|
warn: no
|
||||||
|
register: nvr_values
|
||||||
|
with_items:
|
||||||
|
- '--queryformat=%{NAME}'
|
||||||
|
- '--queryformat=%{VERSION}'
|
||||||
|
- '--queryformat=%{RELEASE}'
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
N: "{{ nvr_values.results[0].stdout }}"
|
||||||
|
V: "{{ nvr_values.results[1].stdout }}"
|
||||||
|
R: "{{ nvr_values.results[2].stdout }}"
|
||||||
|
|
||||||
|
- name: Install qemu-kvm-tests rpm from brewroot URL
|
||||||
|
yum:
|
||||||
|
name: "http://download.devel.redhat.com/brewroot/packages/{{ N }}/{{ V }}/{{ R }}/x86_64/{{ N }}-tests-{{ V }}-{{ R }}.x86_64.rpm"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Upgrade pip
|
||||||
|
pip:
|
||||||
|
name: pip
|
||||||
|
executable: pip3
|
||||||
|
state: latest
|
||||||
|
|
||||||
|
- name: Avocado installation using pip
|
||||||
|
pip:
|
||||||
|
name: avocado-framework
|
||||||
|
executable: pip3
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Disable IPv6 in sysctl.conf on OSCI node
|
||||||
|
sysctl:
|
||||||
|
name: "{{ item }}"
|
||||||
|
value: 1
|
||||||
|
sysctl_set: yes
|
||||||
|
state: present
|
||||||
|
reload: yes
|
||||||
|
with_items:
|
||||||
|
- net.ipv6.conf.all.disable_ipv6
|
||||||
|
- net.ipv6.conf.default.disable_ipv6
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
tests:
|
||||||
|
- avocado_qemu:
|
||||||
|
dir: ./
|
||||||
|
run: "avocado --show all run -p qemu_bin=/usr/libexec/qemu-kvm /usr/lib64/qemu-kvm/tests-src/tests/acceptance/"
|
||||||
|
- qemu_iotests:
|
||||||
|
dir: ./
|
||||||
|
run: "/bin/bash runtest.sh"
|
||||||
|
required_packages:
|
||||||
|
- qemu-kvm
|
||||||
|
- qemu-kvm-tests
|
Loading…
Reference in new issue