Compare commits
No commits in common. 'c8-stream-rhel' and 'stream-virt-rhel-rhel-8.10.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