<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Using Hudson for C++/CMake/CppUnit</title>
	<atom:link href="http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/feed/" rel="self" type="application/rss+xml" />
	<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/</link>
	<description>public business secrets</description>
	<lastBuildDate>Tue, 15 Dec 2009 11:36:11 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Emmanuel Deloget</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-562</link>
		<dc:creator>Emmanuel Deloget</dc:creator>
		<pubDate>Wed, 25 Nov 2009 18:48:37 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-562</guid>
		<description>A word for C++ programmers that happen to be Hudson users: a few month ago, Gregory Boissinot released the cppunit plugin for Hudson that translates the XmlOutputter result into a JUnit-compatible format. As a consequence, the plugin allows you to directly get your cppunit test results integrated into Hudson in a snap.

Anyway, good article. I&#039;m planning to write something similar (playing with GNU autotools and heterogenous development environment...)</description>
		<content:encoded><![CDATA[<p>A word for C++ programmers that happen to be Hudson users: a few month ago, Gregory Boissinot released the cppunit plugin for Hudson that translates the XmlOutputter result into a JUnit-compatible format. As a consequence, the plugin allows you to directly get your cppunit test results integrated into Hudson in a snap.</p>
<p>Anyway, good article. I&#8217;m planning to write something similar (playing with GNU autotools and heterogenous development environment&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: voiveadia</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-539</link>
		<dc:creator>voiveadia</dc:creator>
		<pubDate>Tue, 24 Nov 2009 11:57:24 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-539</guid>
		<description>Amazing, I did not heard about that till now. Thanks.</description>
		<content:encoded><![CDATA[<p>Amazing, I did not heard about that till now. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MMAR</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-367</link>
		<dc:creator>MMAR</dc:creator>
		<pubDate>Tue, 28 Jul 2009 15:23:59 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-367</guid>
		<description>Good xslt ...I will try it</description>
		<content:encoded><![CDATA[<p>Good xslt &#8230;I will try it</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hudson for C++/CMake/CppUnit Revised &#171; Schneide Blog</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-258</link>
		<dc:creator>Hudson for C++/CMake/CppUnit Revised &#171; Schneide Blog</dc:creator>
		<pubDate>Mon, 11 May 2009 18:55:17 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-258</guid>
		<description>[...] much improved as some very useful plugins came into existence. To cover the situation described in my previous post you can now use a combination of the CMake plugin and the CppUnit [...]</description>
		<content:encoded><![CDATA[<p>[...] much improved as some very useful plugins came into existence. To cover the situation described in my previous post you can now use a combination of the CMake plugin and the CppUnit [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: volkerkaiser</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-196</link>
		<dc:creator>volkerkaiser</dc:creator>
		<pubDate>Thu, 09 Apr 2009 06:16:31 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-196</guid>
		<description>@Jon: Actually I was planning a blog post on how to setup unit test structures in a c++ project. There are several possibilities and some of them can really hurt you if your project gets bigger. The post should be finished by next week so make sure to come back.</description>
		<content:encoded><![CDATA[<p>@Jon: Actually I was planning a blog post on how to setup unit test structures in a c++ project. There are several possibilities and some of them can really hurt you if your project gets bigger. The post should be finished by next week so make sure to come back.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-195</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Tue, 07 Apr 2009 17:58:59 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-195</guid>
		<description>I see this comment in the log:
&quot;The assumption here is that your unit tests are built into libraries that are linked with the main function above.&quot;

And I really like that idea, but am having problems getting it setup properly. Can you point to an example the CppUnit class setup and and linking things properly in cmake?

Thanks.</description>
		<content:encoded><![CDATA[<p>I see this comment in the log:<br />
&#8220;The assumption here is that your unit tests are built into libraries that are linked with the main function above.&#8221;</p>
<p>And I really like that idea, but am having problems getting it setup properly. Can you point to an example the CppUnit class setup and and linking things properly in cmake?</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CMake Builder Plugin for Hudson &#171; Schneide Blog</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-193</link>
		<dc:creator>CMake Builder Plugin for Hudson &#171; Schneide Blog</dc:creator>
		<pubDate>Tue, 07 Apr 2009 15:30:59 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-193</guid>
		<description>[...] Hudson. It can be used to build cmake based projects without having to write a shell script (see my previous blog post). Using the scratch-my-own-itch approach I started out implementing only those features that I [...]</description>
		<content:encoded><![CDATA[<p>[...] Hudson. It can be used to build cmake based projects without having to write a shell script (see my previous blog post). Using the scratch-my-own-itch approach I started out implementing only those features that I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Asgeir S. Nilsen</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-116</link>
		<dc:creator>Asgeir S. Nilsen</dc:creator>
		<pubDate>Fri, 27 Feb 2009 22:27:37 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-116</guid>
		<description>There&#039;s another way as well.  It does require some work, but might be worth the effort.

The Google C++ Testing Framework (googletest) supports producing JUnit-compliant XML reports.  In my opinion it also adds the benefit of a cleaner way of defining and running the tests.  Tests you define self register, and a test runner main method is provided that you can just link in.

Read more at http://code.google.com/p/googletest/</description>
		<content:encoded><![CDATA[<p>There&#8217;s another way as well.  It does require some work, but might be worth the effort.</p>
<p>The Google C++ Testing Framework (googletest) supports producing JUnit-compliant XML reports.  In my opinion it also adds the benefit of a cleaner way of defining and running the tests.  Tests you define self register, and a test runner main method is provided that you can just link in.</p>
<p>Read more at <a href="http://code.google.com/p/googletest/" rel="nofollow">http://code.google.com/p/googletest/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: daniel.lindner</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-76</link>
		<dc:creator>daniel.lindner</dc:creator>
		<pubDate>Wed, 19 Nov 2008 17:44:18 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-76</guid>
		<description>Markus, thank you for your additional info. It is very useful indeed.

Please be aware that you might experience strange effects if both jobs happen to run in parallel. To avoid these problems, consider the use of the &quot;locks and latches&quot; plugin for hudson (http://hudson.gotdns.com/wiki/display/HUDSON/Locks+and+Latches+plugin). Using it, you can create a named lock that prohibits the parallel execution of the two jobs.
If you apply this to your solution, it&#039;s a perfect way to have the speedup of incremental builds and the safety of regular clean builds.</description>
		<content:encoded><![CDATA[<p>Markus, thank you for your additional info. It is very useful indeed.</p>
<p>Please be aware that you might experience strange effects if both jobs happen to run in parallel. To avoid these problems, consider the use of the &#8220;locks and latches&#8221; plugin for hudson (<a href="http://hudson.gotdns.com/wiki/display/HUDSON/Locks+and+Latches+plugin" rel="nofollow">http://hudson.gotdns.com/wiki/display/HUDSON/Locks+and+Latches+plugin</a>). Using it, you can create a named lock that prohibits the parallel execution of the two jobs.<br />
If you apply this to your solution, it&#8217;s a perfect way to have the speedup of incremental builds and the safety of regular clean builds.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Markus</title>
		<link>http://schneide.wordpress.com/2008/09/29/using-hudson-for-ccmakecppunit/#comment-75</link>
		<dc:creator>Markus</dc:creator>
		<pubDate>Wed, 19 Nov 2008 09:05:04 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=53#comment-75</guid>
		<description>In the presented example every build is a &quot;clean build&quot; which means that all binary files are deleted before compilation starts.

If this &quot;clean build&quot; takes too long or you want to have a faster feedback one possibility apart from buying new hardware is to avoid the &quot;clean build&quot; in the majority of cases. Of course it is useful to have a &quot;clean build&quot; from time to be completely sure everything still works.

The solution I want to present here is to create a separate hudson job &quot;CleanerJob&quot; that does nothing else than deleting the build directory of the &quot;WorkerJob&quot; (the job we don&#039;t want to do a clean build all the
time) at specific points in time.
I decided to delete the build directory at lunch time and at midnight.
For this I used a &quot;Freestyle Hudson Job&quot; and configured it like this:

I used the &quot;cron-job execution feature&quot;:

#Lunch time
45 12 * * *
#Midnight
0 0 * * *

Then I added a bash script that deletes the directory:
rm -rf &lt;Build_Dir_WorkerJob&gt;

The last thing to do is to change the script of the &quot;WorkerJob&quot; to avoid a clean build.

Change this:
  &gt;# we want to have a clean build
  &gt; rm -Rf $BUILD_DIR
  &gt; mkdir $BUILD_DIR
  &gt; cd $BUILD_DIR

to this:

if [ ! -d &quot;$BUILD_DIR&quot; ]; then
   mkdir $BUILD_DIR
fi

That&#039;s it. The advantages of creating an additional hudson CleanerJob are these:
   * Easy configuration of the &quot;cleans&quot; via the Hudson web-interface
   * Manual clean via the Hudson web-interface possible
   * Manual clean also possible by calling the Hudson &quot;Build URL&quot; of the CleanerJob
   * You can set up Hudson to build the &quot;WorkerJob&quot; every time the &quot;CleanerJob&quot; has been executed (this way the project is built right after the build directory has been deleted)</description>
		<content:encoded><![CDATA[<p>In the presented example every build is a &#8220;clean build&#8221; which means that all binary files are deleted before compilation starts.</p>
<p>If this &#8220;clean build&#8221; takes too long or you want to have a faster feedback one possibility apart from buying new hardware is to avoid the &#8220;clean build&#8221; in the majority of cases. Of course it is useful to have a &#8220;clean build&#8221; from time to be completely sure everything still works.</p>
<p>The solution I want to present here is to create a separate hudson job &#8220;CleanerJob&#8221; that does nothing else than deleting the build directory of the &#8220;WorkerJob&#8221; (the job we don&#8217;t want to do a clean build all the<br />
time) at specific points in time.<br />
I decided to delete the build directory at lunch time and at midnight.<br />
For this I used a &#8220;Freestyle Hudson Job&#8221; and configured it like this:</p>
<p>I used the &#8220;cron-job execution feature&#8221;:</p>
<p>#Lunch time<br />
45 12 * * *<br />
#Midnight<br />
0 0 * * *</p>
<p>Then I added a bash script that deletes the directory:<br />
rm -rf &lt;Build_Dir_WorkerJob&gt;</p>
<p>The last thing to do is to change the script of the &#8220;WorkerJob&#8221; to avoid a clean build.</p>
<p>Change this:<br />
  &gt;# we want to have a clean build<br />
  &gt; rm -Rf $BUILD_DIR<br />
  &gt; mkdir $BUILD_DIR<br />
  &gt; cd $BUILD_DIR</p>
<p>to this:</p>
<p>if [ ! -d "$BUILD_DIR" ]; then<br />
   mkdir $BUILD_DIR<br />
fi</p>
<p>That&#8217;s it. The advantages of creating an additional hudson CleanerJob are these:<br />
   * Easy configuration of the &#8220;cleans&#8221; via the Hudson web-interface<br />
   * Manual clean via the Hudson web-interface possible<br />
   * Manual clean also possible by calling the Hudson &#8220;Build URL&#8221; of the CleanerJob<br />
   * You can set up Hudson to build the &#8220;WorkerJob&#8221; every time the &#8220;CleanerJob&#8221; has been executed (this way the project is built right after the build directory has been deleted)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
