Package cloud.google.com/go/profiler/proftest

Variables

BaseStartupTmpl

 var BaseStartupTmpl = template 
. Must 
( template 
. New 
("startupScript").Parse("" /* 641 byte string literal not displayed */,
)) 

BaseStartupTmpl is the common part of the startup script that can be shared by multiple tests.

Functions

func CheckSerialOutputForBackoffs

 func CheckSerialOutputForBackoffs(output string 
, numBenchmarks int 
, serverBackoffSubstring, createProfileSubstring, benchmarkNumPrefix string 
) error 
 

CheckSerialOutputForBackoffs parses serial port output, and validates that server-specified backoffs were respected by the agent.

ClusterConfig

 type ClusterConfig struct {
	ProjectID string 
Zone string 
ClusterName string 
PodName string 
ImageSourceName string 
ImageName string 
Bucket string 
Dockerfile string 
} 

ClusterConfig is configuration for starting single GKE cluster for profiling agent test case.

GCETestRunner

 type GCETestRunner struct { TestRunner 
ComputeService * compute 
. Service 
} 

GCETestRunner supports testing a profiling agent on GCE.

func (*GCETestRunner) DeleteInstance

 func (tr * GCETestRunner 
) DeleteInstance(ctx context 
. Context 
, inst * InstanceConfig 
) error 
 

DeleteInstance deletes an instance with project id, name, and zone matched by inst.

func (*GCETestRunner) PollAndLogSerialPort

 func (tr * GCETestRunner 
) PollAndLogSerialPort(ctx context 
. Context 
, inst * InstanceConfig 
, finishString, errorString string 
, logf func( string 
, ...interface{})) ( string 
, error 
) 

PollAndLogSerialPort polls serial port 2 of the given GCE instance and returns when the finishString appears in the serial output of the instance, or when the context times out. It logs the serial output of the instance using the specified log function and returns the serial output in the first return value.

func (*GCETestRunner) StartInstance

 func (tr * GCETestRunner 
) StartInstance(ctx context 
. Context 
, inst * InstanceConfig 
) error 
 

StartInstance starts a GCE Instance with configs specified by inst, and which runs the startup script specified in inst. If image project is not specified, it defaults to "debian-cloud". If image family is not specified, it defaults to "debian-9".

GKETestRunner

 type GKETestRunner struct { TestRunner 
ContainerService * container 
. Service 
StorageClient    * storage 
. Client 
Dockerfile string 
} 

GKETestRunner supports testing a profiling agent on GKE.

func (*GKETestRunner) DeleteClusterAndImage

 func (tr * GKETestRunner 
) DeleteClusterAndImage(ctx context 
. Context 
, cfg * ClusterConfig 
) [] error 
 

DeleteClusterAndImage deletes cluster and images used to create cluster.

InstanceConfig

 type InstanceConfig struct {
	ProjectID string 
Zone string 
Name string 
StartupScript string 
MachineType string 
ImageProject string 
ImageFamily string 
Scopes        [] string 
} 

InstanceConfig is configuration for starting single GCE instance for profiling agent test case.

ProfileData

 type ProfileData struct {
	Samples           [] int32 
`json:"samples"`
	SampleMetrics     interface{}     `json:"sampleMetrics"`
	DefaultMetricType string 
`json:"defaultMetricType"`
	TreeNodes         interface{}     `json:"treeNodes"`
	Functions         functionArray   `json:"functions"`
	SourceFiles       sourceFileArray `json:"sourceFiles"`
} 

ProfileData has data of a single profile.

ProfileResponse

 type ProfileResponse struct {
	Profile ProfileData 
`json:"profile"`
	NumProfiles int32 
`json:"numProfiles"`
	Deployments []interface{} `json:"deployments"`
} 

ProfileResponse contains the response produced when querying profile server.

func (*ProfileResponse) CheckNonEmpty

 func (pr * ProfileResponse 
) CheckNonEmpty() error 
 

CheckNonEmpty returns nil if the profile has a profiles and deployments associated. Otherwise, returns a desciptive error.

func (*ProfileResponse) HasFunction

 func (pr * ProfileResponse 
) HasFunction(functionName string 
) error 
 

HasFunction returns nil if the function is present, or, if the function is not present, and error providing more details why the function is not present.

func (*ProfileResponse) HasFunctionInFile

 func (pr * ProfileResponse 
) HasFunctionInFile(functionName string 
, filename string 
) error 
 

HasFunctionInFile returns nil if function is present in the specified file, and an error if the function/file combination is not present in the profile.

func (*ProfileResponse) HasSourceFile

 func (pr * ProfileResponse 
) HasSourceFile(filename string 
) error 
 

HasSourceFile returns nil if the file (or file where the end of the file path matches the filename) is present in the profile. Or, if the filename is not present, an error is returned.

TestRunner

 type TestRunner struct {
	Client * http 
. Client 
} 

TestRunner has common elements used for testing profiling agents on a range of environments.

func (*TestRunner) QueryProfiles

 func (tr * TestRunner 
) QueryProfiles(projectID, service, startTime, endTime, profileType string 
) ( ProfileResponse 
, error 
) 

QueryProfiles retrieves profiles of a specific type, from a specific time range, associated with a particular service and project.

func (*TestRunner) QueryProfilesWithZone

 func (tr * TestRunner 
) QueryProfilesWithZone(projectID, service, startTime, endTime, profileType, zone string 
) ( ProfileResponse 
, error 
) 

QueryProfilesWithZone retrieves profiles of a specific type, from a specific time range, in a specified zone, associated with a particular service and project.

Create a Mobile Website
View Site in Mobile | Classic
Share by: