mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 12:58:34 +00:00
70 lines
948 B
Plaintext
70 lines
948 B
Plaintext
---
|
|
sidebar_label: Test framework (EXPECT, TEST, ...)
|
|
---
|
|
|
|
# Test Framework
|
|
|
|
DCR has a built-in minimal test framework for C.
|
|
|
|
## Macros
|
|
|
|
### `EXPECT(expr)`
|
|
|
|
Asserts that an expression is true.
|
|
|
|
```c
|
|
EXPECT(1 + 1 == 2);
|
|
EXPECT(ptr != NULL);
|
|
```
|
|
|
|
### `SKIP(reason)`
|
|
|
|
Skips a test with a message.
|
|
|
|
```c
|
|
SKIP("not implemented on Windows");
|
|
```
|
|
|
|
### `TEST(name)`
|
|
|
|
Defines a test.
|
|
|
|
```c
|
|
TEST(addition) {
|
|
EXPECT(1 + 1 == 2);
|
|
EXPECT(2 + 2 == 4);
|
|
}
|
|
```
|
|
|
|
### `TEST_CASE(name)`
|
|
|
|
Registers a test case.
|
|
|
|
```c
|
|
TEST_CASE(math) {
|
|
EXPECT(1 + 1 == 2);
|
|
}
|
|
```
|
|
|
|
## Initialization
|
|
|
|
```bash
|
|
dcr test --init
|
|
```
|
|
|
|
Creates:
|
|
|
|
* `tests/dcr_test.h` — framework header (do not edit)
|
|
* `tests/test.c` — template with example test
|
|
|
|
## Structure
|
|
|
|
```
|
|
tests/
|
|
├── dcr_test.h # framework (do not edit)
|
|
├── test.c # main tests
|
|
└── ... # additional .c test files
|
|
```
|
|
|
|
Only `.c` files are compiled (`.cpp` is not supported).
|