mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-11-05 06:14:36 +00:00
279277b18c
* Initial test suite * Fix some build warnings * Implemented working unit tests with coverage * Reduced some warnings * Fix a mac-specific issue * Add 2 additional unit test classes. * Multiple new unit tests * Some fixins * Remove auto-generated file * WIP on hiding ignored tests * Added list of debug hotkeys * Remove old website * Remove empty file * Add more unit tests * Fix bug where arrows would nudge BF * Fix bug where ctrl/alt would flash capsules * Fixed bug where bf-old easter egg broke * Remove duplicate lines * More test-related stuff * Some code cleanup * Add mocking and a test assets folder * More TESTS! * Update Hmm... * Update artist on Monster * More minor fixes to individual functions * 1.38% unit test coverage! * Even more tests? :O * More unit test work * Rework migration for BaseRegistry * gameover fix * Fix an issue with Lime * Fix issues with version parsing on data files * 100 total unit tests! * Added even MORE unit tests! * Additional test tweaks :3 * Fixed tests on windows by updating libraries. * A bunch of smaller syntax tweaks. * New crash handler catches and logs critical errors! * Chart editor now has null safety enabled. * Null safety on all tests * New Level data test * Generate proper code coverage reports! * Disable null safety on ChartEditorState for unit testing * Update openfl to use latest fixes for crash reporting * Added unit test to Github Workflow * Updated unit tests to compile with null safety enabled by inlining assertions. * Added coverage gutters as a recommended extension * Impreovements to tests involving exceptions * Disable a few incomplete tests. * Add scripts for building unit coverage reports on linux --------- Co-authored-by: Cameron Taylor <cameron.taylor.ninja@gmail.com>
105 lines
5.2 KiB
XML
105 lines
5.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<project
|
|
xmlns="http://lime.software/project/1.0.2"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://lime.software/project/1.0.2 http://lime.software/xsd/project-1.0.2.xsd">
|
|
|
|
<meta title="FunkinUnitTests" version="1.0.0" />
|
|
<app file="TestMain" main="TestMain" />
|
|
|
|
<!-- Test sources -->
|
|
<source path="source" />
|
|
|
|
<!-- Funkin' sources -->
|
|
<source path="../../source" />
|
|
|
|
<!-- Funkin' dependencies -->
|
|
<haxelib name="lime" /> <!-- Game engine -->
|
|
<haxelib name="openfl" /> <!-- Game engine -->
|
|
<haxelib name="flixel" /> <!-- Game engine -->
|
|
<haxelib name="flixel-addons" /> <!-- Additional utilities for Flixel -->
|
|
<haxelib name="hscript" /> <!-- Scripting -->
|
|
<haxelib name="flixel-ui" /> <!-- UI framework (deprecate this? -->
|
|
<haxelib name="haxeui-core" /> <!-- UI framework -->
|
|
<haxelib name="haxeui-flixel" /> <!-- Integrate HaxeUI with Flixel -->
|
|
<haxelib name="polymod" /> <!-- Modding framework -->
|
|
<haxelib name="flxanimate" /> <!-- Texture atlas rendering -->
|
|
<haxelib name="hxCodec" /> <!-- Video playback -->
|
|
<haxelib name="thx.semver" /> <!-- Semantic version handling -->
|
|
<haxelib name="json2object" /> <!-- JSON parsing -->
|
|
<haxelib name="tink_json" /> <!-- JSON parsing -->
|
|
|
|
<!-- Test dependencies -->
|
|
<haxelib name="munit" /> <!-- Unit test execution -->
|
|
<haxelib name="mcover" /> <!-- Code coverage -->
|
|
<haxelib name="mockatoo" /> <!-- Mocking -->
|
|
<haxelib name="hamcrest" /> <!-- Assertions/matching -->
|
|
|
|
<!-- This macro allows addition of new functionality to existing Flixel. -->
|
|
<haxeflag name="--macro" value="addMetadata('@:build(funkin.util.macro.FlxMacro.buildFlxBasic())', 'flixel.FlxBasic')" />
|
|
<!-- Macros to satisfy null safety (null safety can't check nested functions, so assertions must be inlined) -->
|
|
<haxeflag name="--macro" value="addMetadata('@:build(funkin.util.macro.InlineMacro.makeInline(\'fail\', true))', 'massive.munit.Assert')" />
|
|
<haxeflag name="--macro" value="addMetadata('@:build(funkin.util.macro.InlineMacro.makeInline(\'isNotNull\', true))', 'massive.munit.Assert')" />
|
|
|
|
<!-- Assets -->
|
|
<assets path="assets/preload" rename="assets" exclude="*.ogg" if="web" />
|
|
<assets path="assets/preload" rename="assets" exclude="*.mp3" unless="web" />
|
|
<!--
|
|
<assets path="assets/songs" library="songs" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/songs" library="songs" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/shared" library="shared" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/shared" library="shared" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/tutorial" library="tutorial" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/tutorial" library="tutorial" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/week1" library="week1" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/week1" library="week1" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/week2" library="week2" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/week2" library="week2" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/week3" library="week3" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/week3" library="week3" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/week4" library="week4" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/week4" library="week4" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/week5" library="week5" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/week5" library="week5" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/week6" library="week6" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/week6" library="week6" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/week7" library="week7" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/week7" library="week7" exclude="*.fla|*.mp3" unless="web" />
|
|
<assets path="assets/weekend1" library="weekend1" exclude="*.fla|*.ogg" if="web" />
|
|
<assets path="assets/weekend1" library="weekend1" exclude="*.fla|*.mp3" unless="web" />
|
|
<library name="songs" preload="true" />
|
|
<library name="shared" preload="true" />
|
|
<library name="tutorial" preload="true" />
|
|
<library name="week1" preload="true" />
|
|
<library name="week2" preload="true" />
|
|
<library name="week3" preload="true" />
|
|
<library name="week4" preload="true" />
|
|
<library name="week5" preload="true" />
|
|
<library name="week6" preload="true" />
|
|
<library name="week7" preload="true" />
|
|
<library name="weekend1" preload="true" />
|
|
-->
|
|
|
|
<!-- Test defines -->
|
|
<set name="no-custom-backend" />
|
|
<set name="unit-test" />
|
|
<haxedef name="FLX_UNIT_TEST" />
|
|
<haxedef name="FLX_RECORD" />
|
|
|
|
<!-- Clean up the output -->
|
|
<haxedef name="no-traces" />
|
|
<!--
|
|
-->
|
|
<haxedef name="ignore-inline" />
|
|
<haxeflag name="-w" value="-WDeprecated" />
|
|
|
|
<!-- Manually set up code coverage (because munit report and lime test are mutually exclusive) -->
|
|
<haxeflag name="--macro" value="mcover.MCover.coverage(['funkin'],['../../source', 'source/'],[''])" />
|
|
<haxelib name="mcover" />
|
|
<haxedef name="MCOVER" />
|
|
<haxedef name="safeMode"/>
|
|
<haxedef name="HXCPP_CHECK_POINTER" />
|
|
<haxedef name="HXCPP_STACK_LINE" />
|
|
<haxedef name="HXCPP_STACK_TRACE" />
|
|
</project>
|