Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
11 months agoCI pages: try to use the Debian version of the python packages
Martin Quinson [Mon, 5 Jun 2023 12:33:15 +0000 (14:33 +0200)]
CI pages: try to use the Debian version of the python packages

11 months agoRemove a test that was indended to show that this branch is never used
Martin Quinson [Mon, 5 Jun 2023 12:24:30 +0000 (14:24 +0200)]
Remove a test that was indended to show that this branch is never used

11 months agoUse Debian:12 for our build deps
Martin Quinson [Mon, 5 Jun 2023 10:38:58 +0000 (12:38 +0200)]
Use Debian:12 for our build deps

11 months agoMerge branch 'rename-operation-task' into 'master'
Martin Quinson [Mon, 5 Jun 2023 10:26:59 +0000 (10:26 +0000)]
Merge branch 'rename-operation-task' into 'master'

rename operation to task

See merge request simgrid/simgrid!158

11 months agoMerge branch 'odpor-implementation' into 'master'
Martin Quinson [Mon, 5 Jun 2023 10:22:51 +0000 (10:22 +0000)]
Merge branch 'odpor-implementation' into 'master'

Introduce SDPOR and ODPOR into Simgrid

See merge request simgrid/simgrid!154

11 months agofire on_start for one-sided communication instead of on_send/recv
Fred Suter [Sun, 4 Jun 2023 18:52:18 +0000 (14:52 -0400)]
fire on_start for one-sided communication instead of on_send/recv

11 months agoadd Comm::on_this_send and Comm::on_this_recv
Fred Suter [Sun, 4 Jun 2023 18:37:18 +0000 (14:37 -0400)]
add Comm::on_this_send and Comm::on_this_recv

11 months ago[no-ci] indicate which methods and signals are static in the doc
Fred Suter [Sun, 4 Jun 2023 16:22:46 +0000 (12:22 -0400)]
[no-ci] indicate which methods and signals are static in the doc

11 months ago[no-ci] precise which methods of the Actor class are static
Fred Suter [Fri, 2 Jun 2023 21:17:22 +0000 (17:17 -0400)]
[no-ci] precise which methods of the Actor class are static

11 months agoThis should be fixed now.
Arnaud Giersch [Fri, 2 Jun 2023 16:18:09 +0000 (18:18 +0200)]
This should be fixed now.

11 months agoA deleted Comm cannot be a valid iface anymore.
Arnaud Giersch [Fri, 2 Jun 2023 16:09:56 +0000 (18:09 +0200)]
A deleted Comm cannot be a valid iface anymore.

11 months agorename operation to task. rename execute to fire.
Adrien Gougeon [Fri, 2 Jun 2023 07:50:56 +0000 (09:50 +0200)]
rename operation to task. rename execute to fire.

11 months agoproperly remove the old signals and prevent MC to fire Comm::on_this_completion
Fred Suter [Thu, 1 Jun 2023 22:06:23 +0000 (18:06 -0400)]
properly remove the old signals and prevent MC to fire Comm::on_this_completion

11 months agoreact to the proper signals
Fred Suter [Thu, 1 Jun 2023 22:05:18 +0000 (18:05 -0400)]
react to the proper signals

11 months agoIntroduce ODPOR integration with multiple actions
Maxwell Pirtle [Thu, 1 Jun 2023 11:21:23 +0000 (13:21 +0200)]
Introduce ODPOR integration with multiple actions

Prior commits had missing integration with transitions
which could be executed multiple times in the form of
variants. This commit resolves those issues by making
two important modifications:

1. Determining the "current thing that actor X is
running" from a given state `s` has been modified
to reflect what we would expect if we asked the
question even after having exhausted all combinations;
the the case where all combinations have been executed,
the last variant is that which we would expect to be
considered the transition which were enabled at `s`.
This allows us to "fix" the spot in ODPOR where we
need to determine those actions enabled at a given
state `s`. We need to treat it as if only one variant
actually exists; for if there are differences in the
dependency structure for each variant, we wouldn't
want to erroneously deduce that an actor `X` were
a weak initial for some prefix `E'` of `E` and
for some extension `v` of `E'` based on what it
HAD run in the past.

