<p>These executables are used to run Bitcoin's unit tests, so that developers can verify that various parts of the code work as designed.  They are not needed by end users.</p>

<p>From the file <code>src/test/README.md</code>:</p>

<blockquote>
  <p>The sources in this directory are unit test cases.  Boost includes a
  unit testing framework, and since bitcoin already uses boost, it makes
  sense to simply use this framework rather than require developers to
  configure some other framework (we want as few impediments to creating
  unit tests as possible).</p>
  
  <p>The build system is setup to compile an executable called
  "test_bitcoin" that runs all of the unit tests.  The main source file
  is called test_bitcoin.cpp, which simply includes other files that
  contain the actual unit tests (outside of a couple required
  preprocessor directives).  The pattern is to create one test file for
  each class or source file for which you want to create unit tests. 
  The file naming convention is "_tests.cpp" and such
  files should wrap their tests in a test suite called
  "_tests".  For an examples of this pattern, examine
  uint160_tests.cpp and uint256_tests.cpp.</p>
  
  <p>For further reading, I found the following website to be helpful in
  explaining how the boost unit test framework works:
  <a href="http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/" rel="nofollow">http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/</a>.</p>
</blockquote>

CC BY-SA 3.0
2015-01-16T01:55:18.877Z
2015-01-16T01:55:18.877Z
Nate Eldredge
<p>These two binaries appeared in Bitcoin Core a few versions ago, but I don't remember ever seeing an explanation of what they are and what you would use them for.</p>

<bitcoin-core><windows>
What are test_bitcoin.exe and test_bitcoin-qt.exe?
Patrik R
# What are test_bitcoin.exe and test_bitcoin-qt.exe?

(Asked by: username_0 on 2015-01-16)

These two binaries appeared in Bitcoin Core a few versions ago, but I don't remember ever seeing an explanation of what they are and what you would use them for.

**Tags:** bitcoin-core, windows


---

## 1 answers

### Answer by username_1 on 2015-01-16. Score: 3

These executables are used to run Bitcoin's unit tests, so that developers can verify that various parts of the code work as designed. They are not needed by end users.

From the file `src/test/README.md`:

> The sources in this directory are unit test cases. Boost includes a
> unit testing framework, and since bitcoin already uses boost, it makes
> sense to simply use this framework rather than require developers to
> configure some other framework (we want as few impediments to creating
> unit tests as possible).
>
> The build system is setup to compile an executable called
> "test\_bitcoin" that runs all of the unit tests. The main source file
> is called test\_bitcoin.cpp, which simply includes other files that
> contain the actual unit tests (outside of a couple required
> preprocessor directives). The pattern is to create one test file for
> each class or source file for which you want to create unit tests.
> The file naming convention is "\_tests.cpp" and such
> files should wrap their tests in a test suite called
> "\_tests". For an examples of this pattern, examine
> uint160\_tests.cpp and uint256\_tests.cpp.
>
> For further reading, I found the following website to be helpful in
> explaining how the boost unit test framework works:
> <http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/>.


---

