Use tmt for gating

This commit is contained in:
Lukáš Zachar 2026-07-03 10:03:06 +02:00
parent 7021505b92
commit 464fb85523
9 changed files with 135 additions and 3 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

View File

@ -1,6 +1,5 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

4
plan.fmf Normal file
View File

@ -0,0 +1,4 @@
discover:
how: fmf
execute:
how: tmt

5
tests/smoke/main.fmf Normal file
View File

@ -0,0 +1,5 @@
test: ./runtest.sh
framework: beakerlib
require:
- python3-pyyaml
duration: 5m

View File

@ -0,0 +1,3 @@
#!/usr/bin/env python
import yaml
print(yaml.dump({'name': 'Silenthand Olleander', 'race': 'Human', 'traits': ['ONE_HAND', 'ONE_EYE']}))

View File

@ -0,0 +1,13 @@
#!/usr/bin/env python
import yaml
documents = """
---
name: foo
---
name: bar
---
name: foobar
"""
for data in yaml.load_all(documents, Loader=yaml.SafeLoader):
print(data)

View File

@ -0,0 +1,24 @@
import yaml
class Hero:
def __init__(self, name, hp, sp):
self.name = name
self.hp = hp
self.sp = sp
def __repr__(self):
return "%s(name=%r, hp=%r, sp=%r)" % (
self.__class__.__name__, self.name, self.hp, self.sp)
STRING = """
!!python/object:__main__.Hero
name: Welthyr Syxgon
hp: 1200
sp: 0
"""
try:
yaml.load(STRING, Loader=yaml.SafeLoader)
raise RuntimeError("Didn't raise exception")
except yaml.constructor.ConstructorError:
pass
print(yaml.unsafe_load(STRING))

View File

@ -0,0 +1,9 @@
#!/usr/bin/env python
import yaml
document = """
a: 1
b:
c: 3
d: 4
"""
print(yaml.dump(yaml.load(document, Loader=yaml.SafeLoader)))

74
tests/smoke/runtest.sh Executable file
View File

@ -0,0 +1,74 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/PyYAML/Sanity/Smoke
# Description: Smoke test for this component
# Author: Stepan Sigut <ssigut@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PYTHON=${PYTHON:-"python3"}
PATTERN1="{'name': 'foo'}
{'name': 'bar'}
{'name': 'foobar'}"
PATTERN3="name: Silenthand Olleander
race: Human
traits: [ONE_HAND, ONE_EYE]"
PATTERN4="a: 1
b: {c: 3, d: 4}"
PATTERN5="Hero(name='Welthyr Syxgon', hp=1200, sp=0)"
set -o pipefail
rlJournalStart
rlPhaseStartSetup
# export python's MAJOR and MINOR version
rlRun "export $($PYTHON -c \
'import sys; print("MAJOR={0} MINOR={1}".format(\
sys.version_info[0],sys.version_info[1]))')"
rlPhaseEnd
rlPhaseStartTest "Running pyyaml_load.py"
rlRun -s "$PYTHON pyyaml_load.py"
rlAssertGrep "$PATTERN1" "$rlRun_LOG"
rlPhaseEnd
rlPhaseStartTest "Running pyyaml_dump.py"
rlRun -s "$PYTHON pyyaml_dump.py"
rlAssertGrep "$PATTERN3" "$rlRun_LOG"
rlPhaseEnd
rlPhaseStartTest "Running pyyaml_parse.py"
rlRun -s "$PYTHON pyyaml_parse.py"
rlAssertGrep "$PATTERN4" "$rlRun_LOG"
rlPhaseEnd
rlPhaseStartTest "Running pyyaml_object.py"
rlRun -s "$PYTHON pyyaml_object.py"
rlAssertGrep "$PATTERN5" "$rlRun_LOG"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd