Commit Graph

278 Commits

Author SHA1 Message Date
binary1248
116c101a77 Fixed window tests not accepting a context with better than requested settings. 2023-11-12 10:35:48 -07:00
Chris Thrasher
d672b3504e Add more tests for sf::Shape 2023-11-05 15:46:49 -07:00
binary1248
8c9c5c5b99 Added missing SFML_USE_STATIC_STD_LIBS checks to CMake configuration. 2023-10-31 23:22:28 +01:00
Chris Thrasher
5cf740fd93 Remove output parameter from sf::Image::saveToMemory 2023-10-28 17:58:21 -06:00
Chris Thrasher
0fcd1dd0f1 Add tests for sf::Image::loadFromFile failure 2023-10-27 19:21:36 -06:00
Chris Thrasher
fd2c42c7d1 Add tests for sf::Image::saveToMemory 2023-10-27 19:21:36 -06:00
Chris Thrasher
9a8ca3227f Add UBsan to CI 2023-10-27 16:36:38 -06:00
André Polomat
014366b84a Updated the test for the maximum antialiasing level of render texture
it returns 32 on my system, 64 should still be a reasonable value
2023-10-27 12:46:27 -06:00
Chris Thrasher
2cbcd60a45 Remove redundant link library
Clang was warning about this

  ld: warning: ignoring duplicate libraries: 'lib/libsfml-system-s-d.a'
2023-10-23 13:07:27 +02:00
Chris Thrasher
6aabb75bcf Fix sf::Image tests
Bitten by a copy pasta error. We can't test for exact pixel values
since jpeg compression changes pixel values slightly.
2023-10-21 12:44:51 -05:00
Chris Thrasher
1c037e1cba Add tests for sf::Image::saveToFile 2023-10-20 23:53:18 -05:00
Chris Thrasher
bb1a465e50 Add cppcoreguidelines-pro-type-member-init clang-tidy check
This marks another good step towards systematically rooting out
undefined behavior in the form of reading uninitialized memory.
2023-10-17 21:41:36 -05:00
Chris Thrasher
c0061797e3 Add more tests for sf::Window 2023-10-05 17:41:29 -06:00
Chris Thrasher
b856d806be Improve sf::FileInputStream test coverage 2023-10-05 16:46:31 -06:00
Chris Thrasher
1e4aed8700 Fix clang-tidy readability-container-size-empty warnings 2023-09-29 15:55:39 -06:00
Chris Thrasher
dbb87db026 Add more tests for sf::Text 2023-09-28 12:41:29 -06:00
Chris Thrasher
3750074238 Add tests for sf::Vulkan 2023-09-24 21:12:18 -06:00
Chris Thrasher
f40d5ac21d Add tests for sf::Joystick 2023-09-24 20:58:41 -06:00
Chris Thrasher
ff5eaca6a2 Add more tests for sf::VideoMode 2023-09-19 13:43:28 -06:00
Chris Thrasher
9dc2e541e8 Add clang-tidy modernize-return-braced-init-list check 2023-09-17 15:47:33 -06:00
Chris Thrasher
d56e1838a0 Shallow clone Catch2
This takes a 4 second configuration time for the entire project with
examples and tests and turns that into 3! Whopping 25% reduction in
configuration time. This effect is likely to be even larger on machines
without exceptionally good internet connections.

Before:
  $ hyperfine 'rm -rf build && cmake --preset dev'
  Benchmark 1: rm -rf build && cmake --preset dev
    Time (mean ± σ):      4.076 s ±  0.130 s    [User: 2.148 s, System: 1.376 s]
    Range (min … max):    3.963 s …  4.321 s    10 runs

After:
  $ hyperfine 'rm -rf build && cmake --preset dev'
  Benchmark 1: rm -rf build && cmake --preset dev
    Time (mean ± σ):      3.007 s ±  0.313 s    [User: 1.061 s, System: 1.160 s]
    Range (min … max):    2.783 s …  3.805 s    10 runs

