Yes, either that or instrumenting calls to :gen and instrument :elixir as well as stdllib.
That sounds slooooow.
Gen*
family, :gen_*
family and Tasks by default. but also give a quick way to instrument other modules instead of full apps
var8
is always set after var2
because Process 2 could be faster than Process 1.
'd instrument Gen family, :gen_ family and Tasks by default. but also give a quick way to instrument other modules instead of full apps
We need something different: the current application under test needs to instrumented such that calls to Gen*
, Task
, SuperVisor
, :ets
, :dets
and some replaced by their instrumented variants (I would like to add support for send()
and receive..do..end
as well).
instrument_module()
, which is the working horse of instrument_app()
.
So there is indication that e.g. var8 is always set after var2 because Process 2 could be faster than Process 1.
this isn't clearly present even in this version:
Sequential step:
var1 = DSL.cache(10, 1)
var2 = DSL.cache(8, -2)
Parallel step:
+------------P0-------------+ +-----------P1-----------+
| var3 = DSL.cache(-18, -2) | | var5 = DSL.cache(8, 3) |
| var4 = DSL.find(-2) | | var6 = DSL.cache(0, 0) |
+---------------------------+ | var7 = DSL.flush() |
+------------------------+
Marking a dependency runtime: false will not start it as part of the application supervision tree when your main application is started.
mix propcheck.list_counter_examples
What do you think?