2. In ODPOR, we now only insert members into the
sleep set when all variants of a transition have
been executed. This ensures that we are effectively
treating each variant in isolation from one another;
it is only when we reach the last variant that we
can finally go ahead and say "OK actor X you can
go into the sleep set now". Note that it's perfectly
possible for the actor to later end up in sleep sets
of states that occur *later on*; but for the sleep
set that is at *this* state, we'd want to be sure
only to add it after having explored the state space
with each variant. The reasoning is the same as in
point 1: we wouldn't want the sleep set to be based
on an action that the actor HAD run in the past as
the proxy representing what that actor is doing IN
THE PRESENT. If the dependencies were different among
the different variants, we'd have an issue if we
had previously added the other variants

11 months agoMerge branch 'python-repr' into 'master'
Martin Quinson [Thu, 1 Jun 2023 11:20:43 +0000 (11:20 +0000)]
Merge branch 'python-repr' into 'master'

add repr for many simgrid objects

See merge request simgrid/simgrid!156

11 months agoswitch repr to Class(objectname). fix python operation tests.
Adrien Gougeon [Thu, 1 Jun 2023 09:48:52 +0000 (11:48 +0200)]
switch repr to Class(objectname). fix python operation tests.

11 months agoAdd small test for insertions
Maxwell Pirtle [Thu, 1 Jun 2023 09:10:18 +0000 (11:10 +0200)]
Add small test for insertions

11 months agoadd repr for many simgrid objects. replace mailbox __str__ to match __repr__ of other...
Adrien Gougeon [Thu, 1 Jun 2023 08:49:52 +0000 (10:49 +0200)]
add repr for many simgrid objects. replace mailbox __str__ to match __repr__ of others objects. clang-format.

11 months agoAdd odpor_tests_private.hpp to MANIFEST.in
Maxwell Pirtle [Thu, 1 Jun 2023 07:16:30 +0000 (09:16 +0200)]
Add odpor_tests_private.hpp to MANIFEST.in

11 months agoASan: yet another odr-violation to ignore.
Arnaud Giersch [Thu, 1 Jun 2023 07:23:19 +0000 (09:23 +0200)]
ASan: yet another odr-violation to ignore.

11 months agoAdd missing includes.
Arnaud Giersch [Wed, 31 May 2023 08:48:26 +0000 (10:48 +0200)]
Add missing includes.

11 months agoCorrect signature for deleted constructor.
Arnaud Giersch [Wed, 31 May 2023 08:48:26 +0000 (10:48 +0200)]
Correct signature for deleted constructor.

11 months agofiring on_this_completion breaks a lot of tests and I don't see how to fix this ...
Fred Suter [Wed, 31 May 2023 21:38:07 +0000 (17:38 -0400)]
firing on_this_completion breaks a lot of tests and I don't see how to fix this (@agiersch, any idea?)

11 months ago add on_this_veto signal to Activities
Fred Suter [Wed, 31 May 2023 20:55:13 +0000 (16:55 -0400)]
 add on_this_veto signal to Activities

11 months agoforgot to fire signals
Fred Suter [Wed, 31 May 2023 20:38:06 +0000 (16:38 -0400)]
forgot to fire signals

11 months agosimplify example
Fred Suter [Wed, 31 May 2023 20:27:26 +0000 (16:27 -0400)]
simplify example

11 months ago add on_this_[suspend,resume] signals to Activities
Fred Suter [Wed, 31 May 2023 20:21:37 +0000 (16:21 -0400)]
 add on_this_[suspend,resume] signals to Activities

11 months ago add on_this_completion signal to Activities
Fred Suter [Wed, 31 May 2023 20:03:55 +0000 (16:03 -0400)]
 add on_this_completion signal to Activities

11 months ago add on_this_start signal to Activities
Fred Suter [Wed, 31 May 2023 19:27:27 +0000 (15:27 -0400)]
 add on_this_start signal to Activities