Co-authored-by: binary1248 <binary1248@hotmail.com>
2023-09-15 16:07:52 -06:00
Chris Thrasher
d6079ce526 Reenable sf::Cursor tests
A fun thing about runDisplayTests() is that it means that the tests
won't get run in CI on the DRM code. Technically you can run the
display tests locally when buidling with DRM so these tests will
still fail under those circumstances. Regardless I think this is a
net positive to run the tests in CI.
2023-09-13 16:19:18 -06:00
Chris Thrasher
332d11be41 Add move semantics to sf::RenderTarget and sf::RenderTexture 2023-09-05 17:12:06 -06:00
Chris Thrasher
d304d1e57b Add tests for sf::Clipboard 2023-09-05 16:18:18 -06:00
Chris Thrasher
71162395d7 Add tests for sf::Keyboard 2023-09-05 15:19:53 -06:00
Chris Thrasher
70f9d49559 Add tests for sf::Texture::generateMipmap 2023-09-05 10:58:14 -06:00
Chris Thrasher
d7ab9208be Add tests for sf::RenderTexture
The generateMipmap test was failing because I forgot to enable MESA
in the MinGW Static Standard Library job.
2023-09-05 10:58:14 -06:00
Chris Thrasher
0a3b0d1d16 Add tests for sf::RenderTarget 2023-09-05 10:58:14 -06:00
Chris Thrasher
1cca7cde7e Consistently use getNativeHandle function name 2023-08-27 16:52:00 -06:00
kimci86
9cbcd56eb8 Remove Sound default constructor
so that a Sound instance is always bound to a SoundBuffer
2023-08-27 16:46:52 -06:00
Chris Thrasher
63088c1bf1 Add tests for sf::SocketSelector
I added move semantics while I was at it
2023-08-27 16:46:05 -06:00
Chris Thrasher
b3a467678d Add tests for sf::Http
This class hides a lot of its logic in the private section of the
classes and uses friends to access them so there is little accessible
in the public interface for testing.
2023-08-27 16:46:05 -06:00
Chris Thrasher
364fe38956 Add tests for sf::UdpSocket 2023-08-27 16:46:05 -06:00
Chris Thrasher
90d6d74282 Add tests for sf::TcpSocket 2023-08-27 16:46:05 -06:00
Chris Thrasher
ab06efbe95 Add tests for sf::TcpListener 2023-08-27 16:46:05 -06:00
Chris Thrasher
05b69119e4 Add tests for sf::Event 2023-08-27 10:04:14 -06:00
Chris Thrasher
e5c41c4eb5 Enable move semantics for socket types 2023-08-26 22:17:34 -06:00
Chris Thrasher
29ed8bf3a0 Add tests for sf::Socket 2023-08-26 22:17:34 -06:00
Chris Thrasher
62c376ffa5 Remove unnecessary parentheses 2023-08-21 09:07:32 -06:00
Chris Thrasher
bc86e0bced Add tests for sf::Sprite 2023-08-06 11:18:06 -06:00
Chris Thrasher
60dbed7e5e Add tests for sf::Text 2023-08-05 18:58:54 -06:00
kimci86
669d9f53bc Update Text constructor static assert to use correct parameters 2023-08-05 14:39:07 -06:00
Chris Thrasher
751aceadf8 Add tests for sf::Shader::loadFromFile
Plus a few cleanups while I was in there
2023-08-05 14:37:47 -06:00
Chris Thrasher
e17cab1fbf Add tests for sf::Texture::loadFromFile 2023-08-05 14:37:47 -06:00
Chris Thrasher
c9d9f84a0e Add tests for sf::Image::loadFromFile 2023-08-04 19:26:30 -06:00
Chris Thrasher
b68482754b Use std::filesystem::path for paths 2023-07-27 11:13:45 -06:00
Chris Thrasher
cb4cf4d090 Remove redundant type trait tests 2023-07-17 08:38:26 -06:00
Chris Thrasher
bb9ba0d7ef Update Catch2
https://github.com/catchorg/Catch2/releases/tag/v3.4.0
2023-07-13 11:19:17 -06:00
Chris Thrasher
98df0fe4c9 Add doc strings to remaining assertions 2023-07-10 15:03:01 -06:00
Chris Thrasher
b9f56f79f0 Relax criteria for geometric center test
Required to satisfy slight differences in how icpx handles
floating point numbers. Only the x value of this vector required
a larger tolerance than normal. Given how many floating point
calculations are required to calculate geometric center, I'm not
surprised to see such a modest deviation.
2023-07-08 17:00:58 -06:00
Chris Thrasher
20f34d38fd Add tests for sf::Font 2023-07-07 13:21:56 -06:00
MetGang
8835f42589 Make sf::Clock pausable 2023-06-02 11:32:04 -06:00
binary1248
b39be46db0 Moved most variables in sfml-graphics, GlResource and GlContext out of namespace scope. 2023-06-02 10:22:48 -06:00
Chris Thrasher
53e2fab582 Prefer named colors 2023-05-25 17:08:42 -06:00
Chris Thrasher
865a50899c Test for correct network ordering of packets 2023-05-22 08:51:37 -06:00
Chris Thrasher
d131beb0fd Fix misspellings
I used the Python tool codespell to find these
2023-05-21 14:37:46 -06:00
Chris Thrasher
e6cc75f8a6 Fix how we specify CATCH_CONFIG_FAST_COMPILE
Fixes a warning that was emitted about how we were doing this wrong
after CMake policy 0077 was added.
2023-05-18 10:43:58 -06:00
Ted Lyngmo
9855552f64 Add sf::Shape::getGeometricCenter()
This adds

    virtual Vector2f getGeometricCenter() const = 0;

