Archipelago/test/cpp
black-sliver acf85eb9ab
Speedups: remove dependency on c++ (#2796)
* Speedups: remove dependency on c++

* Speedups: intset: handle malloc failing

* Speedups: intset: fix corner case for int64 on 32bit systems

original idea was to only use bucket->val if int<pointer,
but we always have a union now anyway

* Speedups: add size comment to player_set bucket configuration

* test: more tests for LocationStore.find_item

* test: require _speedups in CI

This kind of tests that the build succeeds.

* test: even more tests for LocationStore.find_item

* Speedups: intset uniform comment style

* Speedups: intset: avoid memory leak when realloc fails

* Speedups: intset: make `gcc -pedantic -std=c99 -fanalyzer` without warnings

Unnamed unions are not in C99, this got fixed.
The overhead of setting count=0 is minimal or optimized-out and silences -fanalizer (see comment).

* Speedups: don't leak memory in case of exception

* Speedups: intset: validate alloc and free

This won't happen in our cython, but it's still a good addition.

* CI: add test framework for C/C++ code

* CI: ctest: fix cwd

* Speedups: intset: ignore msvc warning

* Tests: intset: revert attempt at no-asan

We solve this with env vars in ctest now, and this fails for msvc.

* Test: cpp: docs: fix typo

* Test: cpp: docs: fix another typo

* Test: intset: proper bucket count for Negative test

INTxx_MIN % 1 would not produce a negative number, so the test was flawed.
2024-06-12 18:54:59 +02:00
..
intset Speedups: remove dependency on c++ (#2796) 2024-06-12 18:54:59 +02:00
CMakeLists.txt Speedups: remove dependency on c++ (#2796) 2024-06-12 18:54:59 +02:00
README.md Speedups: remove dependency on c++ (#2796) 2024-06-12 18:54:59 +02:00

README.md

C++ tests

Test framework for C and C++ code in AP.

Adding a Test

GoogleTest

Adding GoogleTests is as simple as creating a directory with

  • one or more test_*.cpp files that define tests using GoogleTest API
  • a CMakeLists.txt that adds the .cpp files to test_default target using target_sources

CTest

If either GoogleTest is not suitable for the test or the build flags / sources / libraries are incompatible, you can add another CTest to the project using add_target and add_test, similar to how it's done for test_default.

Running Tests