Giter Club home page Giter Club logo

gm-testframework's People

Contributors

adamborek avatar alphish avatar diasfranciscoa avatar gnysek avatar indibulous avatar ksuchitra532 avatar lukebrownyoyogames avatar yydan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gm-testframework's Issues

Refactor: Rework BasicSurfaceTestSuite to be more in-line with newer tests

Description

Currently BasicSurfaceTestSuite features only 2 facts containing many tests within them that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicSurfaceTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework BasicAudioTestSuite to be more in-line with newer tests

Description

BasicAudioTestSuite contains 4 facts at the moment, with multiple asserts per fact. This should be broken up into more facts to be more thorough.

Script Name

BasicAudioTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

BasicBase64TestSuite: Base64 function tests currently included in BasicBufferTestSuite should be moved to their own TestSuite

Description

BasicBufferTestSuite currently contains a variety of tests for the base64_encode and base64_decode functions, which have little relation to this TestSuite, and no other clear existing TestSuite they could fit into, so a new BasicBase64TestSuite should be made to put them into.

Steps To The Task

  • Create BasicBase64TestSuite
  • Move base64-related tests from BasicBufferTestSuite into it

ResourceAudioEmitterTestSuite: Create new TestSuite for testing audio emitter functionality

Description

A test suite should be developed and added to the framework to test the engine's audio emitter functionality, as it is currently missing from the framework.

Requirements

The project should be up to date with the 2024.6 release.

It should include tests that cover the following parts:

  • Emitter getters / setters
  • Linking emitter to bus
  • Emitter position
  • Emitter velocity
  • Emitter falloff
  • Emitter gain
  • Emitter pitch
  • Emitter listener mask
  • Playing sounds on emitters
  • Freeing emitters

Steps To The Task

  • Create a new test suite for testing audio emitters functionalities
  • Add facts / theories / asynchronous tests to test the required functions
  • Ensure tests are working correctly and are in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

ResourceAudioEffectsTestSuite: Expand test suite to include missing tests

Description

The test suite should be expanded to include missing tests

Requirements

The project should be up to date with the 2024.6 release.

It should cover the following:

  • Expanded list of AudioEffectTypes to test
  • New asserts for testing audio buses

Script Name

ResourceAudioEffectsTestSuite

Steps To The Task

  • Add required tests to the test suite
  • Ensure tests are working correctly and are in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

Refactor: Rework BasicDateTimeTestSuite to be more in-line with newer tests

Description

BasicDateTimeTestSuite contains 9 facts at the moment, with multiple asserts per fact. This should be broken up into more facts to be more thorough.

Script Name

BasicDateTimeTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

BasicShaderTestSuite: Create new TestSuite for testing shader functionality

Description

A test suite should be developed and added to the framework to test all core shader functionality, as this is an area of functionality that is currently missing from the framework.

Requirements

The project should be up to date with 2024.6 release.

It should include tests that cover the following:

  • General shader usage and interaction with GML
  • Functionality of all shader-related GML functions:
    • shader_get_name
    • shader_get_uniform
    • shader_get_sampler_index
    • shader_set
    • shader_set_uniform_f
    • shader_set_uniform_f_array
    • shader_set_uniform_f_buffer
    • shader_set_uniform_i
    • shader_set_uniform_i_array
    • shader_set_uniform_matrix
    • shader_set_uniform_matrix_array
    • shader_reset
    • shader_is_compiled
    • shaders_are_supported
    • shader_current
    • shader_enable_corner_id

Steps To The Task

  • Create a new test suite for testing shader functionalities
  • Add facts / theories to test the required functions and shader interactions
  • Ensure tests are working correctly and in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

Refactor: Rework BasicDataTypesTestSuite be more in-line with newer tests

Description

BasicDataTypesTestSuite contains 5 facts at the moment, with multiple asserts per fact. This should be broken up into more facts to be more thorough.

Script Name

BasicDataTypesTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework BasicMatrixTestSuite to be more in-line with newer tests