11 months agoimprove comment
Fred Suter [Wed, 31 May 2023 14:10:41 +0000 (10:10 -0400)]
improve comment

11 months agoMerge branch 'doc-photovoltaic-plugin' into 'master'
Martin Quinson [Wed, 31 May 2023 15:11:10 +0000 (15:11 +0000)]
Merge branch 'doc-photovoltaic-plugin' into 'master'

add links to photovoltaic power/cost models in docs

See merge request simgrid/simgrid!155

11 months agoadd links to power/cost models in docs
Adrien Gougeon [Wed, 31 May 2023 14:18:34 +0000 (16:18 +0200)]
add links to power/cost models in docs

11 months agoAdd SDPOR backtracking simulation unit test
Maxwell Pirtle [Wed, 31 May 2023 13:18:31 +0000 (15:18 +0200)]
Add SDPOR backtracking simulation unit test

This commit adds a small unit test which
simulates the process of determining which
threads need to be added into the backtrack
set of a given state using SDPOR

11 months agoAdd more independence tests w.r.t a partial execution
Maxwell Pirtle [Wed, 31 May 2023 12:14:12 +0000 (14:14 +0200)]
Add more independence tests w.r.t a partial execution

11 months agoMerge branch 'operation-python' into 'master'
Martin Quinson [Wed, 31 May 2023 12:30:47 +0000 (12:30 +0000)]
Merge branch 'operation-python' into 'master'

add python bindings for operations

See merge request simgrid/simgrid!153

11 months agoMerge branch 'simgrid-fork-plugin-photovoltaic'
Martin Quinson [Wed, 31 May 2023 12:23:45 +0000 (14:23 +0200)]
Merge branch 'simgrid-fork-plugin-photovoltaic'

11 months agoFix MANIFEST.in etc.
Maxwell Pirtle [Wed, 31 May 2023 07:20:55 +0000 (09:20 +0200)]
Fix MANIFEST.in etc.

11 months agomove on_start and on_completion from CommImpl to Comm
Fred Suter [Wed, 31 May 2023 01:38:16 +0000 (21:38 -0400)]
move on_start and on_completion from CommImpl to Comm

11 months agoForce the use of sleep sets with ODPOR
Maxwell Pirtle [Tue, 30 May 2023 14:11:45 +0000 (16:11 +0200)]
Force the use of sleep sets with ODPOR

11 months agoGitHub action: update to actions/checkout@v3
Martin Quinson [Tue, 30 May 2023 14:06:16 +0000 (16:06 +0200)]
GitHub action: update to actions/checkout@v3

11 months agoAdjust tesh tests according to changes in deps.
Maxwell Pirtle [Tue, 30 May 2023 13:49:26 +0000 (15:49 +0200)]
Adjust tesh tests according to changes in deps.

A number of tests were affected by the previous
additions that labeled transitions executed by
the same actor as dependent. The appropriate
modifications were made to the expected outputs
and a "sanity" check was performed before making
them

11 months agoMark transitions run by the same actor as dependent
Maxwell Pirtle [Tue, 30 May 2023 11:46:37 +0000 (13:46 +0200)]
Mark transitions run by the same actor as dependent

This commit adds a missing component to a number of
transition classes. Transitions that are executed by
the same actor are inherently dependent; but only the
RandomTransition actually checked for this case! This
caused ODPOR to search traces incorrectly under the
assumption that transitions which were actually
dependent were independent

11 months agoFix subtle bug in ~_E computation
Maxwell Pirtle [Tue, 30 May 2023 11:42:32 +0000 (13:42 +0200)]
Fix subtle bug in ~_E computation

The computation for the action ~_E requires
that we compute whether `p` is independent with
some sequence of transitions `w` after an
execution `E`. The algorithm for computing
whether an equivalent trace was found works
to iteratively eliminate events from the
equivalent sequence, leaving behind only
the remaining "bits" that are needed for
insertion into a wakeup tree.

