Commit Graph

147 Commits

Author SHA1 Message Date
Chris Thrasher
0b62543942 Don't automatically run tests after build
The runtests target must be used on Windows for the sake of code
coverage. However we can't use that target on all other platforms
because on some non-Windows platforms like Android, the tests don't
even get configured. If you try to build a target that doesn't exist
you get a hard failure. Using CTest is better because it will still
return zero even if no tests are found as is the case on Android.
2023-03-14 20:23:17 -06:00
Chris Thrasher
b6c54ac589 Use unity builds to speed up clang-tidy runtime 2023-03-14 10:08:23 -06:00
Lukas Dürrenberger
90f05ac4e8 Switch to using Documentation IP ranges in tests
Documentation IP ranges are define in RFC 5737 and are 'safe' address
for documentation purposes
2023-03-09 16:40:01 -07:00
binary1248
f4e0c4b4c0 Make moving Shapes, swapping Textures and swapping VertexBuffers noexcept. 2023-03-07 16:32:35 -07:00
Chris Thrasher
41aa062272 Add modernize-use-auto clang-tidy check 2023-02-15 09:42:50 -07:00
Chris Thrasher
2a2ddee221 Disable unreliable tests 2023-02-15 09:39:11 -07:00
Chris Thrasher
9d0b2ba592 Add tests for sf::Cursor 2023-02-14 07:34:07 -07:00
Chris Thrasher
cdf8ab38fb Add tests for sf::VertexBuffer 2023-02-13 11:47:53 -07:00
Chris Thrasher
2af65286b7 Add tests for sf::WindowBase 2023-02-08 00:22:42 -07:00
Jim-Marsden
976bbda911 Drawable Test 2023-01-24 16:27:11 -07:00
Chris Thrasher
dd83189fae Enable move semantics for SoundFile types
Funny how the addition of a forward declaration resulted in
accidentally disabling move semantics for two types. We ought to
be careful that build time improvements don't have runtime
performance impacts.
2023-01-22 15:50:53 -07:00
Norm Evangelista
6ef8e487cc Added readability-qualified-auto, -redundant-access-specifiers
Fixed clang-format escapes

Fixed OSX clang-tidy issues

Collapsed extraneous lines

Fixed clang-format escape
2023-01-19 15:53:40 -07:00
Chris Thrasher
84f56d0936 Add option for skipping tests that require an attached display 2023-01-18 16:06:00 -07:00
Chris Thrasher
b128fcd3df Add tests for sf::Texture 2023-01-18 16:06:00 -07:00
Chris Thrasher
b2e918bafc Simplify how test runner command is created 2023-01-18 16:06:00 -07:00
Chris Thrasher
badb388507 Remove unnecessary casts 2023-01-11 15:30:22 -07:00
Chris Thrasher
098f6927d2 Prevent using a temporary sf::SoundBuffer with sf::Sound 2023-01-06 15:46:22 -07:00
Chris Thrasher
0c2f7da9f9 Prevent using a temporary sf::Texture with sf::Sprite 2023-01-06 15:46:22 -07:00
Chris Thrasher
3f4bb1ae12 Prevent constructing sf::Text with a temporary sf::Font
By deleting this constructor overload, it fails to compile if
you pass a temporary font to this parameter slot. That includes
code like

  sf::Text text("", sf::Font());

but more importantly it prohibits code like this

  sf::Font getFont()
  {
    sf::Font font;
    // load a font...
    return font;
  }

  sf::Text text("", getFont());

The same idea can be applied to setFont() to prevent setting fonts
from a temporary.

Credit to Jonny for the idea

Co-authored-by: JonnyPtn <jonathan.r.paton@googlemail.com>
2023-01-06 10:21:00 -07:00
Chris Thrasher
718195bf25 Mark move operators as noexcept 2023-01-04 09:49:20 -07:00
Jim-Marsden
34b6323929 Changed to namespace 2023-01-01 14:31:26 -07:00
Jim-Marsden
7884efc49e Replaced Header Guards with Pragma Once 2022-12-27 20:08:11 +01:00
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