Description

Currently BasicMatrixTestSuite features several facts (matrix_build_test, matrix_get_set_test and matrix_stack_test) that contain a number of tests within them that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicMatrixTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

ResourceAudioListenerTestSuite: Create new TestSuite for testing audio listener functionality

Description

A test suite should be developed and added to the framework to test the engine's audio listener functionality, as it is currently missing from the framework.

Requirements

The project should be up to date with the 2024.6 release.

It should include tests that cover the following parts:

  • Listener getters / setters
  • Listener position
  • Listener velocity
  • Listener orientation
  • Listener info
  • Listener mask

Steps To The Task

  • Create a new test suite for testing audio listener functionalities
  • Add facts / theories / asynchronous tests to test the required functions
  • Ensure tests are working correctly and are in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

ResourceAudioGroupTestSuite: Create new TestSuite for testing audio group functionality

Description

A test suite should be developed and added to the framework to test the engine's audio group functionality, as it is currently missing from the framework.

Requirements

The project should be up to date with the 2024.6 release.

It should include tests that cover the following parts:

  • Audio group names
  • Audio group assets
  • Sound's audio group
  • Loading / unloading audio groups
  • Stopping audio group
  • Audio group gain

Steps To The Task

  • Create a new test suite for testing audio group functionalities
  • Add facts / theories / asynchronous tests to test the required functions
  • Ensure tests are working correctly and are in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

Refactor: Rework ResourceAudioEffectsTestSuite to be more in-line with newer tests

Description

Currently ResourceAudioEffectsTestSuite features several facts that contains a number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

ResourceAudioEffectsTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Bug: Cannot access sound instance after being stopped

Description

During the creation of the basic audio test suite, there was a bug at the time where voices which had finished playing uncompressed sounds were still considered 'active'. Testing the audio gain over time was designed to start a sound, apply gain over time, then check the gain after the sound has ended. This worked at the time, but it was the unintended behaviour, and I was not aware of the bug. Now that it has been fixed, and it made it into the latest beta, the test suite does not work as intended.

This can be fixed by instead of checking the sound's gain after it ended, doing a check on its gain after some time.

Expected Change

Audio gain over time test to work properly

Script Name

BasicAudioTestSuite

Fact/Assert Name

Audio gain over time test

How reliably does this issue happen?

Always

BasicTilemapTestSuite: Create new TestSuite for testing Tilemap functionality

Description

A test suite should be developed and added to the framework to test tilemap functionality, as this is an area of functionality that is currently missing from the framework.

Requirements

The project should be up to date with 2024.4 release.

It should include facts/theories/testAsyncs that cover the following functions:

  • layer_tilemap_get_id
  • layer_tilemap_exists
  • layer_tilemap_create
  • layer_tilemap_destroy
  • tilemap_tileset
  • tilemap_clear
  • tilemap_x
  • tilemap_y
  • tilemap_set
  • tilemap_set_at_pixel
  • tilemap_set_mask
  • tilemap_set_global_mask
  • tilemap_set_width
  • tilemap_set_height
  • tilemap_get_mask
  • tilemap_get_global_mask
  • tilemap_get_tileset
  • tilemap_get_frame
  • tilemap_get_tile_width
  • tilemap_get_tile_height
  • tilemap_get_width
  • tilemap_get_height
  • tilemap_get_x
  • tilemap_get_y
  • tilemap_get
  • tilemap_get_at_pixel
  • tilemap_get_cell_x_at_pixel
  • tilemap_get_cell_y_at_pixel
  • draw_tilemap
  • tile_get_empty
  • tile_get_index
  • tile_get_flip
  • tile_get_mirror
  • tile_get_rotate
  • tile_set_empty
  • tile_set_index
  • tile_set_flip
  • tile_set_mirror
  • tile_set_rotate
  • draw_tile

These facts/theories/testAsyncs should test the functions in their expected use case, as well as how they handle invalid arguments.