The bug involved a typo of `w` for `w_now`
:( :( which broke everything :/

11 months agoadd python bindings for operations
Adrien Gougeon [Tue, 30 May 2023 10:57:58 +0000 (12:57 +0200)]
add python bindings for operations

11 months agoAdd remaining handlers to ReversibleRaceCalculator
Maxwell Pirtle [Fri, 26 May 2023 13:18:04 +0000 (15:18 +0200)]
Add remaining handlers to ReversibleRaceCalculator

This commit adds handlers for each type of transition
to ReversibleRaceCalculator which, as the name suggests,
determines whether a reversible race exists between two
events e1 and e2 based on the type of transition found
at e2. The full semantics have not been added for each
type of transition and will need to be added in the future

11 months agoResolve misconception with ODPOR pseudocode impl.
Maxwell Pirtle [Fri, 26 May 2023 13:12:42 +0000 (15:12 +0200)]
Resolve misconception with ODPOR pseudocode impl.

Like the SDPOR implementation before it, the ODPOR
implementation suffered from a similar fault in its
implementation. Determining whether an insertion was
necessary into a wakeup tree for some point in the
past requires determining whether the sleep set and
the set of weak initials overlap one another. If
their intersection is the empty set, THEN we attempt
to insert an actor. The prior implementation attempted
to find the first such actor that was not contained
in the sleep set, but this is semantically different

11 months agoResolve misconception with SDPOR pseudocode impl.
Maxwell Pirtle [Fri, 26 May 2023 12:45:09 +0000 (14:45 +0200)]
Resolve misconception with SDPOR pseudocode impl.

This commits fixes a semantics mismatch between
the implementation and the pseudocode in SDPOR.
The trouble was that we didn't stop searching
for an initial when we noticed that ANY initial
was contained in the backtrack set; instead, we
simply searched until we found ANY initial contained
OUTSIDE OF the backtrack set. The latter is not
equivalent to the former, so SDPOR was doing
more work than necessary.

A similar implementation issue is also present in
ODPOR which will be resolved in due time.

11 months agoFix subtle bug in Execution regeneration in DFSExplorer
Maxwell Pirtle [Fri, 26 May 2023 08:07:57 +0000 (10:07 +0200)]
Fix subtle bug in Execution regeneration in DFSExplorer

Prior to this commit, during state regeneration,
we had used the state's `get_transition_out()`
method to refill the `Execution` instance bound
to DFSExplorer (`execution_seq_`). The trouble
is that this is an **unstable** source of truth:
it should not be trusted to regenerate an execution.
Instead, the `get_transition_in()` method should
be used on the state which follows. Intuitively,
both methods should be equivalent, which is why
the bug was overlooked for so long. Now that the
execution is correct and that SDPOR/ODPOR are
based on the correct sources of truth, things
are moving along more nicely and the two algorithms
appear to behave more sanely.

In addition to the above bug fix, this commit adds
a return value to the `insert()` function of the
`WakeupTree` class. This extra information is used
in debug logs to get a better idea of what ODPOR
is doing during its insertion. Similar debug information
will be added to SDPOR in subsequent phases.

11 months agoKeep pointers to transitions instead of slices
Maxwell Pirtle [Thu, 25 May 2023 09:18:31 +0000 (11:18 +0200)]
Keep pointers to transitions instead of slices

Prior to this commit, sleep sets contained slices

11 months agoFix two minor bugs in the ODPOR implementation
Maxwell Pirtle [Thu, 25 May 2023 08:25:07 +0000 (10:25 +0200)]
Fix two minor bugs in the ODPOR implementation

This commit fixes the following two bugs:

1. When seeding a wakeup tree for the first
time, we forgot to add a `break` statement
to ensure that only one such enabled thread
were placed into the wakeup tree. Before
all such enabled threads were inserted which
amounted to what would have been a brute-force
search :(.

2. When determining whether a sequence is a
candidate for insertion into a wakeup tree,
we may need to check, for all enabled actors
in a given state, whether those actors'
next steps are independent with the sequence
theretofore constructed. This additional
step peforms the work needed to check whether
those actors are contained in the set of
*weak* initials. The method corresponds
to line 6 of the pseudocode of the ODPOR algorithm

11 months agoPlease Sonar and scan-build.
Arnaud Giersch [Wed, 24 May 2023 12:38:50 +0000 (14:38 +0200)]
Please Sonar and scan-build.

11 months agoMake ASan ignore more odr-violations.
Arnaud Giersch [Wed, 24 May 2023 12:34:42 +0000 (14:34 +0200)]
Make ASan ignore more odr-violations.

11 months agoFix some sonar issues in includes, after upgrade to c++17.
Arnaud Giersch [Wed, 24 May 2023 12:28:22 +0000 (14:28 +0200)]
Fix some sonar issues in includes, after upgrade to c++17.

11 months agoDisable implicit conversions in nlohmann/json.
Arnaud Giersch [Wed, 24 May 2023 16:18:15 +0000 (18:18 +0200)]
Disable implicit conversions in nlohmann/json.

See https://github.com/nlohmann/json#implicit-conversions

11 months agoAdd reversible race implementations for Comm actions
Maxwell Pirtle [Wed, 24 May 2023 12:04:32 +0000 (14:04 +0200)]
Add reversible race implementations for Comm actions

11 months agoAdd reversible race calculator
Maxwell Pirtle [Wed, 24 May 2023 11:09:05 +0000 (13:09 +0200)]
Add reversible race calculator

Determining whether or not a race between
two events is reversible is a critical component
of ODPOR. It turns out that we need to specialize
the race detection to the action types themselves.
Knowing the types of the transitions will help us
determine whether the race is reversible.

11 months agoAdd non-trivial insertion test
Maxwell Pirtle [Wed, 24 May 2023 09:32:20 +0000 (11:32 +0200)]
Add non-trivial insertion test

11 months agomove handling of remote disks to platform parsing.
Fred Suter [Tue, 23 May 2023 14:17:54 +0000 (10:17 -0400)]
move handling of remote disks to platform parsing.
they should be accessible without having to load the filesystem plugin.
only the notion of mounting point really pertains to the plugin

11 months agoadd accessors
Fred Suter [Tue, 23 May 2023 12:08:43 +0000 (08:08 -0400)]
add accessors

11 months agoSpecialize the Activity on_veto, on_suspend and on_resume in AnyActivity to ease...
Martin Quinson [Wed, 24 May 2023 00:02:02 +0000 (02:02 +0200)]
Specialize the Activity on_veto, on_suspend and on_resume in AnyActivity to ease the matching

11 months agoHide a bit an internal method (make it protected)
Martin Quinson [Tue, 23 May 2023 22:45:49 +0000 (00:45 +0200)]
Hide a bit an internal method (make it protected)

11 months agoeasy cleanup
Martin Quinson [Tue, 23 May 2023 22:25:44 +0000 (00:25 +0200)]
easy cleanup

11 months agoGive the on_this_ variant to all VM signals
Martin Quinson [Tue, 23 May 2023 21:56:46 +0000 (23:56 +0200)]
Give the on_this_ variant to all VM signals

11 months agoSort the signals on the plugin page
Martin Quinson [Tue, 23 May 2023 21:27:32 +0000 (23:27 +0200)]
Sort the signals on the plugin page

+ also fix some documentation errors

11 months agoRename Resource::on_state_change to Resource::on_onoff for sake of clarity
Martin Quinson [Tue, 23 May 2023 21:20:44 +0000 (23:20 +0200)]
Rename Resource::on_state_change to Resource::on_onoff for sake of clarity

11 months agoUse the right version for the deprecate macro
Martin Quinson [Tue, 23 May 2023 20:39:09 +0000 (22:39 +0200)]
Use the right version for the deprecate macro

11 months agoGive the _this_ variants to the Link signals
Martin Quinson [Tue, 23 May 2023 19:50:15 +0000 (21:50 +0200)]
Give the _this_ variants to the Link signals

11 months agoIgnore ASan warnings about odr-violation with Activity_T::on_completion.
Arnaud Giersch [Tue, 23 May 2023 15:33:45 +0000 (17:33 +0200)]
Ignore ASan warnings about odr-violation with Activity_T::on_completion.

These are false positives IIUC.

[ci-skip]

11 months agoMerge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Tue, 23 May 2023 18:57:11 +0000 (20:57 +0200)]
Merge branch 'master' of framagit.org:simgrid/simgrid

11 months agoVarious cleanups in the Host signals
Martin Quinson [Tue, 23 May 2023 18:43:26 +0000 (20:43 +0200)]
Various cleanups in the Host signals

- Add a on_this_*_cb variant to the Host signals
- Rename Activity::on_{suspended,resumed} for symmetry with Actor signals
- Change kernel::activity::CpuAction::on_state_change to s4u::Host::on_exec_state_change

11 months agoRemove global variables in PageStore_test too (mimic Snapshot_test).
Arnaud Giersch [Tue, 23 May 2023 13:46:51 +0000 (15:46 +0200)]
Remove global variables in PageStore_test too (mimic Snapshot_test).

11 months agoUse C++17 features: std::scoped_lock and structured bindings.
Arnaud Giersch [Tue, 23 May 2023 12:33:54 +0000 (14:33 +0200)]
Use C++17 features: std::scoped_lock and structured bindings.

11 months agoUse the "_t" and "_v" version of type traits.
Arnaud Giersch [Tue, 23 May 2023 12:26:38 +0000 (14:26 +0200)]
Use the "_t" and "_v" version of type traits.

11 months agoCompact namespaces.
Arnaud Giersch [Tue, 23 May 2023 10:05:47 +0000 (12:05 +0200)]
Compact namespaces.

11 months agoC++17 support is now required for public headers too.
Arnaud Giersch [Tue, 23 May 2023 09:45:42 +0000 (11:45 +0200)]
C++17 support is now required for public headers too.

Update ChangeLog, FindSimGrid.cmake, and sonar-project.properties.

11 months agoAdd tests for initials and independence for Execution
Maxwell Pirtle [Tue, 23 May 2023 12:24:13 +0000 (14:24 +0200)]
Add tests for initials and independence for Execution

11 months agoadd Io operations and an example
Fred Suter [Tue, 23 May 2023 10:36:14 +0000 (06:36 -0400)]
add Io operations and an example

11 months agoAdd first round of execution independence tests
Maxwell Pirtle [Tue, 23 May 2023 08:18:24 +0000 (10:18 +0200)]
Add first round of execution independence tests

This commit adds the first set of tests for
checking whether a particular transition `t` is
independent with an extension `w` of an execution
sequence `E`. This is needed to determine whether
the transition `t` satisfies condition (2) of the
procedure outlined in the ODPOR paper for testing
whether `v ~_[E] w` holds between two sequences

11 months agoanother try to please clang
Fred Suter [Tue, 23 May 2023 08:17:57 +0000 (04:17 -0400)]
another try to please clang

11 months agotry to solve the -Wundefined-var-template thing with clang
Fred Suter [Tue, 23 May 2023 07:56:02 +0000 (03:56 -0400)]
try to solve the -Wundefined-var-template thing with clang

11 months agoallow operation to execute more than one function at start and end
Fred Suter [Tue, 23 May 2023 07:55:06 +0000 (03:55 -0400)]
allow operation to execute more than one function at start and end

11 months agoadd missing override
Fred Suter [Mon, 22 May 2023 19:21:41 +0000 (15:21 -0400)]
add missing override

11 months agohave a on_completion per activity type to save users some dynamic_cast-based filtering
Fred Suter [Mon, 22 May 2023 17:49:53 +0000 (13:49 -0400)]
have a on_completion per activity type to save users some dynamic_cast-based filtering

11 months agoAdd instance signals for all Disk signals
Martin Quinson [Mon, 22 May 2023 15:13:14 +0000 (17:13 +0200)]
Add instance signals for all Disk signals

11 months agoAdd instance signals for all Actor signals
Martin Quinson [Mon, 22 May 2023 15:02:54 +0000 (17:02 +0200)]
Add instance signals for all Actor signals

11 months agono need to save all ns3 sink points
Martin Quinson [Sat, 20 May 2023 22:05:31 +0000 (00:05 +0200)]
no need to save all ns3 sink points

11 months agoRename cfg 'ns3/TcpModel' to 'ns3/UdpModel'
Martin Quinson [Sat, 20 May 2023 21:46:51 +0000 (23:46 +0200)]
Rename cfg 'ns3/TcpModel' to 'ns3/UdpModel'

11 months agoTest that setting ns3 TCP models actually work
Martin Quinson [Fri, 19 May 2023 14:35:57 +0000 (16:35 +0200)]
Test that setting ns3 TCP models actually work

11 months agocosmetics in the ChangeLog
Martin Quinson [Fri, 12 May 2023 12:46:17 +0000 (14:46 +0200)]
cosmetics in the ChangeLog

11 months ago allow activities launched by maestro to be instrumented
Fred Suter [Mon, 22 May 2023 12:33:42 +0000 (08:33 -0400)]
 allow activities launched by maestro to be instrumented

11 months agothrow on_send and on_receive signals when doing a host-to-host Comm
Fred Suter [Wed, 17 May 2023 19:14:07 +0000 (15:14 -0400)]
throw on_send and on_receive signals when doing a host-to-host Comm
this is needed by instrumentation

11 months agoallow to set tracing category in STARTING state
Fred Suter [Tue, 16 May 2023 15:40:38 +0000 (11:40 -0400)]
allow to set tracing category in STARTING state

11 months agoAdd test for removing the first single-process subtree
Maxwell Pirtle [Mon, 22 May 2023 11:56:30 +0000 (13:56 +0200)]
Add test for removing the first single-process subtree

This commit adds the first test checking whether
removing the first single-process node from the
tree produces the correct results, viz. that the
resulting tree is the same as before save for the
missing branch

11 months agoBegin adding tests for subtree rooting
Maxwell Pirtle [Mon, 22 May 2023 11:20:02 +0000 (13:20 +0200)]
Begin adding tests for subtree rooting

11 months agoAdd detailed stress test for WakeupTree
Maxwell Pirtle [Mon, 22 May 2023 09:03:48 +0000 (11:03 +0200)]
Add detailed stress test for WakeupTree

This commit introduces an edge case wherein
a "different looking sequence" ultimately is
already accounted for by a sequence contained
in the tree that "eventually could be made to
look like it" (viz. such that `~_E` holds
between the two sequences). Other stress tests
will be added for the other methods on the
WakeupTree and the Execution to test their
correctness. There is a long way to go

11 months agoBegin first round of in-depth tests for WakeupTree
Maxwell Pirtle [Mon, 22 May 2023 08:52:54 +0000 (10:52 +0200)]
Begin first round of in-depth tests for WakeupTree

12 months agoExplicitly capture required scope variables (sonar).
Arnaud Giersch [Wed, 17 May 2023 12:14:35 +0000 (14:14 +0200)]
Explicitly capture required scope variables (sonar).

12 months agoGet rid of global variables for snapshot tests.
Arnaud Giersch [Wed, 17 May 2023 12:01:57 +0000 (14:01 +0200)]
Get rid of global variables for snapshot tests.

Also fix some sonar issues.

12 months agoAdd first "working" version of ODPOR
Maxwell Pirtle [Wed, 17 May 2023 11:46:20 +0000 (13:46 +0200)]
Add first "working" version of ODPOR

This commit introduces the first version of
ODPOR which detects a bug using the example
programs found in SimGrid's test suite! There
is still work to be done (e.g. dealing with
transitions that have multiple possible
paths of execution such as MCRandom() will
be non-trivial to resolve).

The key adjustments in this commit are
to the WakeupTree structure itself. Gone
are the days when each node in the tree
maintained a sequence of transitions to
execute; instead, each node contains only
a single transition, and its the paths between
a node and the root that describe the partial
executions that ODPOR needs to explore.
This resulted from a misconception I had about
the structure of wakeup trees. When an insertion
is made, potentially a *chain* of leaf nodes
are added into the tree. This ensures we always
have a single-process branch to pick (which
is what we expected) and greatly improves the
readability of some of the methods found in
State.cpp related to ODPOR