NAME

Tapper::MCP::Master - Wait for new testruns and start a new child when needed

SYNOPSIS

use Tapper::MCP::Master;
my $mcp = Tapper::MCP::Master->new();
$mcp->run();

Attributes

dead_child

Number of pending dead child processes.

child

Contains all information about all child processes.

Associated Scheduler object.

FUNCTIONS

cleanup_output_dir

Clean up the output directory for this test.

@param int - testrun id

set_interrupt_handlers

Set interrupt handlers for important signals. No parameters, no return values.

@return success - 0

handle_dead_children

Each test run is handled by a child process. All information needed for communication with this child process is kept in $self->child. Reset all these information when the test run is finished and the child process ends.

notify_event

Inform the notification framework that an event occured in MCP.

@param string - event name @param hash ref - message

run_due_tests

Run the tests that are due.

@param TestrunScheduling - job to run @param boolean - are we in revive mode?

@retval success - 0 @retval error - error string

runloop

Main loop of this module. Checks for new tests and runs them. The looping itself is put outside of function to allow testing.

prepare_server

Create communication data structures used in MCP.

@return

revive_children

Restart the children that were running before MCP was shut down/crashed. The function expects no parameters and has no return values.

run

Set up all needed data structures then wait for new tests.

AUTHORS

  • AMD OSRC Tapper Team <tapper@amd64.org>

  • Tapper Team <tapper-ops@amazon.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2024 by Advanced Micro Devices, Inc.

This is free software, licensed under:

The (two-clause) FreeBSD License