mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
68 lines
3.5 KiB
Markdown
Executable File
68 lines
3.5 KiB
Markdown
Executable File
# spine-cpp-unit-tests
|
|
|
|
The spine-cpp-unit-tests project is to test the [spine](http://esotericsoftware.com) skeletal animation system. It does not perform rendering. It is primarily used for regression testing and leak detection. It is designed to be run from a Continuous Integration server and to passively verify changes automatically on check-in.
|
|
|
|
## Mini CPP Unit Testing
|
|
[MiniCppUnit](https://sourceforge.net/p/minicppunit/wiki/Home/) is a minimal unit testing framework similar to JUnit. It is used here to avoid large dependancies.
|
|
|
|
Tests are sorted into Suites, Fixtures and Cases. There is one suite, it contains many fixtures and each fixture contains test cases. To turn off a fixture, edit "TestOptions.h". To turn off specific test cases, comment out the TEST_CASE() line in the fixture's header.
|
|
|
|
## Memory Leak Detection
|
|
This project includes a very minimal memory leak detector. It is based roughly on the leak detector in the [Popcap Framework](https://sourceforge.net/projects/popcapframework/?source=directory), but has been modified over the years.
|
|
|
|
## Continuous Integration
|
|
The test runner includes the ability to format output messages to signal a CI server. An example interface for [Teamcity](https://www.jetbrains.com/teamcity/) is included. To implement for another server, determine the wireformat for the messages and duplicate/edit the teamcity_messages class. [Teamcity Wire Format](https://confluence.jetbrains.com/display/TCD10/Build+Script+Interaction+with+TeamCity)
|
|
|
|
### Trigger
|
|
Your CI server should trigger on VCS check-in.
|
|
|
|
### CMake Build Step
|
|
The first build step for the CI server should be to run CMake on the 'spine-cpp-unit-tests' folder. Follow the usage directions below.
|
|
|
|
### Compile Build Step
|
|
This build step should not execute if the previous step did not successfully complete.
|
|
Depending on the test agent build environment, you should build the output solution or project from the cmake step. Debug is fine.
|
|
|
|
### Test Runner Build Step
|
|
This build step should not execute if the previous step did not successfully complete.
|
|
Again, depending on the test agent build environment, you should have produced an executable. Run this executable.
|
|
|
|
|
|
## Usage
|
|
Make sure [CMake](https://cmake.org/download/) is installed.
|
|
|
|
Create a 'build' directory in the 'spine-cpp-unit-tests' folder. Then switch to that folder and execute cmake:
|
|
|
|
mkdir build
|
|
cd build
|
|
cmake ..
|
|
|
|
### Win32 build
|
|
msbuild spine_unit_test.sln /t:spine_unit_test /p:Configuration="Debug" /p:Platform="Win32"
|
|
|
|
|
|
## Licensing
|
|
This spine Runtime may only be used for personal or internal use, typically to evaluate spine before purchasing. If you would like to incorporate a spine Runtime into your applications, distribute software containing a spine Runtime, or modify a spine Runtime, then you will need a valid [spine license](https://esotericsoftware.com/spine-purchase). Please see the [spine Runtimes Software License](https://github.com/EsotericSoftware/spine-runtimes/blob/master/LICENSE) for detailed information.
|
|
|
|
The spine Runtimes are developed with the intent to be used with data exported from spine. By purchasing spine, `Section 2` of the [spine Software License](https://esotericsoftware.com/files/license.txt) grants the right to create and distribute derivative works of the spine Runtimes.
|
|
|
|
original "walk"": 330
|
|
second "walk": 0d0
|
|
|
|
queue interrupt for original walk
|
|
queue start for second walk
|
|
drain interrupt and start
|
|
|
|
0d0 is interrupted
|
|
0d0 is ended
|
|
|
|
"run": 0c0
|
|
0d0 is interrupted
|
|
second walk becomes mixingFrom of run
|
|
0c0 is started
|
|
|
|
queue is drained
|
|
|
|
first walk: 6f0
|
|
second walk: 9c0
|