Functionality to be tested
reading values from shared map and saving them to nodes_execution_status table/file in repository
reading values from nodes logs and saving them to nodes_execution_stats table/file in repository
completion after the shared memory segment has been deallocated and the end_node status changed to completed(by the cbaWFMonitor)
Isolated testing procedure
- Create a memory segment with map and a list of nodes
- create a set of log in the log directory corresponding to each node, except for start_node and end_node
- start cbaWFMonitor
- change the values of the shared memory map nodes status to 1
- verify the node status values have been updated in nodes_execution_status
- change the values of the shared memory map nodes status to 2
- verify the nodes_execution_stats has the start_time for the changed nodes
- change the values of the shared memory map nodes status to 4
- verify the nodes_execution_stats has the following fields populated for the changed nodes: start_time,end_time,status,run_time
- remove shared memory segment, verify the end node has the status of 4 in nodes_execution_status
- verify monitor stopped execution after end node gets the status of 4
Integrated testing procedure
- Create a set of spark-sql scripts and spark-submit jars and verify they are producing correct output outside of cbaWorkflow
- Populate the repository with nodes and adjacency lists information
- start cbaWorkflow run using the repository values
- start cbaWFMonitor
- verify the node status values have been updated in nodes_execution_status
- verify the node execution statistics values have been updated in nodes_execution_stats
- after cbaWorkflow completion verify that cbaWFMonitor has updated the end_node status and completed.