Skip to content
Attila Sukosd edited this page Mar 15, 2013 · 54 revisions

TOC

Verification-centric continuous integration testing.

WikiInclude(ParallelTestingExplanation)

Test Server Configuration

  • We are using Hudson as our Continuous Integration Server, because it supports distributed builds with Maven. Maven supports tests written with JUnit.

  • The Hudson server checks out the latest source code from subversion to a working directory.

  • Each test server has multiple cores, so the tests need to be divided into several subsets, so that each server is running one more process than its number of processors e.g. an 8 core machine would divide the tests into 9 subsets. Hudson does this automatically.

  • Hudson builds can also be controlled from an API: http://voting.ucd.ie:8080/api/

Legacy Tests

  • The existing legacy (non-JUnit) tests within ESC/Java2 will be wrapped within a new JUnit test case or test suite.

Dimensions of Testing

  • Test Cases i.e. all new and existing JUnit tests
  • Primary Command Line Options - all possible command line options
  • Secondary (Non-Exclusive) Command Line Options
  • Theorem Provers

Milestone and Tickets

Top Tickets

TicketQuery(status=new

To Do List

TicketQuery(status=new

Source Code

Example

WikiInclude(ParallelTestingExample)

News and Status

Hudson for distributed continuous integration

We are using Hudson

On 20/05/2008, at 7:09 AM, Dermot Cochran wrote:

    How can I configure Continuum to run Maven on a remote server, ideally
    on several remote servers and then to collate the results.  Would this
    require a modification of the source code for Continuum? If so, then I
    would be happy to work on it.


This isn't currently possible out of the box. However, we have been discussing a long term plan to enable it. You might like to review this thread:

* http://mail-archives.apache.org/mod_mbox/continuum-dev/200804.mbox/%[email protected]%3e

There was also a proposal a couple of years ago that hasn't been integrated, but holds a lot of good stuff.

* http://svn.apache.org/repos/asf/continuum/sandbox/continuum-distributed/

If you are interested in helping plan and contribute to this functionality, we certainly welcome your input here!

Brett Porter
[email protected]
http://blogs.exist.com/bporter/		
	
Nigel Magnay:
	
I don't know if you're tied to using continuum, but hudson does this :

http://hudson.gotdns.com/wiki/display/HUDSON/Distributed+builds

URL for Hudson

While working from home I discovered that port 8080 on voting.ucd.ie was blocked from external access for security reasons. This has been opened up so that our research partners can also participate. The URL is [http://voting.ucd.ie:8080].

WikiInclude(ParallelTestingNews)

Recent Changes

ChangeLog(src/test,1) ChangeLog(src/escjava/trunk/ESCTools/src/test,1) ChangeLog(src/escjava/trunk/ESCTools/pom.xml,1) ChangeLog(src/Hawk,1)

Owners

Further Information and Subcomponents

External Tools

  • Apache Maven
  • Hudson
  • JUnit

Configuration

We using Maven and Hudson. Hudson is running on http://voting.ucd.ie:8080/ and Maven is installed on each of the test servers.

We have added LDAP user account 'maven' which will be used to run the test build on each of our servers.

SSH Authentication for Distributed Builds

DanZimmerman recommends authprogs; it makes it much easier to edit the allowed commands later. Presumably, there will be more than one key we want to allow, and we may also want to restrict the IPs that are allowed to execute them, and authprogs does both reasonably well. He has been using it to allow rsyncs with passphraseless keys for quite some time.

[http://www.hackinglinuxexposed.com/tools/authprogs/src/]

http://www.csua.berkeley.edu/~ranga/notes/ssh_nopass.html

Test Configuration Scripts

https://mobius.ucd.ie/browser/src/test

Servers

||Hostname_'||'_Operating System|| ||arrow.ucd.ie||Linux|| ||object.ucd.ie||Linux|| ||athena.insttech.washington.edu||Mac OS X|| ||boomer.insttech.washington.edu||Mac OS X||

Command Line Options

see also https://mobius.ucd.ie/trac/wiki/ESCCLI

Running the Maven tests locally from within Eclipse

Maven Eclipse Integration

http://m2eclipse.codehaus.org/

Local Dependencies

Jar files for the following four ESC/Java2 subcomponents need to registered as dependencies under Maven:

  • Javafe
mvn install:install-file -DgroupId=mobius -DartifactId=javafe -Dversion=2.0.5 -Dpackaging=jar -Dfile=Utils/Javafe/Javafe2.0.5.jar 
  • Ant
mvn install:install-file -DgroupId=org.apache.tools -DartifactId=ant -Dversion=1.6.5 -Dpackaging=jar -Dfile=Utils/ant.jar
  • XML-RPC
mvn install:install-file -DgroupId=org.apache -DartifactId=xmlrpc -Dversion=1.2-b1-modified -Dpackaging=jar -Dfile=Escjava/xmlrpc-1.2-b1-modified.jar
  • BCEL
mvn install:install-file -DgroupId=org.apache -DartifactId=bcel -Dversion=5.2 -Dpackaging=jar -Dfile=Utils/BCEL/bcel-5.2/bcel-5.2.jar 

Related Wiki Pages

Version: 54 Time: Tue Nov 11 12:46:45 2008 Author: dcochran (dcochran) IP: 193.1.132.32

Clone this wiki locally