Chris Thrasher
0777ce5ead
Update to Catch2 v3.6.0
2024-05-07 17:02:47 +00:00
binary1248
2386653bd3
Add GitHub actions support for running x86, x86_64 and arm64-v8a Android tests using an Android emulator.
2024-05-04 17:22:12 +00:00
trustytrojan
ca0a231b35
Add operator bool()
to sf::Event
for checking if the event type is not Empty
2024-05-03 22:50:59 +00:00
Chris Thrasher
59447dd8e5
Rewrite sf::Event
API to improve type safety
...
This new API is built on top of std::variant. This allows us to
store many different event types in a space-efficient way and access
the active event type in a type-safe manner that eliminates the
categories of UB that are possible with unions.
Co-authored-by: kimci86 <kimci86@hotmail.fr>
2024-05-01 18:00:58 +00:00
Chris Thrasher
249caa2fb2
Require that variables are initialized
2024-04-27 19:20:52 +00:00
binary1248
34fde883b9
Replaced OpenAL with miniaudio.
...
Co-authored-by: Chris Thrasher <chrisjthrasher@gmail.com>
Co-authored-by: kimci86 <kimci86@hotmail.fr>
Co-authored-by: vittorioromeo <mail@vittorioromeo.com>
2024-04-25 10:24:11 +02:00
Chris Thrasher
4315c3d290
Revert change to Drawable::draw
function signature
...
This change was made in 359fe90
due to recommendations from tooling.
On its face this change makes sense since it removes a copy that
isn't always necessary. In practice it caused ergonomic issues due
to now being forced to make a copy of the render states when needed.
The performance gains of eliding this copy are unsubstantiated. We
have not done any profiling to measure its impact. For lack of such
measurements I'd rather err on the side of improved user experience.
If future benchmarks prove this copy is rather expensive then we
can reconsider removing it with that evidence in mind.
2024-04-18 13:18:49 +02:00
Chris Thrasher
d6e1961112
Ensure struct data members are given an initial value
...
While I don't suspect there are any uninitialize variable bugs
present, it's still good to err on the side of safety and provide
an initial value nonetheless.
2024-04-16 19:14:38 -06:00
Chris Thrasher
95a23c2d05
Add type trait tests for sf::SoundFileWriter
...
Other Audio module types get this same treatment so we ought to
also have a .test.cpp for this header.
2024-04-16 17:05:42 -06:00
Chris Thrasher
cb651c063c
Add tests for sf::SoundFileReader
2024-04-16 17:05:42 -06:00
Chris Thrasher
7bb97a85b1
Compile unit tests for iOS and Android
...
While you can't easily run these unit tests, it's easy enough to
still compile them so we don't need to go out of way to prohibit
this. CMake has some support for running tests on the target OS
so perhaps in the future we find a compelling way to run the test
suite on a mobile OS.
2024-04-13 11:49:45 -06:00
Chris Thrasher
30fcb3523c
Use loadIntoMemory
2024-04-12 11:49:11 -06:00
binary1248
7e1765717a
Fixed coverage data not being collected for MinGW builds because OpenCPPCoverage relies on pdb data being available.
2024-04-11 17:32:24 -06:00
Chris Thrasher
efcfaf06fb
Improve test coverage
2024-04-11 12:59:06 -06:00
binary1248
90fb07066b
Replaced Codecov with Coveralls.
2024-04-11 10:46:27 -06:00
Chris Thrasher
6eaf300918
constexpr
-fy sf::priv::Vector4
2024-04-11 09:05:28 -06:00
Chris Thrasher
f1bdacb57f
Add tests for sf::Glsl
types
2024-04-10 20:39:20 -06:00
Lukas Dürrenberger
e3b7d87373
Update Catch2 to v3.5.4
2024-04-10 19:17:11 -06:00
Chris Thrasher
49cf5058e5
Add more sf::Context
tests
2024-04-02 20:10:24 -05:00
Chris Thrasher
d7fb1bf0f6
Upgrade Catch2
2024-03-04 14:51:00 -07:00
Chris Thrasher
4967a4c28f
Add tests for sf::Texture::loadFromImage
2024-02-27 09:44:05 -07:00
vittorioromeo
23c26f9b70
Turn 'sf::Vertex' into an aggregate 'struct'
2024-02-19 16:44:06 +00:00
vittorioromeo
b552148e26
Header cleanup guided by IWYU
2024-02-09 12:52:23 +01:00
vittorioromeo
72d30e7beb
Update Catch2 to v3.5.2
2024-02-05 19:58:44 +01:00
vittorioromeo
ee13dfbd3b
'SoundFileFactory' implementation overhaul
2024-02-05 17:11:23 +01:00
vittorioromeo
4ff70c87d3
Self-contained '.inl' headers + minor refactoring
2024-02-05 13:45:01 +01:00
Kipernal
eb07e1e6c5
Added support for stencil testing.
...
Co-authored-by: binary1248 <binary1248@hotmail.com>
Co-authored-by: Chris Thrasher <chrisjthrasher@gmail.com>
2024-01-29 08:13:14 -07:00
Chris Thrasher
9022d9564d
Define character traits for std::uint8_t
...
Character traits are only standardized for character types of which
std::uint8_t is not. All major C++ implementations happen to define
this specialization but because it is not standard C++ they are
allowed to remove it as LLVM has done by deprecating this specialization
in LLVM 18. It is slated for removal in LLVM 19. To avoid compilation
errors and to get ahead of any deprecation warnings when LLVM 18 ships
we need to define our own std::uint8_t character traits.
SFML 4 will have access to C++20's std::u8string which should let us
remove this code.
2024-01-28 10:24:02 -07:00
kimci86
0d3c7f1c32
Make VertexBuffer::Usage a scoped enumeration
2024-01-27 15:31:30 -07:00
kimci86
b496877c90
Make BlendMode::Factor and BlendMode::Equation scoped enumerations
2024-01-27 15:31:30 -07:00
Corentin Schreiber
ebf485737f
Add texture coordinate type to sf::RenderStates
2024-01-25 23:45:00 -07:00
Chris Thrasher
a2c003b2b7
Add sf::State
for specifying fullscreen or floating windows
2024-01-15 23:08:33 -07:00
Chris Thrasher
43dc13c3de
Fix typo in sf::Vector3<T>
type trait tests
2024-01-14 19:19:37 -07:00
Chris Thrasher
4346b9a8bc
Remove unnecessary default destructor
...
sf::RenderWindow still inherits a virtual destructor from a base
class so there's no need to explicitly declare a virtual destructor.
I added a test to ensure this property was not broken.
2024-01-08 12:26:28 -07:00
Chris Thrasher
115344ecc3
Improve sf::Packet
test coverage
2023-12-31 14:17:55 -07:00
Chris Thrasher
f9a343290d
Add tests for sf::Ftp
2023-12-31 10:05:54 -07:00
kimci86
39da2b829c
Make Keyboard::Key a scoped enumeration
2023-12-22 10:47:30 -06:00
kimci86
ebf190b660
Make Joystick::Axis a scoped enumeration
2023-12-15 15:18:25 -07:00
kimci86
df2f56fe83
Make Cursor::Type a scoped enumeration
2023-12-15 15:18:25 -07:00
Chris Thrasher
ea42079da9
Update Catch2
...
https://github.com/catchorg/Catch2/releases/tag/v3.5.0
2023-12-10 19:40:28 -07:00
Chris Thrasher
7f5d87dcd5
Add move semantics to sf::Context
2023-12-09 10:27:57 -07:00
Chris Thrasher
cc5dc0f08c
Fix sf::Context::setActive
bug
2023-12-08 13:42:00 -07:00
Chris Thrasher
4e2f6ae655
Add more tests for sf::Context
2023-12-01 07:09:03 -07:00
Chris Thrasher
9b751899eb
Add tests for sf::InputSoundFile
2023-11-27 10:49:51 -05:00
Chris Thrasher
f3341359eb
Add tests for sf::SoundFileFactory
2023-11-26 19:53:07 -05:00
binary1248
5a2f30c5ae
Added support for scissor testing.
2023-11-20 11:01:33 -07:00
Chris Thrasher
08eca7c9a4
Default all sf::Font
special member functions
2023-11-18 20:52:17 -07:00
Chris Thrasher
daa1efcf05
Add tests for various loadFromStream()
functions
2023-11-16 10:03:29 -07:00
Chris Thrasher
9cb4a68c9a
Test class templates with multiple template types
2023-11-15 12:07:31 -07:00
Chris Thrasher
d3a79e6282
Add sf::Rect<T>::getCenter()
2023-11-15 09:30:01 -07:00
Chris Thrasher
0d4c34cf9b
Add tests for sf::Image::loadFromMemory
2023-11-15 10:55:07 +01:00
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