Mostly Harmless

UE3:AutoTestManager (UDK)

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UDK Object >> Actor >> Info >> AutoTestManager

Contents

Package: 
Engine

AutoTestManager

The AutoTestManager is spawned by the GameInfo if requested by the URL. It provides an interface for performing in gameplay automated testing.

Properties[edit]

AutomatedMapTestingList[edit]

Type: array<string>

Modifiers: globalconfig

List of maps that we are going to be using for the AutomatedMapTesting *

Default value, index 0: "CTF-Hydrosis"

Default value, index 1: "DM-Defiance"

Default value, index 2: "VCTF-Kargo"

Default value, index 3: "WAR-Avalanche"

Default value, index 4: "WAR-Torlan"

AutomatedMapTestingTransitionMap[edit]

Type: string

This will be the 'transition' map used w/ OpenMap runs *

AutomatedPerfRemainingTime[edit]

Type: int

Amount of time remaining before match ends -- used for auto performance test shutdown

AutomatedTestingExecCommandToRunAtStartMatch[edit]

Type: string

This will be run at the start of each start match *

AutomatedTestingMapIndex[edit]

Type: int

The index of the current automated testing map. If < 0 we are in the transition map.

bAutoContinueToNextRound[edit]

Type: bool

This will auto continue to the next round. Very useful doing soak testing and testing traveling to next level *

bAutomatedPerfTesting[edit]

Type: bool

Whether the game is currently in automated perf test mode.

bAutomatedTestingWithOpen[edit]

Type: bool

If TRUE, use OpenMap to transition; if FALSE, use SeamlessTravel *

bCheckingForFragmentation[edit]

Type: bool

Whether or not this game should check for fragmentation. This can be used to have a specific game type check for fragmentation at some point (e.g. start/end of match, time period)

bCheckingForMemLeaks[edit]

Type: bool

Whether or not this game should check for memory leaks *

bDoingASentinelRun[edit]

Type: bool

Whether or this game is doing a bDoingASentinelRun test *

bSentinelStreamingLevelStillLoading[edit]

Type: bool

Modifiers: transient

Used to delay until streaming levels are fully loaded

bUsingAutomatedTestingMapList[edit]

Type: bool

Whether or not we are using the Automated Testing Map list *

NumAutomatedMapTestingCycles[edit]

Type: int

Modifiers: globalconfig

Number of times to run through the list. (0 in infinite) *

NumberOfMatchesPlayed[edit]

Type: int

Number of matches played (maybe remove this before shipping) This is really useful for doing soak testing and such to see how long you lasted! NOTE: This is not replicated out to clients atm.

NumMapListCyclesDone[edit]

Type: int

Keeps track of the current run so when we have repeats and such we know how far along we are *

NumRotationsIncrement[edit]

Type: int

Modifiers: transient

Change increments for iterating through rotations used at sentinel travel locations

SentinelIdx[edit]

Type: int

Modifiers: transient

Iterator for various sentinel state code loops - for loop is in state code, so can't define locally

SentinelNavigationIdx[edit]

Type: int

Modifiers: transient

Iterator for looping through SentinelTravelArray - for loop is in state code, so can't define locally

SentinelPC[edit]

Type: PlayerController

Modifiers: transient

PlayerController used for Sentinel - picked randomly

SentinelTagDesc[edit]

Type: string

Used for the BeginRun Task___ strings

SentinelTaskDescription[edit]

Type: string

Used for the BeginRun Task___ strings, examples "FlyThrough", "FlyThroughSplitScreen", "BVT"

SentinelTaskParameter[edit]

Type: string

Used for the BeginRun Task___ strings

SentinelTravelArray[edit]

Type: array<Object.Vector>

Modifiers: transient

Locations where sentinel should go to

TravelPointsIncrement[edit]

Type: int

Modifiers: transient

Change increments for iterating through sentinel travel locations

Default values[edit]

Property Value
CollisionType COLLIDE_CustomDefault

Subobjects[edit]

Sprite[edit]

Class: Engine.SpriteComponent

Inherits from: Info.Sprite

Property Value
ReplacementPrimitive None

Functions[edit]

Native functions[edit]

AddSentinelPerTimePeriodStats[edit]

native function AddSentinelPerTimePeriodStats (const Object.Vector InLocation, const Object.Rotator InRotation)

This will output some set of data that we care about when we are doing Sentinel runs while we are doing a MP test or a BVT. Prob just stat unit and some other random stats (streaming fudge factor and such)

BeginSentinelRun[edit]

native function BeginSentinelRun (const string TaskDescription, const string TaskParameter, const string TagDesc)

