mirror of
https://github.com/Facepunch/sbox-public.git
synced 2025-12-23 22:48:07 -05:00
* Stop generating solutions via -test flag add -generatesolution * Add TestAppSystem remove Application.InitUnitTest Avoids some hacks and also makes sure our tests are as close to a real AppSystem as possible. * Add shutdown unit test shuts down an re-inits the engine * Properly dispose native resources hold by managed during shutdown Should fix a bunch of crashes * Fix filesystem and networking tests * StandaloneTest does proper Game Close * Make sure package tests clean up properly * Make sure menu scene and resources are released on shutdown * Report leaked scenes on shutdown * Ensure DestroyImmediate is not used on scenes * Fix unmounting in unit tests not clearing native refs * Force destroy native resource on ResourceLib Clear
35 lines
962 B
C#
35 lines
962 B
C#
using System;
|
|
using System.Runtime;
|
|
|
|
namespace Sandbox;
|
|
|
|
public class TestAppSystem : AppSystem
|
|
{
|
|
public override void Init()
|
|
{
|
|
GCSettings.LatencyMode = GCLatencyMode.SustainedLowLatency;
|
|
var GameFolder = System.Environment.GetEnvironmentVariable( "FACEPUNCH_ENGINE", EnvironmentVariableTarget.Process );
|
|
if ( GameFolder is null ) throw new Exception( "FACEPUNCH_ENGINE not found" );
|
|
|
|
NetCore.InitializeInterop( GameFolder );
|
|
|
|
var nativeDllPath = $"{GameFolder}\\bin\\win64\\";
|
|
//
|
|
// Put our native dll path first so that when looking up native dlls we'll
|
|
// always use the ones from our folder first
|
|
//
|
|
var path = System.Environment.GetEnvironmentVariable( "PATH" );
|
|
path = $"{nativeDllPath};{path}";
|
|
System.Environment.SetEnvironmentVariable( "PATH", path );
|
|
|
|
CreateGame();
|
|
|
|
var createInfo = new AppSystemCreateInfo()
|
|
{
|
|
Flags = AppSystemFlags.IsGameApp | AppSystemFlags.IsUnitTest
|
|
};
|
|
|
|
InitGame( createInfo, "" );
|
|
}
|
|
}
|