Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PoC for testsets in L1 metadata, it allows to use simplier filter and have stored logic for filtering there #57

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

jscotka
Copy link
Collaborator

@jscotka jscotka commented Jul 25, 2019

move part of L2 metadata do L1

It does not force you to use this, you can use original concept of L1 and L2 split, but this extends possibilities in case you would avoid some od described stories:

User stories

  • To have simple filters in L2 (using these testsets)
  • Store relevancy, how to schedule and HW requirements directly in L1 to avoid duplication in upstream/fedora/rhel
    • Know directly form L1 metadata how to run testsets
  • Reverse dependency testing, could select part of testsuite of component and have there info how to schedule this.
  • Write complex test scenarios, eg. in case of task (in beaker) does not have sense to run alone, but needs to run more tasks together

Example output

Whole metadata in this PR

$ fmf show --path=examples/testsets 
/testsets/testset1
conditions: 'inittask' in _node.name or 'simple' in tags
execute: {'how': 'restraint'}
provision: {'memory': '4G'}
relevancy: {'arch': '!s390x'}

/testsets/testset2
conditions: 'simple' in tags and 'extend' in tags
execute: {'how': 'restraint'}
provision: {'memory': '4G'}

/inittask1
test: setup.sh

/simpletest/special-case1
author: jscotka
params: ARG1=1 ARG2=1
path: ..
tags: simple
test: runtest.sh

/simpletest/special-case2
author: jscotka
params: ARG=1
path: ..
tags: simple and extend
test: runtest.sh

Filter testset1

how to schedule

$ fmf show --path=examples/testsets  --name testset1
/testsets/testset1
conditions: 'inittask' in _node.name or 'simple' in tags
execute: {'how': 'restraint'}
provision: {'memory': '4G'}
relevancy: {'arch': '!s390x'}

what to schedule

$ fmf show --path=examples/testsets  --name testset1 --testset
/inittask1
test: setup.sh

/simpletest/special-case1
author: jscotka
params: ARG1=1 ARG2=1
path: ..
tags: simple
test: runtest.sh

/simpletest/special-case2
author: jscotka
params: ARG=1
path: ..
tags: simple and extend
test: runtest.sh

Filter testset2

$ fmf show --path=examples/testsets  --name testset2 --testset
/simpletest/special-case2
author: jscotka
params: ARG=1
path: ..
tags: simple and extend
test: runtest.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant