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
|
---|