Chris Thrasher
e8fa5d7d31
Add CI job for Clang on Windows
2022-12-14 15:26:08 -07:00
Chris Thrasher
3b6db4d18c
Enforce variable case
2022-12-12 16:10:03 -07:00
Chris Thrasher
4807c779a7
Apply warnings to install test
...
Because the install test project can't access SFML CMake functions,
these warnings are only applied when building the install tests as
a part of SFML.
2022-11-29 00:47:32 -07:00
jim
1d4db22d62
Added move constructor/operator
2022-11-19 19:52:45 -07:00
Jonny Paton
e4bffe5b84
Rename test files to be unique
2022-10-23 16:39:12 +02:00
Chris Thrasher
3d02d490bd
Hide doctest sources from compile commands database
...
This ensure that tools like run-clang-tidy don't try to analyze them
and better mimmicks how Doctest would behave if we were depending on
Doctest via find_package instead.
2022-10-17 18:29:56 -06:00
Chris Thrasher
229e3f61f4
Use doctest-provided main
implementation
2022-10-16 14:55:33 -06:00
Chris Thrasher
e4f81af337
Test install interface
...
Skip Android, iOS, and Framework builds simply because I can't get
them to work and don't want that holding up getting the rest of the
install tests merged.
Skip the Static DRM install test because there's a bug in the install
that needs to be fixed.
2022-10-15 09:07:49 +02:00
Chris Thrasher
ff685de1bf
Ensure add_custom_command
uses VERBATIM
...
https://cmake.org/cmake/help/latest/command/add_custom_command.html
"Use of VERBATIM is recommended as it enables correct behavior."
The docs basically say that this is required.
2022-10-12 00:23:35 +02:00
Chris Thrasher
b848a7b29a
Only reference the project's directories, not parent directories
2022-10-12 00:23:35 +02:00
Chris Thrasher
9feef3708d
Test existence of copy and move semantics
2022-10-10 11:46:55 -06:00
Chris Thrasher
0e475f3f50
Test reinterpreting an sf::Color
as a std::uint8_t*
2022-10-05 20:26:25 +02:00
Chris Thrasher
939ec267df
Improve const correctness
2022-10-01 23:19:52 +02:00
Chris Thrasher
e44a4b305d
Simplify operator<<
implementations
2022-10-01 23:19:52 +02:00
Chris Thrasher
25fa30afc6
Make test case names more readable
...
Test output now shows the module name left-aligned so you can easily
browse to see what modules have what tests and know what module a
failing test is coming from.
2022-10-01 23:19:52 +02:00
Chris Thrasher
acabaadc0b
Remove unnecessary sf::
usage
2022-10-01 23:19:52 +02:00
Chris Thrasher
28a4a88832
Add more tests for sf::Packet
2022-10-01 12:35:29 -06:00
Chris Thrasher
12aaa4d08a
Use macros for test abstractions to preserve line number information
2022-10-01 12:35:29 -06:00
Chris Thrasher
abc8d858c3
Only include header under test
2022-10-01 12:35:29 -06:00
Chris Thrasher
3a3935d005
Replace sf::Uint64
with std::uint64_t
2022-09-13 11:15:03 -06:00
Chris Thrasher
05690b963d
Replace sf::Int64
with std::int64_t
2022-09-13 11:15:03 -06:00
Chris Thrasher
b94df9e0d8
Let tests succeed even if nullopt is returned
...
This is the desire behavior when the network fails so we can't
just fail the test when this happens.
2022-09-12 15:58:51 -06:00
Chris Thrasher
105ff68a6a
Time out test for public IP address
...
On poor network connections, the call to getPublicAddress may hang
indefinitely. If it is to succeed, let's require that it succeed
within a reasonable time frame to put an upper limit on how long
this test takes to run.
2022-09-12 15:58:51 -06:00
Chris Thrasher
e294090c8e
Replace sf::Uint32
with std::uint32_t
2022-09-12 15:36:55 -06:00
Chris Thrasher
056f66a2b8
Replace sf::Int32
with std::int32_t
2022-09-12 15:36:55 -06:00
Chris Thrasher
ff9c9131b3
Replace sf::Uint16
with std::uint16_t
2022-09-12 21:36:13 +03:00
Chris Thrasher
e21ae3204e
Replace sf::Int16
with std::int16_t
2022-09-12 21:36:13 +03:00
Chris Thrasher
50cec7d2ed
Treat each test case as a unique test
2022-09-10 20:03:25 +03:00
Chris Thrasher
e2528de20a
Replace sf::Uint8
with std::uint8_t
2022-09-09 10:28:53 +02:00
Chris Thrasher
af34794123
Replace sf::Int8
with std::int8_t
2022-09-09 10:28:53 +02:00
Chris Thrasher
82b48a7520
Use std::size_t
2022-09-07 22:23:22 +02:00
Chris Thrasher
45986c6400
Avoid opening namespace std
2022-09-05 23:35:25 +02:00
Chris Thrasher
8561101b11
Add conversions between sf::Time
and std::chrono::duration
s
2022-09-05 23:35:25 +02:00
Chris Thrasher
b7510fd09e
Fix formatting and style
...
Use all lower_case commands with no space between the command name
and the open parentheses. Don't repeat conditional in else() and
endif() calls.
2022-08-22 11:26:57 +08:00
Chris Thrasher
49fd5887c8
Add tests for SFML/Config.hpp
2022-08-03 23:39:37 +02:00
Chris Thrasher
a47eb8320a
Remove vendored doctest header
2022-07-20 08:56:59 +02:00
Chris Thrasher
4f52793f7d
Run clang-format
2022-07-11 20:04:56 +02:00
metaquarx
88e9f82bee
Add '.clang-format' file, CI integration, and formatting exceptions
...
Co-authored-by: Vittorio Romeo <vittorio.romeo@outlook.com>
Co-authored-by: Chris Thrasher <chrisjthrasher@gmail.com>
Co-authored-by: kimci86 <kimci86@hotmail.fr>
2022-07-11 20:04:56 +02:00
Bambo-Borris
c6f7fcaa2a
Add tests for sf::MemoryInputStream
2022-06-28 14:33:21 +02:00
Vittorio Romeo
8c8d97c6c9
IpAddress is always valid
2022-06-28 00:31:12 +02:00
Chris Thrasher
fd3526f742
Use <>
for test utilities includes
...
SFML convention is to only use "" includes when the header is in
the same directory as the file including it. Because these test
util headers are in a separate directory, it makes more sense to
include them via <>.
2022-06-27 00:22:16 +02:00
Chris Thrasher
4047909725
Remove unnecessary includes
2022-06-27 00:22:16 +02:00
Chris Thrasher
a57640c2c8
Require stringification for all tested types
...
This ensures that if a printing function is not provided, compilation
fails. This prevents problems where a header is accidentally removed
that was previously providing an operator<< overload or prevents
new tests from being added without print support for all directly
tested types.
2022-06-27 00:22:16 +02:00
Chris Thrasher
3925139f4d
Improve test coverage of sf::Rect
2022-06-26 15:47:30 +02:00
Chris Thrasher
b009151e89
Improve test coverage of sf::Color
2022-06-26 15:47:30 +02:00
Chris Thrasher
44d3d63ade
Reduce the scope of helper class
2022-06-26 02:14:53 +02:00
Chris Thrasher
0812054e02
Remove trailing whitespace
2022-06-25 21:32:55 +02:00
Vittorio Romeo
8a2aa6397f
Explicitly instantiate float vector members in cpp
2022-06-24 18:47:28 +02:00
Chris Thrasher
e4e9b290b1
Add tests for sf::IpAddress
2022-06-23 18:47:23 +02:00
Vittorio Romeo
6cd07a043f
'sf::Image::copy' returns a 'bool' to signal success/failure
2022-06-21 16:40:22 +02:00
Bambo-Borris
8b3723a52b
Add tests for sf::Image
2022-06-21 15:14:27 +02:00
Chris Thrasher
6a59ab0051
Add tests for sf::ConvexShape
2022-06-09 10:05:29 +02:00
Chris Thrasher
3203c3927f
Add tests for sf::RenderStates
2022-06-07 08:25:52 +02:00
Chris Thrasher
58e93ddd19
Add tests for sf::View
2022-06-01 08:09:29 +02:00
Chris Thrasher
60131b19ef
Add tests for sf::Glyph
2022-06-01 08:09:29 +02:00
Chris Thrasher
7dd001e5c0
Simplify approximate comparisons of SFML types
...
Co-authored-by: kimci86 <kimci86@hotmail.fr>
2022-05-25 13:36:12 +02:00
Chris Thrasher
1e6dc82304
Add tests for sf::CircleShape
2022-05-17 20:30:17 +02:00
Chris Thrasher
049e3ce8f2
Increase precision of operator<<(Vector2<T>)
2022-05-17 20:30:17 +02:00
Chris Thrasher
88515b2fca
Add polar coordinates constructor for sf::Vector2<T>
2022-05-17 20:30:02 +02:00
Chris Thrasher
0785093ebc
Use sf::Vector2<T>
for numeric parameter pairs
2022-05-17 08:33:11 +02:00
Chris Thrasher
488b139ea7
Fix conversion warning
2022-05-16 19:05:35 +02:00
Bambo-Borris
b2ab6d6ab3
Add extension methods to Vector3<T>
...
Includes relevant tests and updates TestUtilities to feature ApproxVec2 & ApproxVec3
2022-05-16 08:59:42 +02:00
Chris Thrasher
829cf3b502
Apply compiler warnings to test utilities
2022-05-09 15:38:24 +02:00
Chris Thrasher
c0a6cf1f0c
Remove unnecessary lossy conversions in test utilities
...
Both ApproxVec and ApproxDeg accept a double then convert that to
a float just to then convert it back to a double. We can save an
extra lossy conversion by just accepting a float instead of a double
in the first place.
2022-05-04 09:03:04 +02:00
Chris Thrasher
1e560ababd
Add tests for sf::err
2022-05-02 09:53:04 +02:00
Chris Thrasher
2a5ce3c989
Apply compiler warnings to tests
2022-05-02 08:39:02 +02:00
Chris Thrasher
9010e7ba38
Add tests for sf::RectangleShape
2022-04-12 08:15:44 +02:00
Chris Thrasher
9cbd9c5976
Add tests for sf::Shape
2022-04-08 16:46:51 +02:00
Chris Thrasher
2adc3c0e23
Increase precision of sf::Rect<T>
operator<<
...
This has been a recurring problem. I had to add similar code to the
sf::Angle operator<< because I was getting tiny floating point
differences that after rounding were imperceptable.
2022-04-08 16:46:51 +02:00
Chris Thrasher
f3d98a9ebf
Require all modules are built before building tests
2022-04-02 12:17:59 +02:00
Chris Thrasher
bc7ec1277a
Move sf::Rect
printer to GraphicsUtil
2022-03-30 09:06:08 +02:00
Chris Thrasher
5c9b571c70
Add tests for sf::VertexArray
2022-03-16 09:56:29 +01:00
Chris Thrasher
2e6c363e64
Mark external headers as SYSTEM headers
...
Among other benefits this ensures that the compiler doesn't emit
warnings on headers in these paths.
2022-03-10 21:26:39 +01:00
Jan Haller
28e935673c
Const-qualify local variables in Vector2 test, where possible
2022-02-28 16:18:00 +00:00
Jan Haller
2eef193c0e
Unit tests for Vector2 extensions
...
Also adds ApproxVec and ApproxDeg types for more readable comparison of approximate vectors/angles.
2022-02-28 16:18:00 +00:00
Chris Thrasher
80004d87b1
Build sf::Transformable tests
...
Transformable.cpp was originally compiled when I first submitted
PR #1973 . While that PR was in review, #2012 got merged which
changed how tests are compiled. These two PR were in conflict so
when I went to resolve conflicts on #1973 , I accidentaly removed
the line which added Transformable.cpp to the build. Because not
compiling this file caused no build breaks, nobody noticed until
after #1973 got merged. My bad, everybody.
2022-02-18 19:48:29 +00:00
Chris Thrasher
abe420897d
Add tests for sf::Transformable
2022-02-17 20:48:30 +00:00
Chris Thrasher
ec4ac1afc4
Remove GCC 8 workarounds
2022-02-17 00:40:29 +00:00
Chris Thrasher
5236513f16
Simplify how tests are built
2022-02-16 13:51:29 +00:00
binary1248
359fe9088c
Fixed warnings reported by LGTM and Coverity Scan.
2022-02-16 08:26:17 +01:00
Vittorio Romeo
dbeef66693
Turn 'sf::Transform' into a 'constexpr' class
2022-02-10 23:51:47 +00:00
Vittorio Romeo
63ce7e4e92
Remove unnecessary includes from public-facing headers
2022-02-10 21:05:49 +00:00
binary1248
66339bc09c
Added support for coverage reporting.
2022-02-10 08:08:47 +01:00
Vittorio Romeo
0e419543f2
Make 'Color' constants 'constexpr' and add tests
2022-02-08 23:32:12 +00:00
Chris Thrasher
28f273b9c9
Add sf::Angle
...
Similar to sf::Time, sf::Angle provides a typesafe API for working
with angles and provides named functions for converting to and from
degrees and radians.
2022-02-08 22:52:37 +00:00
Chris Thrasher
7c80f302e4
Use std::optional to remove extra sf::Rect::intersects overload
2022-01-27 02:55:11 +00:00
Chris Thrasher
0ad6d1815c
Remove unnecessary CMake version requirement
...
This is left over from 0f83e3d
but we forgot to remove it. Nothing
about this file requires an elevated minimum CMake version now that
the FetchContent usage is gone.
2022-01-22 15:51:27 +01:00
kimci86
ad21794f39
Fix runtests target for multi-configuration generators
2022-01-21 21:19:32 +01:00
Chris Thrasher
7cdb728e52
Add tests for sf::BlendMode
2022-01-20 07:39:19 +01:00
Chris Thrasher
871c021a75
Add tests for sf::ContextSettings
2022-01-13 23:49:37 +01:00
Chris Thrasher
da6a226941
Add tests for sf::Clock
2022-01-11 22:49:00 +00:00
Chris Thrasher
4586db91a9
Add SFML:: namespace to targets
...
This removes the sfml- prefixed targets from the export set. The sfml-
prefixed targets are still available within the build tree but not to
downstream users thus making this an API breaking change when compared
to the 2.x releases. To keep things consistent, usage of the sfml-
targets were replaced with their namespaced counterparts.
This has a number of benefits:
1. It's more idiomatic. Modern CMake libraries are expected to
have namespaced targets.
2. Namespaced targets are less likely to collide with user-defined
targets. No one will accidentally define a SFML:: target.
3. If a namespaced target is not found by CMake, configuration
will immediately stop.
2022-01-11 22:27:39 +01:00
Chris Thrasher
b717a68fba
Add tests for sf::Transform
2022-01-08 15:06:12 +01:00
Chris Thrasher
3d01efb80a
Use operator<< for printing during test failure
2022-01-07 20:04:54 +01:00
Chris Thrasher
79c2aadbcc
Remove redundant 4-param sf::Rect<T> constructor
2022-01-06 20:04:03 +01:00
Chris Thrasher
6c816aba44
Add tests for sf::Vertex
2022-01-06 20:02:09 +01:00
Chris Thrasher
3197dc8029
Remove redundant formatters
2022-01-03 08:27:43 +01:00
Vittorio Romeo
3dc8fc0923
Add 'NetworkUtil' for network module tests
2022-01-03 01:00:55 +01:00
Vittorio Romeo
5ba6580568
Make 'Time' a 'constexpr' class
2021-12-28 16:52:52 +01:00
Chris Thrasher
f5541d22e5
Add tests for sf::VideoMode
2021-12-27 19:09:35 +01:00
Vittorio Romeo
50d28e3879
Add tests for 'sf::Color'
2021-12-27 17:35:06 +01:00
Chris Thrasher
14fff20eb8
Remove redundant API taking x,y pair instead of sf::Vector
2021-12-26 17:13:18 +01:00
Vittorio Romeo
29983aa8d4
Replace Catch with Doctest
2021-12-24 15:06:32 +01:00
Chris Thrasher
ade9843dd8
Collapse test/src directory
2021-12-24 11:56:58 +01:00
Chris Thrasher
54b8a691d1
Add unit tests for sf::Time
2021-12-23 20:34:33 +01:00
Chris Thrasher
cd1cc62f6d
Fix issue with MinGW not handling large files
2021-12-21 23:11:15 +01:00
Chris Thrasher
0f83e3d266
Use FetchContent to grab latest Catch2 release
...
The key benefit here is that now we're linking against their CMake
target which makes it easy to change how we depend on Catch2. We
can switch from FetchContent to FindPackage to a git submodule and
never have to change our code because we're depending on Catch2 in
the most flexible way possible.
2021-12-21 23:11:15 +01:00
Chris Thrasher
dda821597b
Only compile Catch main once
...
Because Catch is so expensive to compile, it's really helpful for
initial compile times if this target doesn't have to be recompiled
so often. This won't make a huge impact on developers who are mostly
doing incremental builds but can have a meaningful impact on CI
runners that are always doing clean builds.
2021-12-19 23:11:14 +01:00
Vittorio Romeo
ae3a38345d
Add tests for 'Vector' destructuring and 'constexpr' support
2021-12-16 22:19:59 +01:00
Pawel Paruzel
11020363b1
Fix wrong cast in sf::Packet
...
Add unit tests
2021-12-06 08:06:20 +01:00
Lukas Dürrenberger
7e7216f598
Renamed test targets to test-sfml-module structure
2019-02-19 10:16:38 +01:00
=
53972ed5f2
Use sfml_add_test macro for unit tests and copy dlls to output directory if required
2019-02-19 10:16:38 +01:00
Lukas Dürrenberger
c626332e03
Disabled tests by default
2019-02-19 10:16:38 +01:00
Jonny Paton
d53858afb1
Removed incompatible cmake/catch functionality, replaced with vanilla cmake
2019-02-19 10:16:38 +01:00
Jonny Paton
bc7258006c
Restructure test source folders
2019-02-19 10:16:38 +01:00
Jonny Paton
d3a072fb63
Use modern cmake testing functionality including catch integration
2019-02-19 10:16:38 +01:00
Lukas Dürrenberger
a88e854dc3
Added test cases for Vector3<T>
2019-02-19 10:16:38 +01:00
Lukas Dürrenberger
d402ce5a5d
Separated test suites into their individual modules
...
- Building per module only requires to have split test utility sections
- System module tests are always added, as the system module is always built
2019-02-19 10:16:38 +01:00
Lukas Dürrenberger
7d496095a5
Updated catch to v1.12.2
2019-02-19 10:16:38 +01:00
Jan Haller
11b3fe4283
Added tags (module names) in TEST_CASE macros
2019-02-19 10:16:38 +01:00
Jan Haller
c3e5a35a6e
Added string conversions for equality-comparable classes
...
Provides a Catch::toString() overload for the following SFML classes, that support at least operator== and operator!=, and can thus be used in Catch assertion expressions:
* String
* Time
* Vector2<T>
* Vector3<T>
* VideoMode
* Color
* Rect<T>
The intermediate header UnitTests.hpp is introduced to ensure string conversion visibility.
Do not include <catch.hpp> directly any longer.
2019-02-19 10:16:38 +01:00
Zack Mulgrew
620c9989d6
Add unit test for Rect.hpp
2019-02-19 10:16:38 +01:00
Jan Haller
5b08f8133f
Used LF as line ending; added line break for echo output
...
winline
2019-02-19 10:16:38 +01:00
Jan Haller
a85dc6dabb
Rewrote Vector2 tests in a more concise way
2019-02-19 10:16:38 +01:00
Stefan Schindler
3d46e39e6d
Added Catch unit test framework. Added Vector2(i) unit test. Re-enabled CMake's RPATH feature.
2019-02-19 10:16:38 +01:00