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

AutomatedMapTestingList

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

Type: string

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

AutomatedPerfRemainingTime

Type: int

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

AutomatedTestingExecCommandToRunAtStartMatch

Type: string

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

AutomatedTestingMapIndex

Type: int

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

bAutoContinueToNextRound

Type: bool

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

bAutomatedPerfTesting

Type: bool

Whether the game is currently in automated perf test mode.

bAutomatedTestingWithOpen

Type: bool

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

bCheckingForFragmentation

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

Type: bool

Whether or not this game should check for memory leaks *

bDoingASentinelRun

Type: bool

Whether or this game is doing a bDoingASentinelRun test *

bSentinelStreamingLevelStillLoading

Type: bool

Modifiers: transient

Used to delay until streaming levels are fully loaded

bUsingAutomatedTestingMapList

Type: bool

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

NumAutomatedMapTestingCycles

Type: int

Modifiers: globalconfig

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

NumberOfMatchesPlayed

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

Type: int

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

NumRotationsIncrement

Type: int

Modifiers: transient

Change increments for iterating through rotations used at sentinel travel locations

SentinelIdx

Type: int

Modifiers: transient

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

SentinelNavigationIdx

Type: int

Modifiers: transient

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

SentinelPC

Type: PlayerController

Modifiers: transient

PlayerController used for Sentinel - picked randomly

SentinelTagDesc

Type: string

Used for the BeginRun Task___ strings

SentinelTaskDescription

Type: string

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

SentinelTaskParameter

Type: string

Used for the BeginRun Task___ strings

SentinelTravelArray

Type: array<Object.Vector>

Modifiers: transient

Locations where sentinel should go to

TravelPointsIncrement

Type: int

Modifiers: transient

Change increments for iterating through sentinel travel locations

Default values

Property Value
CollisionType COLLIDE_CustomDefault

Subobjects

Sprite

Class: Engine.SpriteComponent

Inherits from: Info.Sprite

Property Value
ReplacementPrimitive None

Functions

Native functions

AddSentinelPerTimePeriodStats

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

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

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

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


DoSentinelActionPerLoadedMap

native function DoSentinelActionPerLoadedMap ()


EndSentinelRun

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

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

native function HandlePerLoadedMapAudioStats ()

Add the audio related stats to the database *

Events

PostBeginPlay

event PostBeginPlay ()

Overrides: Actor.PostBeginPlay


StartAutomatedMapTestTimer

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

event Timer ()

Overrides: Actor.Timer

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

Other instance functions

CheckForSentinelRun

function bool CheckForSentinelRun ()

Start Sentinel Run if needed

Returns:

true if normal gameinfo startmatch should be aborted

CloseAutomatedMapTestTimer

function CloseAutomatedMapTestTimer ()

Restart the game when timer pops

DoTimeBasedSentinelStatGathering

function DoTimeBasedSentinelStatGathering ()

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

DoTravelTheWorld

function DoTravelTheWorld ()

function to start the world traveling

GetNextAutomatedTestingMap

function string GetNextAutomatedTestingMap ()

Returns:

the map we should travel to during automated testing

IncrementAutomatedTestingMapIndex

function IncrementAutomatedTestingMapIndex ()


IncrementNumberOfMatchesPlayed

function IncrementNumberOfMatchesPlayed ()


InitializeOptions

function InitializeOptions (string Options)

Initialize AutoTestManager based on command line options

Parameters:

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

StartAutomatedMapTestTimerWorker

function StartAutomatedMapTestTimerWorker ()

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

StartMatch

function StartMatch ()

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

States

SentinelHandleCauseEventCommand

TravelTheWorld

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

TravelTheWorld.BeginState

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

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


TravelTheWorld.PrintOutTravelWorldTimes

function PrintOutTravelWorldTimes (const int TotalTimeInSeconds)


TravelTheWorld.SetIncrementsForLoops

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