Skip to content

Conversation

@vkarak
Copy link
Contributor

@vkarak vkarak commented Dec 4, 2019

TODOS:

  • Tutorial examples
  • Tutorial text
  • Separate section for explaining dependencies in more detail
  • API documentation

Fixes UES-318.

@boegel You can use this as an example to start playing with the feature. We can talk offline for the details until I finish the documentation.

@pep8speaks
Copy link

pep8speaks commented Dec 4, 2019

Hello @vkarak, Thank you for updating!

Line 95:80: E501 line too long (104 > 79 characters)

Do see the ReFrame Coding Style Guide

Comment last updated at 2019-12-17 14:16:32 UTC

@codecov-io
Copy link

codecov-io commented Dec 4, 2019

Codecov Report

Merging #1084 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@          Coverage Diff           @@
##           master   #1084   +/-   ##
======================================
  Coverage    91.7%   91.7%           
======================================
  Files          81      81           
  Lines       11121   11121           
======================================
  Hits        10199   10199           
  Misses        922     922
Impacted Files Coverage Δ
reframe/core/pipeline.py 92.24% <ø> (ø) ⬆️
reframe/core/decorators.py 96.84% <ø> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b1c20a6...91e9cbf. Read the comment docs.

@vkarak vkarak changed the title [wip] [doc] Document the test dependency feature [doc] Document the test dependency feature Dec 11, 2019
The dependency graph construction and the subsequent dependency analysis happens also at the level of the test cases.

Let's assume that test :class:`T1` depends in :class:`T0`.
This can be expressed inside :class:`T1` using the :func:`depends_on` function:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This can be expressed inside :class:`T1` using the :func:`depends_on` function:
This can be expressed inside :class:`T1` using the :func:`depends_on` method:

For most of the cases, this is sufficient to reason about test dependencies.
In reality, as mentioned above, dependencies are handled at the level of test cases.
Test cases on different partitions are always independent.
If not specified differently, test cases with using programming environments are also independent.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If not specified differently, test cases with using programming environments are also independent.
If not specified differently, test cases using programming environments are also independent.

:align: center
:alt: Any cyclic dependencies between tests are not allowed, even if the underlying test case dependencies are not forming a cycle.

The test case dependencies here are clearly not forming a cycle, but the edge from ``(T0, E0)`` to ``(T1, E1)`` introduces a dependency from ``T0`` to ``T1`` forming a cycle at the test level.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The test case dependencies here are clearly not forming a cycle, but the edge from ``(T0, E0)`` to ``(T1, E1)`` introduces a dependency from ``T0`` to ``T1`` forming a cycle at the test level.
The test case dependencies here are clearly don't form a cycle, but the edge from ``(T0, E0)`` to ``(T1, E1)`` introduces a dependency from ``T0`` to ``T1`` forming a cycle at the test level.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you change this as Theo suggests, remove the are from here are clearly don't form a cycle.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You probably mean to remove "are" here, too.

Copy link
Contributor

@teojgo teojgo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Part of the docs/_static/img/reframe-test-cases.svg is not rendered properly for me:
test_dep

Copy link
Contributor

@teojgo teojgo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor comments as indicated above.

:align: center
:alt: Any cyclic dependencies between tests are not allowed, even if the underlying test case dependencies are not forming a cycle.

The test case dependencies here are clearly not forming a cycle, but the edge from ``(T0, E0)`` to ``(T1, E1)`` introduces a dependency from ``T0`` to ``T1`` forming a cycle at the test level.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you change this as Theo suggests, remove the are from here are clearly don't form a cycle.

@vkarak
Copy link
Contributor Author

vkarak commented Dec 16, 2019

Part of the docs/_static/img/reframe-test-cases.svg is not rendered properly for me:

I'll try using a mono font.

@teojgo
Copy link
Contributor

teojgo commented Dec 17, 2019

Part of the docs/_static/img/reframe-test-cases.svg is not rendered properly for me:

I'll try using a mono font.

Now it works fine.

@vkarak
Copy link
Contributor Author

vkarak commented Dec 17, 2019

@jenkins-cscs retry none

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants