<div class="gmail_quote">On 5 October 2011 10:08, Kostis Sagonas <span dir="ltr"><<a href="mailto:kostis@cs.ntua.gr">kostis@cs.ntua.gr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br></div>
IMO, you should really use PropEr instead of the above. This will take you a long way into what you want to eventually achieve.<div class="im"><br></div></blockquote><div><br></div><div>Yes I thought it should be, particularly using statem to test my port controller and things like that. </div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I guess what I'd really like is something like PULSE (the randomising<br>
scheduler employed by QuickCheck) to help me identify where my driver<br>
code might be locking up the emulator or whatever, but for open source<br>
projects that's not an option. Currently I rely on load tests in a<br>
mirror of the target environment*s(, but this isn't really good enough<br>
because if I move from an 8 core to a 16 core machine, problems can<br>
mysteriously appear that just didn't show up and they're really hard to<br>
figure out.<br>
</blockquote>
<br></div>
There are better techniques than random-based testing for the types of bugs you want to eliminate. One such tool is Concuerror (available from <a href="https://github.com/mariachris/Concuerror" target="_blank">https://github.com/mariachris/<u></u>Concuerror</a>). This is currently work in progress and we had not had the time to create a proper homepage for it. However, you can take a look at its (really really basic at this point -- more to come, hopefully soon) documentation and the examples that its distribution contains and also get a good idea of the concurrency errors Concuerror can detect and how to use the tool by reading the paper:<br>
<br>
Test-Driven Development of Concurrent Programs using Concuerror<br>
<a href="http://people.inf.ethz.ch/chmaria/Pubs/ERLANG-2011.pdf" target="_blank">http://people.inf.ethz.ch/<u></u>chmaria/Pubs/ERLANG-2011.pdf</a><br>
<br>
The paper is very comprehensive and I strongly recommend it to anyone who takes elimination of concurrency errors in Erlang seriously.<br><font color="#888888">
<br>
Kostis<br>
</font><br>
PS. If your application is open-source, I'll gladly help you in using Concuerror, but I suggest we take this off this list, if interested.<br>
</blockquote></div><br><div>Awesome. I'll go read the paper and spend some time looking at the tool as well. Thanks as well for the offer of help - my project is open source and I might drop you an email off list if I get stuck! </div>
<div><br></div><div>Cheers,</div><div><br></div><div>Tim </div><div><br></div>