[squeak-dev] Jenkins update; shell scripting question
Chris Cunnington
smalltalktelevision at gmail.com
Thu Apr 26 18:27:29 UTC 2012
Hi All,
The Jenkins server is almost there. It produces xml files and presents
them with the Emma plugin. For the image, Lukas's code works almost
extant. I did have to comment out a class called Author, which we don't
have.
We get xml files. And Jenkins presents them with all the precision and
accuracy that Lukas created them with. So far so good. But there's a
wrinkle I need help with.
Starting the build is one thing. Stopping it - and stopping it at the
right time - is quite another. Left on its own, Jenkins will shut things
down after ~8 seconds. To do ~3000 tests in ~70 xml files takes ~90
seconds.
Lukas has two pieces of code that address this ... or, don't. I'm not
sure if both are necessary or if one of them is just for logging
purposes. My interest in logging is up there with tests, so I need to
get this right.
Naturally, there is one in the image and, another in the shell script.
For the image, you load in a script on startup of all the tests you want
to run. You add #snapshot:andQuit: at the end of that script.
But in the build.sh script there is this:
if [ $! ] ; then
while kill -0 $! 2> /dev/null ; do
I think this is saying: "If there is a process running in the
background; while the last process running in the background cannot
receive a signal, do the following..."
So I have two questions:
1.) Why would a process not be able to receive a signal?
2.) And if it couldn't, then what would that tell me.
After I can figure out this last item, then I should be able to open up
the squeakci.org site next week.
Thanks,
Chris
# wait for the process to terminate, or a debug log
if [ $! ] ; then
while kill -0 $! 2> /dev/null ; do
if [ -f "$OUTPUT_DUMP" ] || [ -f "$OUTPUT_DEBUG" ] ; then
sleep 5
kill -s SIGKILL $! 2> /dev/null
if [ -f "$OUTPUT_DUMP" ] ; then
echo "$(basename $0): VM aborted ($PHARO_VM)"
cat "$OUTPUT_DUMP" | tr '\r' '\n' | sed 's/^/ /'
elif [ -f "$OUTPUT_DEBUG" ] ; then
echo "$(basename $0): Execution aborted ($PHARO_VM)"
cat "$OUTPUT_DEBUG" | tr '\r' '\n' | sed 's/^/ /'
fi
exit 1
fi
sleep 1
done
else
echo "$(basename $0): unable to start VM ($PHARO_VM)"
exit 1
fi
More information about the Squeak-dev
mailing list
|