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

TOC

WikiInclude(ParallelTestingExplanation)

Test Server Configuration

  • The Continuum server checks out the latest source code to a working directory. It is intended that all local Maven servers would use a hard link tree taken from this working directory. Remote Maven servers would use a hard link tree taken from their local primary server. Link trees might be built with rdiffbackup or rdup, for example. Each domain would have a primary server. The Continuum server is the primary server for its local domain, but does not run any of the actual tests.

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

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

Source Code

Example

WikiInclude(ParallelTestingExample)

News and Status

Build Queue Monitor

[http://voting.ucd.ie:8080/continuum/admin/displayQueues!display.action]

Recent Build Results

ESC/Java2 Build Monitor

WikiInclude(ParallelTestingNews)

Continuum Logs

Recent Changes

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

Owners

Further Information and Subcomponents

External Tools

  • Apache Maven
  • Apache Continuum
  • Apache Tomcat
  • JUnit

Configuration

We using Maven and Continuum. I haven't seen any easy way of distributing the builds, so I am looking at redirecting the 'mvn' command on kind.ucd.ie to a script which uses passphrase-less ssh to run maven on each of the servers. Continuum is running on http://voting.ucd.ie:8080/continuum and maven is installed on each of the servers.

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

Each server will need to have a 'maven' user account with a shell script for running maven such that it can be called from kind.ucd.ie, for example:

	ssh maven@server_hostname ./maven $*

The actual username doesn't matter as long as we have a list with the appropriate username for each server

The working directory being used by continuum is:

	/Network/Servers/kind.ucd.ie/Volumes/Home/maven/working-directory

This always contains the latest version of ESCJava2 source code, for example

As an alternative to mounting this directory, the local shell script could achieve the same by


	cd ./working_directory
	svn up https://mobius.ucd.ie/repos/src/escjava/trunk/ESCTools
	export ESCTOOLS_ROOT=$PWD
	make pre-maven
	mvn $*

and optionally use rync to return a copy of target/surefire-reports

Continuum, SVN and HTTPS

When Tomcat is running as a service (rather than as root) then continuum is unable to use svn to connect over https (see http://www.nabble.com/problem-with-svn-via-https---pls-help-td15573660.html) so the repository URL needs to be changed to use svn+ssh as user 'maven'...

Provider message: The svn command failed.
Command output: 
-------------------------------------------------------------------------------
svn: PROPFIND request failed on '/repos/src/escjava/trunk/ESCTools'
svn: PROPFIND of '/repos/src/escjava/trunk/ESCTools': Server certificate verification failed: issuer is not trusted (https://mobius.ucd.ie)
-------------------------------------------------------------------------------

Authentication

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

Authorized Public Key

no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="/usr/local/bin/authprogs" ssh-dss AAAAB3NzaC1kc3MAAACBAJwrQFN/TLLeupKULhAZfsYkb20TI4TX/hgp8mdlqOoAaaRKRi+bbM1/7nhJ3yOcnvw4HpPUr0teIep9IlIbHcfyUmu7R+w4IYExeccbetC5tPNVVs7zaeSWgPV7qu9BTctLeQisQA1SNxIQy2eYT+A899FjBgYLtxfv62ht9w7pAAAAFQCHhJMNpf4xCiIbPpRXWFf5p9bt1QAAAIEAgrS3RWpxtj2SvoZwGAvkAHFrv6Q7K9+/0RC7jDsyFseCrLdDRckP8GiWR/5tKtkZ5+pNYeDlSQ8/S9TQ4PawMrE9AjZlu6UKMCzxJUo8hfWT36/I43Q8PNWQHVP0hZKe6uKrGlrS6zaJYrsZuBPWattQRy6eaZALblZz2SuUTS0AAACAcdyxXI6O4k8/EAmg+pXNfLtCP+fnre1SSH5aFw8vwVYzdrNqjIUpDT3Pn5Ow8GUKDVK1GoPW3pK5DCw5om1LWyZa5VcSSyPYwuDWYd7jAhGgTCCNysc7I9Wo3UcsiWHu7JApRi3emKhoFaOweuy+NJVWvdCkM+1CwmKfbBuYygo= [email protected]

Test Configuration Scripts

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

Servers

||Hostname_'||'''Operating System'''||'_Hardware|| ||arrow.ucd.ie||Linux|| || ||category.ucd.ie||Mac OS X|| || ||object.ucd.ie||Linux|| || ||voting.ucd.ie||Mac OS X|| || ||athena.insttech.washington.edu||Mac OS X||G5|| ||boomer.insttech.washington.edu||Mac OS X||G5||

Command Line Options

Build Results

http://voting.ucd.ie:8080/continuum/buildResults.action?projectId=1&projectGroupId=2

Version: 31 Time: Tue May 6 12:12:40 2008 Author: dcochran (dcochran) IP: 193.1.132.32

Clone this wiki locally