Steps To The Task

  • Create new testSuite "BasicTilemapTestSuite"
  • Add facts/theories/testAsyncs to test the required functions. Most of these will include the following steps:
    • Create a layer and tilemap to use for the test
    • Test get function in core use case
    • Test get function with invalid arguments
    • Test set function in core use case
    • Test set function with invalid arguments
    • Destroy layer and tilemap
  • Ensure tests are working correctly and in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

Refactor: Rework BasicDataStructuresMapTestSuite to be more in-line with newer tests

Description

BasicDataStructuresMapTestSuite contains 7 facts at the moment, with multiple asserts per fact. This should be broken up into more facts to be more thorough.

Script Name

BasicDataStructuresMapTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework BasicScriptTestSuite to be more in-line with newer tests

Description

Currently BasicScriptTestSuite features one fact (script_execute_ext_test) that contains a number of tests within it that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicScriptTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework BasicFiltersEffectsTestSuite to be more in-line with newer tests

Description

Currently BasicFiltersEffectsTestSuite features several facts that contains a number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicFiltersEffectsTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

config.json is missing

While xUnit.yyp mentions config.json among included files, it's missing, while it's crucial to run tests.

{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"config.json","CopyToMask":3035426170322551022,"filePath":"datafiles",},

I've tried to change ConfigManager.loadFromFile function so it logs warning instead of error and returns nothing if file not found, but in most places where config_get("$$xxx$$") is used, there's no handling of undefined value to give default one, so whole app still crashes.

Docs: Thoughts on unification of the utility language?

Hello.

Do you have plans to unify scripting language of non-GML part of the project? Right now, NodeJS and Python are solving problems that are not so specific that you can't use just one, making distribution easier.

Thank you in advance.

Refactor: Rework BasicFileTestSuite to be more in-line with newer tests

Description

BasicFileTestSuite contains 10 facts at the moment, with multiple asserts per fact. This should be broken up into more facts to be more thorough.

Script Name

BasicFileTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework BasicJsonTestSuite to be more in-line with newer tests

Description

Currently BasicJsonTestSuite features several facts that contains a number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicJsonTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework BasicStringTestSuite to be more in-line with newer tests

Description

Currently BasicStringTestSuite features several facts that contains a large number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicStringTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework ResourceAudioGroupsTestSuite to be more in-line with newer tests

Description

Currently ResourceAudioGroupsTestSuite features several facts that contains a number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

ResourceAudioGroupsTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Extend string_concat() and string_join() to test combinations of strings with variables

Description

There was recently an issue, in which string_concat, and string_join, were failing under very specific condition - if penultimate argument was a variable name, and last argument was a literal string - YoYoGames/GameMaker-Bugs#6480 .

