NAME

Tapper::PRC::Testcontrol - Control running test programs

FUNCTIONS

capture_handler_tap

This function is a handler for the capture function. It handles capture requests of type 'tap'. This means the captured output is supposed to be TAP already and therefore no transformation is needed.

@param file handle - opened file handle

@return string - output in TAP format @return error - die()

send_output

Send the captured TAP output to the report receiver.

@param string - TAP text

@return success - 0 @return error - error string

send_output

Send the a attachment to the report receiver and add attachements.

@return success - 0 @return error - error string

upload_files

Upload files written in one stage of the testrun to report framework.

@param int - report id @param int - testrun id

@return success - 0 @return error - error string

get_appendix

For testprogram with the same name the output file names will be identical. To prevent this, we append a serial number. This function calculates this appendix and returns the next one to use. If no such serial is needed because no output file of the given name exists yet the empty string is returned.

@param string - name of the output file without appendix

@return string - string to append to output file name to make it unique

kill_process($pid)

Gracefully kill a single process.

get_process_tree($pid)

Get list of children for a process. The process itself is not contained in the list.

kill_process_tree($pid)

Kill whole tree of processes, depth-first, with extreme prejudice.

testprogram_execute

Execute one testprogram. Handle all error conditions.

@param hash ref - contains all config options for program to execute * program - program name * timeout - timeout in seconds * outdir - output directory * parameters - arrayref of strings - parameters for test program * environment - hashref of strings - environment variables for test program * chdir - string - where to chdir before executing the testprogram

@return success - 0 @return error - error string

guest_start

Start guest images for virtualisation. Only Xen guests can be started at the moment.

@return success - 0 @return error - error string

create_log

Checks whether fifos for guest logging exists and creates them if not. Existing files of wrong type are deleted.

@retval success - 0 @retval error - error string

nfs_mount

Mount the output directory from an NFS server. This method is used since we only want to mount this NFS share in live mode.

@return success - 0 @return error - error string

control_testprogram

Control running of one program including caring for its input, output and the environment variables some testers asked for.

@return success - 0 @return error - error string

get_peers_from_file

Read syncfile and extract list of peer hosts (not including this host).

@param string - file name

@return success - hash ref

@throws plain error message

wait_for_sync

Synchronise with other hosts belonging to the same interdependent testrun.

@param array ref - list of hostnames of peer machines

@return success - 0 @return error - error string

send_keep_alive_loop

Send keepalive messages to MCP in an endless loop.

@param int - sleep time between two keepalives

run

Main function of Program Run Control.

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