### fragment the molecule and check the number of configs AT_SETUP([Fragmentation - Automation: Server/Worker]) AT_KEYWORDS([fragmentation automation server worker]) # check that ports are unique over all tests such that they may run in parallel WORKERPORT=1025 CONTROLLERPORT=1026 # start service in background ${AUTOTEST_PATH}/Fragmentation/Automation/Server $WORKERPORT $CONTROLLERPORT & server_pid=$! AT_CHECK([sleep 1], 0, [ignore], [ignore], [kill $server_pid]) # add one jobs AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/JobAdder 127.0.0.1 $CONTROLLERPORT 1], 0, [ignore], [ignore], [kill $server_pid]) # first worker has a job AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Worker 127.0.0.1 $WORKERPORT], 0, [stdout], [ignore], [kill $server_pid]) AT_CHECK([fgrep "Job id: 1" stdout], 0, [ignore], [ignore], [kill $server_pid]) # check number of done jobs AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/ResultChecker 127.0.0.1 $CONTROLLERPORT], 0, [stdout], [ignore], [kill $server_pid]) AT_CHECK([fgrep "1 jobs are calculated so far" stdout], 0, [ignore], [ignore], [kill $server_pid]) # shutdown controller socket AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Shutdowner 127.0.0.1 $CONTROLLERPORT], 0, [stdout], [ignore], [kill $server_pid]) # check that server is truely down AT_CHECK([sleep 1], 0, [ignore], [ignore], [kill $server_pid]) AT_CHECK([kill $server_pid], 1, [ignore], [ignore]) AT_CLEANUP