Basic idea is to extend BasicStringTestSuite for those functions (and their _ext versions, to include such specific cases too.

Steps To The Task

  • string_concat, string_concat_ext - 1st arg is variable, 2nd arg is string
  • string_concat, string_concat_ext - 1st arg is string, 2nd arg is variable
  • string_join, string_join_ext - 2nd arg is variable, 3rd arg is string
  • string_join, string_join_ext - 2nd arg is string, 3rd arg is variable

Bug: Strange bug in "Time Sources: Expiry Frames" in ResourceTimeSourceTestSuite causes it to get stuck until expiring, only when running after BasicVariableTestSuite

Description

Currently when running the Test Framework, it will get stuck on the fact "Time Sources: Expiry Frames" in ResourceTimeSourceTestSuite for a minute until it expires, causing the framework to take significantly longer to run than it would otherwise.

image

This seems to only occur when ResourceTimeSourceTestSuite is run after BasicVariableTestSuite, as when BasicVariableTestSuite is commented out or moved after, the fact will run and pass as normal.

Cause of the Issue

The exceptions listed in the test results after the test expires suggest the reason it gets stuck is due to the generateRandomConfigWithExpiryFrame() constructor function not generating a valid struct to be inputted into time_source_create on line 379 of ResourceTimeSourceTestSuite, however as far as I can tell there are no errors with the code in generateRandomConfigWithExpiryFrame() that should cause this.

image

image

Where it gets even weirder, is its connection to BasicVariableTestSuite. Specifically, it seems to be the "builtin_constant_varnames_test" fact within BasicVariableTestSuite that causes this issue - commenting out a large amount of the entries in the input struct within it will stop the issue from happening, despite this seemingly having no connection to ResourceTimeSourceTestSuite. Additionally, commenting out any set of entries within the input struct seems to work, as long as it's around over 108 of them, suggesting it's linked somehow to the size of the struct, rather than it's contents:

image
image
(^ Had to comment out all the lines in and between these screenshots for it to work)

I haven't been able to pinpoint the exact cause or reproduce the issue outside of the Test Framework yet, but it seems more likely an actual gamemaker bug, rather than a bug with the framework. The main reason it was reported here is because a temporary fix should be put in place to stop the large run time increase this causes.

Expected Change

For now, moving BasicVariableTestSuite after ResourceTimeSourceTestSuite should temporarily solve the issue - but this bug should be looked into further to figure out exactly what's causing it.

Script Name

BasicVariableTestSuite/ResourceTimeSourceTestSuite

Fact/Assert Name

"Time Sources: Expiry Frames"/"builtin_constant_varnames_test"

How reliably does this issue happen?

Always

ResourceAudioBufferTestSuite: Create new TestSuite for testing audio buffer functionality

Description

A test suite should be developed and added to the framework to test the engine's audio buffer functionality, as it is currently missing from the framework.

Requirements

The project should be up to date with the 2024.6 release.

It should include tests that cover the following parts:

  • Buffer sound functionalities
  • Queue functionality
  • Recording functionality

Steps To The Task

  • Create a new test suite for testing audio buffer functionalities
  • Add facts / theories / asynchronous tests to test the required functions
  • Ensure tests are working correctly and are in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

BasicAudioTestSuite: Create new TestSuite for testing audio functionality

Description

A test suite should be developed and added to the framework to test basic aspects of audio functionality, as it is currently missing from the framework.

Requirements

The project should be up to date with the 2024.6 release.

It should include tests that cover the following parts:

  • Audio getters / setters
  • Audio assets
  • Audio playback functions
  • Audio gain
  • Audio pitch
  • Audio track position
  • Streamed audio

Steps To The Task

  • Create a new test suite for testing basic audio functionalities
  • Add facts / theories / asynchronous tests to test the required functions
  • Ensure tests are working correctly and are in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

Refactor: Rework BasicArrayTestSuite to be more in-line with newer tests

Description

BasicArrayTestSuite contains 32 facts at the moment, with multiple asserts per fact. This should be broken up into more facts to be more thorough.

Script Name

BasicArrayTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework BasicRandomTestSuite to be more in-line with newer tests

Description

Currently BasicRandomTestSuite features several facts that contains a number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicRandomTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

BasicVariableTestSuite: Add new tests / clean up to match 2024.4 release

Description

Couple changes to the BasicVariableTestSuite script

Additions

Global variable get names test
A test that checks whether global variables' names are correct once they are added to the list of global variables.

Global variable name count test
A test that checks whether the count of global variables is the correct one, once a bunch of new ones have been added.

Adding more global built-in variables to test
The list of global built-in variables is incomplete in "builtin_constant_varnames_test", the rest of them should be added.

Cleanups
Some of the tests do not clean up / remove the variables that were added to the list of global variables during testing, these should be removed once the test is done.

Script Name

BasicVariableTestSuite

Steps To The Task

Global variables get names test

  1. Create new fact inside BasicVariableTestSuite
  2. Create a bunch of new variables with different names
  3. Loop through global variables and check if they are all there with their expected names
  4. Delete variables that were added for testing

Global variables name count test

  1. Create new fact inside BasicVariableTestSuite
  2. Create a bunch of new variables with different names
  3. Check if the right amount of variables have been added
  4. Delete variables that were added for testing

Adding more global built-in variables

  • List of variables with different prefixes that have been identified as missing:
  1. ev_boundary_
  2. bboxkind_
  3. bboxmode_
  4. dll_
  5. gamespeed_
  6. m_
  7. matrix_
  8. network_
  9. phy_
  10. seqtextkey_
  11. spritespeed_
  12. surface_
  13. texturegroup_
  14. tile_
  15. time_
  16. timezone_
  17. tm_
  18. ty_
  19. video_format_
  20. video_status_

Cleanups

  • Remove structs that have been added during testing in these tests (and make sure they are removed in the new ones as well):
  1. variable_global_set_get_tests

BasicShaderUniformsTestSuite: Create new TestSuite for testing gamemaker-specific built-in shader uniforms

Description

A test suite should be developed and added to the framework to test the functionality of all gamemaker-specific built-in shader uniforms and constants mentioned on the Shader Constants manual page, as this is an area of functionality that is currently missing from the framework.

These tests were initially intended to be included in the BasicShaderTestSuite proposed in #59 but ended up taking up a sufficiently large amount of an already very large test suite that it made more sense to move them to their own test suite instead, in order to improve readability and granularity of tests.

Requirements

The project should be up to date with 2024.6 release.

It should include tests that cover the following Gamemaker-specific built-in shader uniforms/constants:

  • MATRIX_VIEW
  • MATRIX_PROJECTION
  • MATRIX_WORLD
  • MATRIX_WORLD_VIEW
  • MATRIX_WORLD_VIEW_PROJECTION
  • MATRIX_MAX
  • MAX_VS_LIGHTS
  • gm_Matrices[matrix]
  • gm_LightingEnabled
  • gm_Lights_Direction[]
  • gm_Lights_PosRange[]
  • gm_Lights_Colour
  • gm_AmbientColour
  • gm_FogStart
  • gm_RcpFogRange
  • gm_PS_FogEnabled
  • gm_FogColour
  • gm_VS_FogEnabled
  • gm_AlphaTestEnabled
  • gm_AlphaRefValue

Steps To The Task

  • Create a new test suite for testing built-in shader uniforms/constants
  • Add facts / theories to test the required uniforms/constants
  • Ensure tests are working correctly and in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the
  • Any errors with the framework itself should be reported as issues within this repository

Framework Improvement: TestAsync object with helper functions for buffer comparisons when testing draw functions

Description

In order to make creating tests for draw functions faster and easier, an object should be created that inherits from objTestAsync, and contains functions that can be used to save whatever has been drawn during a test, and compare it against a saved buffer to validate that it's working successfully.

Requirements

The object, called something like objTestAsyncDraw, should be able to be used in testAsyncs to allow access to these buffer comparison helper functions.

There should be 2 helper functions: one that creates a surface to begin drawing to, as well as taking in a test name string used to identify files related to the test; and another to stop drawing to that surface, save the surface to a buffer, and compare the buffer against a file using the name supplied in the first function. (It would also be helpful to have this second function output the resulting buffer as a file, as well as the surface as an image file, both using the test name, to allow manual verification, and easy creation of new buffers to compare against.)

Steps To The Task

  • Create objTestAsyncDraw object, inheriting from objTestAsync
  • Add the two helper functions described above (as well as any necessary variables) into its Create event
  • Test that it works by using it in a testAsync that involves drawing

ResourceAudioSynchronisationTestSuite: Create new TestSuite for testing audio synchronisation functionality

Description

A test suite should be developed and added to the framework to test the engine's audio synchronisation functionality, as it is currently missing from the framework.

Requirements

The project should be up to date with the 2024.6 release.

It should include tests that cover the following parts:

  • Creating sync groups
  • Playback functionalities for sync groups
  • Sync group track position
  • Destroying sync groups

Steps To The Task

  • Create a new test suite for testing audio synchronisation functionalities
  • Add facts / theories / asynchronous tests to test the required functions
  • Ensure tests are working correctly and are in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

Refactor: Rework BasicBufferTestSuite to be more in-line with newer tests

Description

Currently BasicBufferTestSuite features several facts that contains a number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicBufferTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: rework how audio assets stored and handled in BasicAudioTestSuite

Description

Currently the array of audio assets that get tested are stored as a global variable. The proposed refactor changes this into a function that returns an array of audio assets that are to be tested.

Script Name

BasicAudioTestSuite

Steps To The Task

  • Delete global variable declaration in BasicAudioTestSuite
  • Create the getter function for the audio assets
  • Replace references of the old global variable in the script with the getter function

Refactor: Rework ResourceAudioListenersTestSuite to be more in-line with newer tests

Description

Currently ResourceAudioListenersTestSuite features several facts that contains a number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

ResourceAudioListenersTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework BasicIniTestSuite to be more in-line with newer tests

Description

Currently BasicIniTestSuite features only 2 facts containing many tests within them that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

BasicIniTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

Refactor: Rework ResourceAudioEmittersTestSuite to be more in-line with newer tests

Description

Currently ResourceAudioEmittersTestSuite features several facts that contains a number of tests within them, that could benefit from being split up into their own facts, as well as adding some comments and updating the assert descriptions.

Script Name

ResourceAudioEmittersTestSuite

Steps To The Task

  • Split up all tests within existing facts into their own facts
  • Add comments
  • Update assert descriptions

BasicDataTypesTestSuite: Add more tests / clean up test suite

Description

Couple changes to the BasicDataTypesTestSuite script

Additions

Type conversions:

  • Add more asserts to bool type conversions
  • Add more asserts to int64 type conversions
  • Add more asserts to string type conversions
  • Add more asserts to real type conversions
  • Add more asserts to pointer type conversions

Type checking:

  • Add theory for is_string() type checks
  • Add theory for is_undefined() type checks

Clean ups

  • Match input and output variable names in the int64 type conversion test to match all other tests

Script Name

BasicDataTypesTestSuite

Steps To The Task

  • Add remaining asserts to type conversions
  • Add tests for remaining type checks
  • Clean up code

BasicNameofTestSuite to test if nameof() returns proper values

Description

As there seems to be bug in name() when using enums in 2024.6 (their values are returned instead of their name), I've added test which should check if that really occurs for selected runtime.

Steps To The Task

  • add tests for nameof() for enums
  • add tests for nameof() for global, macro and local variables

Testing PRs from forks

Description

A simple test of CI when submitting PRs from external forks. This will be a quick, nonsense addition that I will remove later on.

ResourceAudioLoopPointsTestSuite: Create new TestSuite for testing audio loop points functionality

Description

A test suite should be developed and added to the framework to test the engine's audio loop points functionality, as it is currently missing from the framework.

Requirements

The project should be up to date with the 2024.6 release.

It should include tests that cover the following parts:

  • Audio loop getters / setters
  • Enabling / disabling loops

Steps To The Task

  • Create a new test suite for testing audio loop points functionalities
  • Add facts / theories / asynchronous tests to test the required functions
  • Ensure tests are working correctly and are in-line with documentation
  • Any errors discovered in GameMaker functionality or documentation during development should be reported as issues in the GameMaker-Bugs repository
  • Any errors with the framework itself should be reported as issues within this repository

How to make a test between rooms

I am making a test for my games to see if a object is persistent between rooms, i am trying to see examples in the project but it appear that there is no way to test between rooms.

Docs: Request for providing xUnit project as a GML extension also

Hi folks! So the unit test framework you're using in this repo is amazing, and its exactly what I tried spending a few months implementing. Since this one is far more feature-complete, I wanted to formally request a "copy" of this framework that could be installed as a GML extension.

I could try converting this into an extension myself, of course, but I wanted to open this issue first in case there were any plans on YYG's end to give it a shot.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.