Signed-off-by: Ted Lyngmo <ted@lyncon.se>
2023-05-15 16:13:39 -06:00
Chris Thrasher
f6dfc04938 Switch to Catch2 2023-05-13 12:38:11 -06:00
Chris Thrasher
b14d0b47e6 Fix broken sf::swap overloads 2023-05-13 12:20:44 -06:00
Chris Thrasher
98a59d62c7 Upgrade to CMake 3.22 2023-05-13 12:09:09 -06:00
Chris Thrasher
27249d42ed Add sf::WindowBase::set{Min|Max}imumSize()
Co-authored-by: Shane Whitmire <dogunbound5@gmail.com>
Co-authored-by: michael.david.howard@outlook.com <michael.david.howard@outlook.com>
2023-05-12 14:36:06 -06:00
Chris Thrasher
fb1cfdc48d Add misc-const-correctness clang-tidy check 2023-05-04 16:22:03 -06:00
Chris Thrasher
29863b14a5 Remove default sf::Sprite constructor 2023-05-03 13:33:42 -06:00
Chris Thrasher
1c5c8ad700 Add tests for sf::sleep 2023-04-28 15:01:11 -06:00
vittorioromeo
cbfa9cbb65 Reorder includes hierarchically 2023-04-25 17:25:33 +02:00
alireza
5480bf8a93
Fixed move semantics for sf::Cursor and added test for it 2023-04-22 18:29:05 +02:00
Jan Wojciechowski
692fe84331 Fix condition for trailing bytes count in UTF-8 decoder. Test added to check if a replacement characters is added to output. 2023-04-19 23:52:38 +02:00
vittorioromeo
c6226258db Improve test utility header compilation speed 2023-04-13 16:33:49 +02:00
Chris Thrasher
82b9821a8a Add clang-tidy bugprone-* checks 2023-04-12 19:53:36 -06:00
Chris Thrasher
cafaa1c153 Add clang-tidy performance-* checks 2023-04-10 10:08:13 -06:00
binary1248
ea4c448a85 Add support for installing and using the Mesa 3D library for OpenGL rendering. 2023-04-06 11:15:56 -06:00
Chris Thrasher
f371a99b39 Implement sf::String in terms of std::u32string 2023-04-04 15:47:34 -06:00
binary1248
7004db1cd9 Added sf::RenderWindow, sf::Shader and sf::Window tests. 2023-04-04 10:27:21 +02:00
Chris Thrasher
ebe4b3c437 Add tests for sf::String 2023-04-03 21:23:43 -06:00
Jonny
741fe219da
Use built-in CMake support for iOS
* Use built-in iOS support for cmake and expand tests to cover more configurations
* Adjust CI builds
* Update examples version

---------

Co-authored-by: Chris Thrasher <chrisjthrasher@gmail.com>
2023-04-03 23:36:33 +02:00
Chris Thrasher
92e5a1e4e6 Implement move semantics for sf::Cursor 2023-04-03 01:02:26 -06:00
binary1248
5048c4d801 Added sf::Texture tests. 2023-03-30 22:24:40 +02:00
Jim-Marsden
a8bc8cf889 Added move constructor, and move assignment operator. 2023-03-29 23:48:05 +02:00
Chris Thrasher
2d2f684786 Fix clang-tidy-16 errors 2023-03-28 19:54:06 -06:00
binary1248
acba3e6165 Replaced xvfb-run with manually starting Xvfb and running fluxbox to emulate a window manager and combined test and coverage steps into a single step. 2023-03-27 19:46:07 -06:00
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