This will start a SentinelRun in the DB. Setting up the Run table with all of metadata that a run has. This will also set the GSentinelRunID so that the engine knows what the current run is.

Parameters:

  • TaskDescription - The name/description of the task that we are running
  • TaskParameter - Any Parameters that the task needs
  • TagDesc - A specialized tag (e.g. We are doing Task A with Param B and then "MapWithParticlesAdded" so it can be found)

DoSentinel_MemoryAtSpecificLocation[edit]

native function DoSentinel_MemoryAtSpecificLocation (const Object.Vector InLocation, const Object.Rotator InRotation)

This will write out the Sentinel data at this location / rotation *

DoSentinel_PerfAtSpecificLocation[edit]

native function DoSentinel_PerfAtSpecificLocation (const Object.Vector InLocation, const Object.Rotator InRotation)


DoSentinelActionPerLoadedMap[edit]

native function DoSentinelActionPerLoadedMap ()


EndSentinelRun[edit]

native function EndSentinelRun (Object.EAutomatedRunResult RunResult)

This will tell the DB to end the current Sentinel run (i.e. GSentinelRunID) and set that Run's RunResult to the passed in var.

Parameters:

  • RunResult - The result of this Sentinel run (e.g. OOM, Passed, etc.)

GetTravelLocations[edit]

native function GetTravelLocations (name LevelName, PlayerController PC, out array<Object.VectorTravelPoints)

This will look at the levels and then gather all of the travel points we are interested in *

HandlePerLoadedMapAudioStats[edit]

native function HandlePerLoadedMapAudioStats ()

Add the audio related stats to the database *

Events[edit]

PostBeginPlay[edit]

event PostBeginPlay ()

Overrides: Actor.PostBeginPlay


StartAutomatedMapTestTimer[edit]

event StartAutomatedMapTestTimer ()

Start the AutomatedMapTest transition timer which will sit there and poll the status of the streaming levels. When we are doing malloc profiling and such loading is a lot slower so we can't just assume some time limit before moving on.

Timer[edit]

event Timer ()

Overrides: Actor.Timer

Base AutoTestManager timer ticks once per second Checks if perf test timer has run out

Other instance functions[edit]

CheckForSentinelRun[edit]

function bool CheckForSentinelRun ()

Start Sentinel Run if needed

Returns:

true if normal gameinfo startmatch should be aborted

CloseAutomatedMapTestTimer[edit]

function CloseAutomatedMapTestTimer ()

Restart the game when timer pops

DoTimeBasedSentinelStatGathering[edit]

function DoTimeBasedSentinelStatGathering ()

This function should be triggered via SetTimer ever few seconds to do the Per Time Period stats gathering *

DoTravelTheWorld[edit]

function DoTravelTheWorld ()

function to start the world traveling

GetNextAutomatedTestingMap[edit]

function string GetNextAutomatedTestingMap ()

Returns:

the map we should travel to during automated testing

IncrementAutomatedTestingMapIndex[edit]

function IncrementAutomatedTestingMapIndex ()


IncrementNumberOfMatchesPlayed[edit]

function IncrementNumberOfMatchesPlayed ()


InitializeOptions[edit]

function InitializeOptions (string Options)

Initialize AutoTestManager based on command line options

Parameters:

  • Options - is the full command line options string passed to GameInfo

StartAutomatedMapTestTimerWorker[edit]

function StartAutomatedMapTestTimerWorker ()

This will look to make certain that all of the streaming levels are finished streaming *

StartMatch[edit]

function StartMatch ()

Used to initialize automated testing as needed when match starts. Called from GameInfo.StartMatch().

States[edit]

SentinelHandleCauseEventCommand[edit]

TravelTheWorld[edit]

This our state which allows us to have delayed actions while traveling the world (e.g. waiting for levels to stream in)

TravelTheWorld.BeginState[edit]

event BeginState (name PreviousStateName)

Overrides: Object.BeginState (global)

Called immediately when entering a state, while within the GotoState() call that caused the state change (before any state code is executed).

TravelTheWorld.CalcTravelTheWorldTime[edit]

function float CalcTravelTheWorldTime (const int NumTravelLocations, const int NumRotations)


TravelTheWorld.PrintOutTravelWorldTimes[edit]

function PrintOutTravelWorldTimes (const int TotalTimeInSeconds)


TravelTheWorld.SetIncrementsForLoops[edit]

function SetIncrementsForLoops (const float NumTravelLocations)

Modify our Increments so that we get the most number of nodes traveled to best is to travel to all doing 8 directions next is to travel to all and do 4 directions next is to travel to as many as possible across the map doing 4 directions

Parameters:

  • NumTravelLocations - is the total number of destination positions