Difference between revisions of "DMD development"

From D Wiki
Jump to: navigation, search
(Init)
 
Line 2: Line 2:
 
If you need help you can ask questions on <code>#d</code> IRC channel on freenode.org ([https://kiwiirc.com/client/irc.freenode.net/d web interface]) or on [http://forum.dlang.org/ our forum].
 
If you need help you can ask questions on <code>#d</code> IRC channel on freenode.org ([https://kiwiirc.com/client/irc.freenode.net/d web interface]) or on [http://forum.dlang.org/ our forum].
  
This section explains commonly commands which are commonly used to test the <tt>dmd</tt> D Programming Language compiler.
+
This section explains commonly commands which are commonly used to test the [[DMD|dmd]] D Programming Language compiler.
  
 
== Tests ==
 
== Tests ==
Line 80: Line 80:
 
=== Run unittests within the compiler ===
 
=== Run unittests within the compiler ===
  
There are a few <tt>unittest</tt> blocks within the compiler and there usage is increasing.
+
There are a few [[Unittest|unittest]] blocks within the compiler and there usage is increasing.
 
They can be tested with:
 
They can be tested with:
  
Line 87: Line 87:
 
make -f posix.mak unittest
 
make -f posix.mak unittest
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
 +
[[Category:Contribution Guidelines]]

Revision as of 04:53, 14 February 2018

Welcome to the D community and thanks for your interest in contributing! If you need help you can ask questions on #d IRC channel on freenode.org (web interface) or on our forum.

This section explains commonly commands which are commonly used to test the dmd D Programming Language compiler.

Tests

The testsuite is in `~/dlang/dmd/test`. Please go to this directory.

cd ~/dlang/dmd/test

The testsuite will always print the exact command used to run a test, s.t. it's easy to single out and reproduce a failure.

Run all tests which haven't been run before

make all -j8

If you you now rerun this command, the testsuite won't execute anything:

make all -j8

However, if you modified the compiler, it will only rerun the failing tests as these don't have an output stored.

Remove test states

The test suite stores the results of run tests to allow re-running only the failed tests. This state is stored in `~/dlang/dmd/test/test_results` and can be removed with:

make clean

Always run all tests

make run_tests -j8

Run an individual test

Sometimes it can be helpful to rerun only a single test which tests the fix or feature one is working on:

make test_results/compilable/test10066.d.out

If you want to force re-evaluation of a single test, simply remove the respective file:

rm test_results/compilable/test10066.d.out
make test_results/compilable/test10066.d.out

Run quick test

Often one makes a small change and wants to quickly know whether this change completely broke the compiler. For this, the target make quick exists:

make quick

Run group of tests

Sometimes it can be useful to run only a subset of tests. The testsuite groups the test in three groups: runnable, compilable and failed_compilation. They can be run individually:

make run_runnable_tests:         # run just the runnable tests
make run_compilable_tests:       # run just the compilable tests
make run_fail_compilation_tests  # run just the fail compilation tests

Run unittests within the compiler

There are a few unittest blocks within the compiler and there usage is increasing. They can be tested with:

cd ~/dlang/dmd/src
make -f posix.mak unittest