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

  1. Create a memory segment with map and a list of nodes
  2. create a set of log in the log directory corresponding to each node, except for start_node and end_node
  3. start cbaWFMonitor
  4. change the values of the shared memory map nodes status to 1
  5. verify the node status values have been updated in nodes_execution_status
  6. change the values of the shared memory map nodes status to 2
  7. verify the nodes_execution_stats has the start_time for the changed nodes
  8. change the values of the shared memory map nodes status to 4
  9. verify the nodes_execution_stats has the following fields populated  for the changed nodes: start_time,end_time,status,run_time
  10. remove shared memory segment, verify the end node has the status of 4 in nodes_execution_status
  11. verify monitor stopped execution after end node gets the status of 4

Integrated testing procedure

  1. Create a set of spark-sql scripts and spark-submit jars and verify they are producing correct output outside of cbaWorkflow
  2. Populate the repository with nodes and adjacency lists information
  3. start cbaWorkflow run using the repository values
  4. start cbaWFMonitor
  5. verify the node status values have been updated in nodes_execution_status
  6.  verify the node execution statistics values have been updated in nodes_execution_stats
  7. after cbaWorkflow completion verify that cbaWFMonitor has updated the end_node status and completed.