// setup daemon
Future<Object> daemon = setupSocketThread();
// run the execution context and player
PlayerCommand player = obtainPlayer();
ExecutionContext context = obtainContext(player);
//start the execution context
context.start();
//launch the player
Process process = player.launch();
// block until daemon is completely done with all test data
daemon.get();
//stop the execution context now that socket thread is done
context.stop(process);
// print summaries and check for failure
analyzeReports();
}