Index: Jenkins/TestRegen
===================================================================
--- Jenkins/TestRegen	(revision 64bc1319def43bb478fa9c6979861d19125a171f)
+++ Jenkins/TestRegen	(revision 64bc1319def43bb478fa9c6979861d19125a171f)
@@ -0,0 +1,105 @@
+#!groovy
+
+node ('master') {
+
+	user_email = ''
+	test_list = ''
+
+	prepare_build()
+
+	try {
+
+		checkout scm
+
+		regen_tests('i386')
+
+		regen_tests('x86_64')
+
+		make_patch()
+
+		email()
+	} 
+	catch (Exception caughtError) {
+		email_error()
+	}
+}
+
+def prepare_build() {
+	properties ([ 													\
+		[$class: 'ParametersDefinitionProperty', 								\
+			parameterDefinitions: [ 									\
+				[$class: 'StringParameterDefinition',						\
+					description: 'Who required the test',					\
+					name: 'pEmail',									\
+					choices: 'gcc-6\ngcc-5\ngcc-4.9\nclang',					\
+					defaultValue: 'gcc-6',								\
+				],												\
+				[$class: 'StringParameterDefinition',						\
+					description: 'Space separated list of tests to run',			\
+					name: 'pTests',									\
+				],												\
+			],
+		]])
+
+	user_email = pEmail;
+	test_list  = pTests;
+}
+
+def regen_tests( String arch ) {
+
+	def install_dir = pwd tmp: true
+
+	//Clean everything from the last build
+	sh 'make maintainer-clean > /dev/null'
+		
+	//Configure the conpilation (Output is not relevant)
+	//Use the current directory as the installation target so nothing
+	//escapes the sandbox
+	//Also specify the compiler by hand
+	sh "./configure CXX=clang++ ${arch} --with-backend-compiler=${gcc-6} --prefix=${install_dir} --enable-silent-rules --quiet"
+
+	//Compile the project
+	sh 'make -j 8 --no-print-directory install'
+
+	//Regenerate the desired tests
+	sh "src/tests/test.py --regenerate-expected ${test_list}"
+}
+
+def make_patch() {
+
+	def target_dir = pwd tmp: true
+
+	//Add every file so new files appear in the diff
+	sh 'git add .'
+
+	//Create a patch file
+	sh "git diff --cached --binary > ${target_dir}/result.patch"
+}
+
+def email() {
+
+	def target_dir = pwd tmp: true
+
+	def email_subject = "[cforall dashboard][TEST REGEN# ${env.BUILD_NUMBER}] - Result"
+	def email_body = """This is an automated email from the Jenkins build machine. It was
+generated http://plg2:8082/dashboard."""
+
+	//send email notification
+	emailext body: email_body, subject: email_subject, to: user_email, attachmentsPattern: '${target_dir}/result.patch'
+}
+
+def email_error() {
+
+	def target_dir = pwd tmp: true
+
+	def email_subject = "[cforall dashboard][TEST REGEN# ${env.BUILD_NUMBER}] - FAILURE"
+	def email_body = """This is an automated email from the Jenkins build machine. It was
+generated http://plg2:8082/dashboard.
+
+Test generation encoutered an error please see attached logs
+
+-----------------------------------------------------------------------"""
+
+	//send email notification
+	emailext body: email_body, subject: email_subject, to: user_email, attachLog: true
+}
