On Tuesday, 28 April 2015 at 16:40:05 UTC, Dicebot wrote:
On Monday, 27 April 2015 at 11:30:04 UTC, Steven Schveighoffer wrote:
On 4/27/15 6:20 AM, Dicebot wrote:
On Monday, 27 April 2015 at 10:15:20 UTC, Kagamin wrote:
On Monday, 27 April 2015 at 09:22:48 UTC, Dicebot wrote:
Compiling tests of dependencies pretty much never causes any notable
slowdown.

This thread doesn't support that view, see the first post.

Which part exactly? I only see comparisons for compiling AND running tests for dependencies. And it is usually running which causes the
slowdown.

The problem is as follows:

1. Unit tests for some library are written for that library. They are written to run tests during unit tests of that library only (possibly with certain requirements of environment, including build lines, or expectations of system resource availability). 2. People who import that library's modules are not trying to test the library, they are trying to test their code.

Those are two points I fundamentally disagree with. It doesn't matter where the code comes from - in the end only thing that matters is correctness of your application as a whole. And considering tests are not necessarily pure the results may very well differ between running those tests spearately and as part of application test suite a whole. Unless compiling some specific tests causes some proven _compilation_ slowdown (I have yet to see that) those all must be compiled and filtered by runtime test runner optionally.

And if tests are written in a weird way that they can only be ran within that library test step, those are not really unittests.

Usage of version(MyLibTests) in Nick SDL library annoyed me so much that I forked it to never deal with those pesky versions again. Don't want to do that with Phobos too.

Then how do you propose to approach the containers problem?

On one hand, a unittest on containers themselves involves testing the container for integrity after each operation.

On the other hand, a unittest on another module may involve heavy use of containers (say, N operations with a container), and if integrity checks are enabled at this time, it totals to N^2 trivial operations which may not be feasible.

Ivan Kazmenko.

Reply via email to