• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

openbraininstitute / neurodamus / 14795833031
90%

Build:
DEFAULT BRANCH: main
Ran 02 May 2025 01:14PM UTC
Jobs 3
Files 48
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 May 2025 01:08PM UTC coverage: 79.164% (+0.5%) from 78.659%
14795833031

push

github

web-flow
mpi tests (proof of concept) (#213)

## Context
We want to test neurodamus also with mpi #194. However, this turns out
to be trickier than expected. There are multiple libraries around with
pros and cons. The following list is not exaustive; it is just what I
have found so far and my opinion after bashing my head on all these
options:

- **pytest-mpi**: it is very non-intrusive. It just makes pytest aware
that is run in mpi. The standard way to run it is `mpiexec -n 2 pytest
--with-mpi ...`. The problem is that this interpheres with `--forked`.
Either the processes are not forked or the mpi fails. In addition, it is
ugly to see messages from various ranks interphere with each other. I
did not investigate further
- **mpi-pytest**: different from pytest-mpi, newer, it makes pytest call
`mpiexec` on each test that requires that. A typical call is `pytest
tests/unit`. Inside `mpi-pytest` calls `mpiexec`. Unfortunately it works
only with MPICH as we easily get nested `MPI_Init` calls. Changing the
code to address this problem is too much IMHO
- **HBP_STEPS**: the simulator is more different than expected from our
case. Over there we use `ctest` to discover the tests and we use
`unittest` to test. Our problems are effectively avoided but we cannot
easily replicate the same behavior in out setup.
- **pytest-isolate-mpi**: test suite to run programs with mpi in
isolated environments. Ufortunately, if we do not run with mpi, the
suite does not run the tests forked and the 2 libraries (`pytest-forked`
and `pytest-isolate-mpi` interphere with each other when neuron and its
mechanisms are involved). (chosen solution)
- **in house**: creating our own test suite is a burden and becomes also
complex to maintain. We can tailor it exactly to our needs

## Scope

I picked `pytest-isolate-mpi` as it provides already a lot of what we
want. The problem is that it requires a slightly different setup than
what we have in the unit tests (for example).

- [x] add a new tox en... (continued)

7048 of 8903 relevant lines covered (79.16%)

1.52 hits per line

Subprojects
ID Flag name Job ID Ran Files Coverage
1 unit-mpi 14795833031.1 02 May 2025 01:14PM UTC 48
49.06
GitHub Action Run
2 baseline 14795833031.2 02 May 2025 01:14PM UTC 48
24.71
GitHub Action Run
3 unit 14795833031.3 02 May 2025 01:14PM UTC 48
78.64
GitHub Action Run
Source Files on build 14795833031
  • Tree
  • List 48
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #14795833031
  • 57948f65 on github
  • Prev Build on main (#14775215187)
  • Next Build on main (#14877918162)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc