test


Log

Author Commit Date CI Message
Misa 3bf7994f 2021-09-27T14:38:12 Add and use `SDL_FALLTHROUGH` for fallthroughs Case fallthrough warnings can be suppressed using the __fallthrough__ compiler attribute. Unfortunately, not all compilers have this attribute, or even have __has_attribute to check if they have the __fallthrough__ attribute. [[fallthrough]] is also available in C++17 and the next C2x, but not everyone uses C++17 or C2x. So define the SDL_FALLTHROUGH macro to deal with those problems - if we are using C++17 or C2x, it expands to [[fallthrough]]; else if the compiler has __has_attribute and has the __fallthrough__ attribute, then it expands to __attribute__((__fallthrough__)); else it expands to an empty statement, with a /* fallthrough */ comment (it's a do {} while (0) statement, because users of this macro need to use a semicolon, because [[fallthrough]] and __attribute__((__fallthrough__)) require a semicolon). Clang before Clang 10 and GCC before GCC 7 have problems with using __attribute__ as a sole statement and warn about a "declaration not declaring anything", so fall back to using the /* fallthrough */ comment if we are using those older compiler versions. Applications using SDL are also free to use this macro (because it is defined in begin_code.h). All existing /* fallthrough */ comments have been replaced with this macro. Some of them were unnecessary because they were the last case in a switch; using SDL_FALLTHROUGH in those cases would result in a compile error on compilers that support __fallthrough__, for having a __attribute__((__fallthrough__)) statement that didn't immediately precede a case label.
Sam Lantinga abc12a83 2021-11-11T15:58:44 Revert "Add and use `SDL_FALLTHROUGH` for fallthroughs" This reverts commit 66a08aa3914a98667f212e79b4f0b9453203d656. This causes problems with older compilers: https://github.com/libsdl-org/SDL/pull/4791#issuecomment-966630997
Cameron Gutman fe09a493 2021-11-11T15:53:11 joystick: Add APIs to query rumble support
Misa 66a08aa3 2021-09-27T14:38:12 Add and use `SDL_FALLTHROUGH` for fallthroughs Case fallthrough warnings can be suppressed using the __fallthrough__ compiler attribute. Unfortunately, not all compilers have this attribute, or even have __has_attribute to check if they have the __fallthrough__ attribute. [[fallthrough]] is also available in C++17 and the next C2x, but not everyone uses C++17 or C2x. So define the SDL_FALLTHROUGH macro to deal with those problems - if we are using C++17 or C2x, it expands to [[fallthrough]]; else if the compiler has __has_attribute and has the __fallthrough__ attribute, then it expands to __attribute__((__fallthrough__)); else it expands to an empty statement, with a /* fallthrough */ comment (it's a do {} while (0) statement, because users of this macro need to use a semicolon, because [[fallthrough]] and __attribute__((__fallthrough__)) require a semicolon). Applications using SDL are also free to use this macro (because it is defined in begin_code.h). All existing /* fallthrough */ comments have been replaced with this macro. Some of them were unnecessary because they were the last case in a switch; using SDL_FALLTHROUGH in those cases would result in a compile error on compilers that support __fallthrough__, for having a __attribute__((__fallthrough__)) statement that didn't immediately precede a case label.
Sam Lantinga dc4c7d95 2021-11-10T09:48:49 Fixed infinite loop in SDL_vsnprintf() if the format string is too large for the output buffer Fixes https://github.com/libsdl-org/SDL/issues/4940
Eric Wasylishen 0d987936 2021-11-09T22:03:42 testwm2: Fix video modes menu hit detection when highdpi or logical size used (#4936) * SDLTest_CommonDrawWindowInfo: log SDL_RenderGetScale, SDL_RenderGetLogicalSize * testwm2: fix video modes menu hit detection in High DPI cases - also when logical size is specified, e.g. `--logical 640x480 --resizable --allow-highdpi` * add function to determine logical coordinates of renderer point when given window point * change since to the targeted milestone * fix typo * rename for consistency * Change logical coordinate type to float, since we can render with floating point precision. * add function to convert logical to window coordinates * testwm2: use new SDL_RenderWindowToLogical * SDL_render.c: alternate SDL_RenderWindowToLogical/SDL_RenderLogicalToWindow Co-authored-by: John Blat <johnblat64@protonmail.com> Co-authored-by: John Blat <47202511+johnblat64@users.noreply.github.com>
Sam Lantinga cdb4d8f2 2021-11-07T09:39:57 Added a test case for snprintf of 0.0 This verifies regressions in https://github.com/libsdl-org/SDL/issues/4795
Eric Wasylishen a0e055a7 2021-11-07T02:48:29 testwm2: add mode menu, click on a mode to call SDL_SetWindowDisplayMode
Sam Lantinga 35b0baaa 2021-11-06T19:25:06 Unfixed typo
Sam Lantinga 1d40c69a 2021-11-05T22:52:03 Fixed typo
Eddy Jansson e2ba84a5 2021-11-02T19:30:17 testtimer: Be more like the C90's.
Eddy Jansson 4ab7ee19 2021-11-02T18:58:06 testtimer: Add basic sanity check for SDL_GetTicks*()
Ryan C. Gordon d78cb9e9 2021-10-23T19:27:10 testtimer: added SDL_GetTicks64() calls.
Cameron Gutman 210713a6 2021-10-31T19:11:09 cmake: Work around bug in opengl32.lib detection on MSVC ARM64
Cameron Gutman 77141e84 2021-10-31T18:53:11 cmake: Fix test linking with MinGW
Cameron Gutman 618b0d41 2021-10-30T12:05:11 cmake: Remove SDL2_test_resources dummy hack It doesn't work properly on MSVC because the dummy target fails to link
Ozkan Sezer f3640e26 2021-10-31T08:47:00 tests: minor update to acinclude.m4::pkg.m4
Ozkan Sezer cc3fe1a1 2021-10-31T08:25:24 tests: don't fail configury if libunwind is not available.
Ozkan Sezer c4016277 2021-10-31T08:14:50 testsurround.c: remove unnecessary libc includes and stdint.h types
Ozkan Sezer e28e3993 2021-10-31T08:00:20 testsurround.c: add missing newline at end of file.
Cameron Gutman cd66c050 2021-10-29T01:11:59 testsurround: Add surround sound channel tester
Cameron Gutman 6b8e880a 2021-10-26T20:27:34 checkkeysthreads: Create a renderer for window display on Wayland Applies checkkeys patch from 105f1206 to checkkeysthreads.
Ozkan Sezer 7ac0c73a 2021-10-25T21:40:04 regenerated test/configure
David Gow c57bcb47 2021-10-23T14:46:03 test: Fix building with libunwind under autotools There are two issues which are stopping the SDL tests from building on my machine: - libunwind is not being linked - Even if it is, it is missing several symbols. The first is fixed by having the test programs link against libunwind if available. Technically, SDL2_test should be linking against it, as it's used in SDL_test_memory.c, but as SDL2_test is a static library, it can't itself import libunwind. We just assume that if it's present on the system, we should link it directly to the test programs. This should strictly be an improvement, as the only case where this'd fail is if SDL2 was compiled when libunwind was present, but the tests are being compiled without it, and that'd fail anyway. The second is fixed by #define-ing UNW_LOCAL_ONLY before including libunwind.h: this is required to make libunwind link to predicatable symbols, in what can only be described as a bit of a farce. There are a few more details in the libunwind man page, but the gist of it is that it disables support for "remote unwinding": unwinding stack frames in a different process (and possibly from a different architecture?): http://www.nongnu.org/libunwind/man/libunwind(3).html Note that I haven't tried this with CMake: I suspect that it'll work, though, as the CMakeLists.txt seems to have SDL2 link against libunwind if it's present. This adds an ugly extra dependency to SDL2, but does mean that issue 1 isn't present. The UNW_LOCAL_ONLY change shouldn't be build-system-specific.
Brick f30e2e43 2021-10-06T22:52:33 Fix compiler warnings in testvulkan.c MSVC gives the following warnings when compiling testvulkan.c: ``` testvulkan.c(656,1): warning C4018: '<': signed/unsigned mismatch testvulkan.c(656,1): warning C4018: '>': signed/unsigned mismatch testvulkan.c(660,1): warning C4018: '<': signed/unsigned mismatch testvulkan.c(660,1): warning C4018: '>': signed/unsigned mismatch ```
Sylvain decd1b4d 2021-09-23T22:28:45 testdraw2: display FPS similarly to testsprit2. fix helper syntax
Sam Lantinga 79b0aae8 2021-09-22T11:42:10 The return value of SDL_snprintf is the number of characters that would have been written. Fixes https://github.com/libsdl-org/SDL/issues/4762
Sam Lantinga 42ae9116 2021-09-22T10:01:42 Getting "(null)" when formatted printing NULL is a valid result
Sam Lantinga a4a9d284 2021-09-22T09:56:06 You may need to wait a bit for SDL_WarpMouseInWindow() to complete
Sam Lantinga 94a42af5 2021-09-22T09:49:41 Fixed the name of the verbose hints
Sam Lantinga b914bc39 2021-09-22T09:48:51 SDL_PIXELFORMAT_ARGB2101010 isn't fully supported for all surface conversion paths yet
Sam Lantinga e5d59fa7 2021-09-22T09:31:26 Fixed building testgles2 on Linux
Sam Lantinga eb3bf80f 2021-09-21T18:15:09 Fixed compiler warnings using Visual Studio 2019
Ozkan Sezer e55b8507 2021-09-20T23:50:02 minor tidy-up in os2 makefile for tests.
Ozkan Sezer e967f002 2021-09-10T00:01:20 testmouse.c: remove unused local var.
Cameron Cawley 83020658 2021-09-09T21:33:35 Add testmouse
Ozkan Sezer 2c6f52d1 2021-09-06T15:24:50 regenerate test/configure really with ac2.69
Simon McVittie 2e3a415b 2021-09-06T13:09:09 test: Use a static pattern rule to copy data to $(builddir) The version with an implicit pattern rule tended to fail if test/ was built in an "out-of-tree" build directory not below test/, for example: cd SDL mkdir _build-test ( cd _build-test; ../test/configure ) make -C _build-test as a result of the pattern rule first checking for axis.bmp, then for ../test/axis.bmp, then ../test/../test/axis.bmp, and so on until the maximum path length was reached. Note that this requires GNU make. The FreeBSD ports file for SDL seems to use GNU make (gmake) already, so presumably SDL's build system is already relying on GNU make extensions. Signed-off-by: Simon McVittie <smcv@debian.org>
Ozkan Sezer 9837a327 2021-09-06T14:55:40 regenerated test/configure
Simon McVittie 91ce6019 2021-09-06T10:40:23 test: Fix path used in AC_CONFIG_AUX_DIR AC_CONFIG_AUX_DIRS is an undocumented, internal version of AC_CONFIG_AUX_DIR that takes a whitespace-separated list, instead of a single path to add to the list. It also does not automatically treat the given path as being relative to the $srcdir, unlike the documented AC_CONFIG_AUX_DIR. Newer versions of autoconf treat the argument to AC_CONFIG_AUX_DIRS as being literal (they do not expand the shell variable), causing autoreconf to fail if $srcdir is explicitly specified. The argument to AC_CONFIG_AUX_DIR is checked relative to $srcdir anyway, so there is no need to specify $srcdir a second time. Resolves: https://github.com/libsdl-org/SDL/issues/4719 Signed-off-by: Simon McVittie <smcv@debian.org>
Ryan C. Gordon 79c7a171 2021-08-24T12:41:41 testvulkan: reformatted to more-closely match SDL coding conventions.
Lionel Landwerlin b073d275 2021-08-17T16:52:49 test/vulkan: fix/workaround validation errors
Ryan C. Gordon abba1811 2021-08-23T20:18:57 testvulkan: support multiple windows. Fixes #4363.
Ozkan Sezer f5c0cdea 2021-08-19T01:28:10 testgeometry.c: fix build in c89 mode
Sylvain bc2173ba 2021-04-06T21:49:23 Add testgeometry to draw a non uniform triangle --use-texture: an option to load icon.bmp as a texture handle mouse motion: rotate the triangle
Sylvain 53bcb3e0 2021-04-06T21:38:24 Add an option to 'testsprite2' to render slicing into triangles. [--use-rendergeometry mode1|mode2] mode1: Draw sprite2 as triangles that can be recombined as rect by software renderer mode2: Draw sprite2 as triangles that can *not* be recombined as rect by software renderer Use an 'indices' array
David Gow fbc36490 2021-08-14T22:29:05 Use the new SDL_clamp() macro where sensible There were a few places throughout the SDL code where values were clamped using SDL_min() and SDL_max(). Now that we have an SDL_clamp() macro, use this instead.
David Gow 105f1206 2021-08-13T21:25:35 checkkeys: Create a renderer for window display on Wayland On Wayland -- or at least on some Wayland implementations -- windows aren't shown until something has been rendered into them. For the 'checkkeys' test program, this means that keyboard input isn't registered, making the program rather useless. By creating a renderer and presenting once, the window is properly displayed, and the test behaves as it does under X11 (including XWayland). The exact same thing was done with testmessge in 1cd97e2695 (PR #4252)
Sam Lantinga cb1e20b0 2021-08-10T17:50:17 Added KMOD_SCROLL to track the scroll lock state Fixes https://github.com/libsdl-org/SDL/issues/4566
David Gow 773e1ba1 2021-08-08T11:00:07 testvulkan: Clamp the drawable size to the allowed range SDL_Vulkan_GetDrawableSize() doesn't always return a size which is within the Vulkan swapchain's allowed image extent range. (This happens on X11 a lot when resizing, which is bug #3287) Clamp the value we get back from SDL_Vulkan_GetDrawableSize() to this range. Given the range usually is just a single value, this is almost always equivalent to just using the min or max image extent, but this seems logically most correct.
Cameron Cawley 520bc713 2021-08-05T14:33:54 Fix typo in CMake target name
Sam Lantinga 9fdb0645 2021-08-04T11:33:28 Added support for the Joy-Con Charging Grip when SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS is enabled
Sam Lantinga 3d747078 2021-08-03T01:25:54 Run the renderer so Steam can find the main window
Sam Lantinga 8726f500 2021-08-03T01:10:48 Allow quitting controllermap if there are no controllers attached
Sam Lantinga 65ff00ec 2021-07-29T14:18:54 Query the rate for the correct sensor (thanks @meyraud705)
Sam Lantinga a186a503 2021-07-29T06:43:39 Added SDL_GameControllerGetSensorDataRate() to get the sensor update rate for a controller.
Sam Lantinga ce8261dd 2021-07-29T06:36:20 Only pump events once per frame and process all currently pending events If you continually poll for events it's possible that new events can come in while you're still processing the last one, delaying rendering. This is more likely with high update rate sensors.
Sam Lantinga 51c61d7c 2021-07-27T14:57:18 Run the entire Cocoa messagebox function on the main thread. This fixes bug https://github.com/libsdl-org/SDL/issues/4420
Sam Lantinga 7df6a9ea 2021-07-27T10:44:04 Add a test case for bug https://github.com/libsdl-org/SDL/issues/4469
Sam Lantinga 94b7a876 2021-07-24T09:10:18 Added SDL_GameControllerType enumerations for the Amazon Luna and Google Stadia controllers Fixes bug https://github.com/libsdl-org/SDL/issues/4019
Vladislav Dmitrievich Turbanov f9bf1aeb 2021-07-09T00:51:16 Latest Unifont with OFL is now bundled. (#4268) * * Latest Unifont with OFL is now bundled. * * Added a Unifont license file. Co-authored-by: Vladislav Dmitrievich Turbanov <vladislav@turbanov.ru>
Sam Lantinga d135c076 2021-07-08T13:22:41 Added SDL_GameControllerSendEffect() and SDL_JoystickSendEffect() to allow applications to send custom effects to the PS4 and PS5 controllers See testgamecontroller.c for an example of a custom PS5 trigger effect
Eric Wasylishen c33e3c15 2021-06-07T18:24:57 testwm2: draw various debug logging into the window itself Renderer output size, window position/size, display bounds, etc. Uses new SDLTest_CommonDrawWindowInfo function in test_common.
Sam Lantinga 64c40b90 2021-06-04T14:34:21 Updated copyright date
Ozkan Sezer 37b093ea 2021-06-05T00:05:56 test/checkkeysthreads: build fixes, and add to os2 makefile.
Francesco Abbate 0dd7024d 2021-03-12T21:58:20 Modifies WaitEvent and WaitEventTimeout to actually wait instead of polling When possible use native os functions to make a blocking call waiting for an incoming event. Previous behavior was to continuously poll the event queue with a small delay between each poll. The blocking call uses a new optional video driver event, WaitEventTimeout, if available. It is called only if an window already shown is available. If present the window is designated using the variable wakeup_window to receive a wakeup event if needed. The WaitEventTimeout function accept a timeout parameter. If positive the call will wait for an event or return if the timeout expired without any event. If the timeout is zero it will implement a polling behavior. If the timeout is negative the function will block indefinetely waiting for an event. To let the main thread sees events sent form a different thread a "wake-up" signal is sent to the main thread if the main thread is in a blocking state. The wake-up event is sent to the designated wakeup_window if present. The wake-up event is sent only if the PushEvent call is coming from a different thread. Before sending the wake-up event the ID of the thread making the blocking call is saved using the variable blocking_thread_id and it is compared to the current thread's id to decide if the wake-up event should be sent. Two new optional video device methods are introduced: WaitEventTimeout SendWakeupEvent in addition the mutex wakeup_lock which is defined and initialized but only for the drivers supporting the methods above. If the methods are not present the system behaves as previously performing a periodic polling of the events queue. The blocking call is disabled if a joystick or sensor is detected and falls back to previous behavior.
Ozkan Sezer 646ddfb7 2021-05-15T00:22:50 minor watcom build fixes.
Ozkan Sezer babd79b8 2021-04-14T23:20:40 bump minimum required autoconf version and revise autogen.sh
Ozkan Sezer 197cfcaf 2021-04-14T21:10:40 ran configure.ac through autoupdate-2.69 generated configure script is practically the same except for whitespace changes.
Ryan C. Gordon da667554 2021-04-01T12:20:04 Fixed up legacy MoinMoin URLs at wiki.libsdl.org Fixes #4064.
Ryan C. Gordon 2542977b 2021-04-01T12:15:28 Revert "Update wiki.libsdl.org urls to libsdl-org/SDL/wiki (#4069)" This reverts commit 82a96afa70212da94de758df859e94cccdb2c805. We ended up not moving to GitHub's wiki after all and built https://github.com/icculus/ghwikipp to fill the gap...since the wiki is back at https://wiki.libsdl.org/, put back the original URLs.
Christian Rauch 570768f6 2021-03-26T22:52:30 test: fix shadowing variables
Christian Rauch b972258d 2021-03-26T22:49:28 test: remove unused variables and typedefs
Christian Rauch 3f257045 2021-03-26T23:46:31 test: portable 64bit address format specifier
David Gow 1cd97e26 2021-03-29T18:12:33 testmessage: Create a renderer for window display on Wayland On Wayland -- or at least on some Wayland implementations -- windows aren't shown until something has been rendered into them. For the 'testmessage' test program, this means that the final messagebox (a modal one) is blocking an "invisible window", which can then be difficult to close. By creating a renderer and presenting once, the window is properly displayed, and the test behaves as it does under X11 (including XWayland).
Sam Lantinga 8b87b438 2021-03-26T13:01:06 Don't try to map the touchpad button, since we don't have any art for that at the moment.
Ozkan Sezer e5821bf2 2021-03-18T00:10:00 regenerated configure.
Vanfanel e6b87005 2021-03-17T20:10:31 Fix tests configuration and building when only GLVND full OpenGL implementation is present.
Ozkan Sezer 9d46bd25 2021-03-11T17:00:10 revert commit 81cdb1bb0de (unifont license issue.)
Ozkan Sezer 81cdb1bb 2021-03-04T18:32:32 test: add unifont-9.0.02.hex as a resource (so it works out-of-the-box) from a patchset by Vladislav Dmitrievich Turbanov: https://github.com/libsdl-org/SDL/pull/4062
Ozkan Sezer a52d0db5 2021-03-04T18:28:10 test/CMakeLists.txt: add OpenGL module checks and adjust dependencies. from a patchset by Vladislav Dmitrievich Turbanov: https://github.com/libsdl-org/SDL/pull/4062
Ozkan Sezer e7abf968 2021-03-04T18:28:04 test/CMakeLists.txt: bump cmake minimum required to 3.0 for consistency from a patchset by Vladislav Dmitrievich Turbanov: https://github.com/libsdl-org/SDL/pull/4062
Ozkan Sezer a29fe292 2021-02-18T20:10:50 configury: replace host checks against *-*-mingw32* with *-*-mingw*
Cameron Cawley 9323cd51 2021-02-16T18:14:13 Check for ARM SIMD in testplatform
Erik Yuzwa 82a96afa 2021-02-13T09:49:31 Update wiki.libsdl.org urls to libsdl-org/SDL/wiki (#4069)
Ryan C. Gordon 4ff51d29 2021-02-12T14:15:29 Deprecate SDL_GetRevisionNumber and update things for git instead of hg. Fixes #4063
Vladislav Dmitrievich Turbanov 31e8a462 2021-02-10T20:54:15 * Fixed closing the test window.
Cameron Gutman 6b057c67 2021-01-26T19:16:17 Expose separate keyboard and mouse grab support This adds SDL_SetWindowKeyboardGrab(), SDL_GetWindowKeyboardGrab(), SDL_SetWindowMouseGrab(), SDL_GetWindowMouseGrab(), and new SDL_WINDOW_KEYBOARD_GRABBED flag. It also updates the test harness to exercise this functionality and makes a minor fix to X11 that I missed in https://hg.libsdl.org/SDL/rev/02a2d609369b To fit in with this new support, SDL_WINDOW_INPUT_CAPTURE has been renamed to SDL_WINDOW_MOUSE_CAPTURE with the old name remaining as an alias for backwards compatibility with older code.
Ozkan Sezer d0c5097c 2021-01-23T03:41:02 minor autotools build system updates.
Sylvain Becker 4fbb9f31 2021-01-19T11:01:00 Fix declarations after statement
Sylvain Becker 0e7d435f 2021-01-19T10:40:42 Add basic testgles2_sdf program to demonstrate sign distance field with opengles2
Sam Lantinga c94283d4 2021-01-13T11:01:54 testgamecontroller: log which controller the event came from
Sam Lantinga 9130f7c3 2021-01-02T10:25:38 Updated copyright for 2021
Ozkan Sezer 88eaf356 2020-12-30T15:53:20 minor update to test/acinclude.m4 (pkg.m4)
Ozkan Sezer 5ed3d21f 2020-12-24T00:55:30 testsem.c: fix -Wmissing-braces warnings.
Joel Linn 2b040ceb 2020-12-23T13:36:23 Atomic test: Fix use after free SDL_SemPost() was called by the FIFO threads after the semaphore was freed because the main thread actually synchronized on the `writerRunning`/`readersRunning` count and not the semaphores itself.
Joel Linn 6267b951 2020-12-23T13:36:02 Semaphore test: Add overhead tests.
Joel Linn 95a6d4e8 2020-12-23T13:35:35 Semaphore test: Put test into separate function.
Ozkan Sezer 090fffac 2020-12-24T00:29:40 test/Makefile.os2: add warning switches to CFLAGS.
Ozkan Sezer 239c8f1f 2020-12-24T00:28:50 testvulkan.c: fix -Wmissing-braces warnings. also fix whitespace.