in internal/testrunner/runners/system/tester.go [506:574]
func (r *tester) tearDownTest(ctx context.Context) error {
if r.deferCleanup > 0 {
logger.Debugf("waiting for %s before tearing down...", r.deferCleanup)
select {
case <-time.After(r.deferCleanup):
case <-ctx.Done():
}
}
// Avoid cancellations during cleanup.
cleanupCtx := context.WithoutCancel(ctx)
// This handler should be run before shutting down Elastic Agents (agent deployer)
// or services that could run agents like Custom Agents (service deployer)
// or Kind deployer.
if r.resetAgentPolicyHandler != nil {
if err := r.resetAgentPolicyHandler(cleanupCtx); err != nil {
return err
}
r.resetAgentPolicyHandler = nil
}
// Shutting down the service should be run one of the first actions
// to ensure that resources created by terraform are deleted even if other
// errors fail.
if r.shutdownServiceHandler != nil {
if err := r.shutdownServiceHandler(cleanupCtx); err != nil {
return err
}
r.shutdownServiceHandler = nil
}
if r.cleanTestScenarioHandler != nil {
if err := r.cleanTestScenarioHandler(cleanupCtx); err != nil {
return err
}
r.cleanTestScenarioHandler = nil
}
if r.resetAgentLogLevelHandler != nil {
if err := r.resetAgentLogLevelHandler(cleanupCtx); err != nil {
return err
}
r.resetAgentLogLevelHandler = nil
}
if r.removeAgentHandler != nil {
if err := r.removeAgentHandler(cleanupCtx); err != nil {
return err
}
r.removeAgentHandler = nil
}
if r.shutdownAgentHandler != nil {
if err := r.shutdownAgentHandler(cleanupCtx); err != nil {
return err
}
r.shutdownAgentHandler = nil
}
if r.deleteTestPolicyHandler != nil {
if err := r.deleteTestPolicyHandler(cleanupCtx); err != nil {
return err
}
r.deleteTestPolicyHandler = nil
}
return nil
}