[c2f543] | 1 | #!/bin/bash
|
---|
| 2 |
|
---|
| 3 | read -d '' CHANGEME << "EOF"
|
---|
| 4 |
|
---|
| 5 | # start service in background
|
---|
| 6 | ${AUTOTEST_PATH}/molecuilder_server --signal 2 --workerport $WORKERPORT --controllerport $CONTROLLERPORT &
|
---|
| 7 | server_pid=$!
|
---|
| 8 | AT_CHECK([sleep 2], 0, [ignore], [ignore], [kill $server_pid])
|
---|
| 9 | AT_CHECK([kill -s 0 $server_pid], 0, [ignore], [ignore], [kill $server_pid])
|
---|
| 10 |
|
---|
| 11 | # enlist a worker to work on jobs
|
---|
| 12 | ../../molecuilder_mpqc +v 5 ++signal 2 ++server 127.0.0.1:${WORKERPORT} ++hostname 127.0.0.1 ++listen $WORKERLISTENPORT &
|
---|
| 13 | worker_pid=$!
|
---|
| 14 | AT_CHECK([sleep 2], 0, [ignore], [ignore], [kill $server_pid $worker_pid])
|
---|
| 15 | AT_CHECK([kill -s 0 $worker_pid], 0, [ignore], [ignore], [kill $server_pid $worker_pid])
|
---|
| 16 | EOF
|
---|
| 17 |
|
---|
| 18 | read -d '' CHANGETOO << "EOF"
|
---|
| 19 |
|
---|
| 20 | # send removeall to server such that all workers shutdown
|
---|
| 21 | AT_CHECK([${AUTOTEST_PATH}/molecuilder_controller --server 127.0.0.1:$CONTROLLERPORT --command removeall], 0, [ignore], [ignore], [kill $server_pid $worker_pid])
|
---|
| 22 |
|
---|
| 23 | # shutdown controller socket
|
---|
| 24 | AT_CHECK([${AUTOTEST_PATH}/molecuilder_controller --server 127.0.0.1:$CONTROLLERPORT --command shutdown], 0, [stdout], [ignore], [kill $server_pid $worker_pid])
|
---|
| 25 |
|
---|
| 26 | # check that worker is truly down
|
---|
| 27 | AT_CHECK([sleep 1], 0, [ignore], [ignore], [kill $server_pid $worker_pid])
|
---|
| 28 | AT_CHECK([kill $worker_pid], 1, [ignore], [ignore], [kill $server_pid])
|
---|
| 29 |
|
---|
| 30 | # check that server is truly down
|
---|
| 31 | AT_CHECK([sleep 1], 0, [ignore], [ignore], [kill $server_pid])
|
---|
| 32 | AT_CHECK([kill $server_pid], 1, [ignore], [ignore])
|
---|
| 33 |
|
---|
| 34 | # check calculated energy
|
---|
| 35 | AT_CHECK([cat energy_stdout | awk -v energy=$ENERGY 'function abs(x){return ((x < 0.0) ? -x : x)} {if (abs(($1 - energy)/energy) > 1e-5) exit(1)}'], 0, [stdout], [stderr])
|
---|
| 36 | EOF
|
---|
| 37 |
|
---|
| 38 | wport=3000
|
---|
| 39 | for file in `find . -name 'testsuite-calculations-*.at'`; do
|
---|
| 40 |
|
---|
| 41 | newfilename=`echo "$file" | sed -e "s#-calculations-#-calculations-jobmarket-#"`
|
---|
| 42 |
|
---|
| 43 |
|
---|
| 44 | let cport=$wport+1
|
---|
| 45 | let lport=$cport+1
|
---|
| 46 |
|
---|
| 47 | firstline=` grep -n AT_SKIP $file | awk -F":" '{print $1}'`
|
---|
| 48 | secondline=` grep -n "AT_CHECK(\[cat stdout" $file | awk -F":" '{print $1}'`
|
---|
| 49 |
|
---|
| 50 | sed -e "${firstline},1000d" $file >$newfilename
|
---|
| 51 | echo -e "\n# check that ports are unique over all tests such that they may run in parallel\nWORKERPORT=${wport}\nCONTROLLERPORT=${cport}\nWORKERLISTENPORT=${lport}\n" >>$newfilename
|
---|
| 52 | echo "$CHANGEME" >>$newfilename
|
---|
| 53 | sed -e "${secondline},1000d" -e "1,${firstline}d" -e "s#fragment-automation\(.*\)#fragment-automation --server-address 127.0.0.1 --server-port \$CONTROLLERPORT --DoLongrange 0 \1#" -e "/^.*--fragment-executable.*$/d" -e "/^.*--save-fragment-results.*$/d" -e "s#\(fragment-prefix .*\) \\\#\1],#" -e "s#\(exit(1)}'\], 0\)#\1, [stdout], [stderr]#" -e "s#\(0, \[stdout\], \[stderr\]\))#\1, [kill \$server_pid \$worker_pid])#" -e "s#awk '{print \$2}'#awk '{print \$2}' >energy_stdout#" $file >>$newfilename
|
---|
| 54 | echo -e "\n$CHANGETOO" >>$newfilename
|
---|
| 55 | sed -e "1,${secondline}d" $file >>$newfilename
|
---|
| 56 |
|
---|
| 57 | let wport=$wport+10
|
---|
| 58 |
|
---|
| 59 | done
|
---|