@@ -44,6 +44,7 @@ class VagrantTestPlugin implements Plugin<Project> {
44
44
static List<String > UPGRADE_FROM_ARCHIVES = [' rpm' , ' deb' ]
45
45
46
46
private static final PACKAGING_CONFIGURATION = ' packaging'
47
+ private static final PACKAGING_TEST_CONFIGURATION = ' packagingTest'
47
48
private static final BATS = ' bats'
48
49
private static final String BATS_TEST_COMMAND = " cd \$ PACKAGING_ARCHIVES && sudo bats --tap \$ BATS_TESTS/*.$BATS "
49
50
private static final String PLATFORM_TEST_COMMAND = " rm -rf ~/elasticsearch && rsync -r /elasticsearch/ ~/elasticsearch && cd ~/elasticsearch && ./gradlew test integTest"
@@ -59,6 +60,7 @@ class VagrantTestPlugin implements Plugin<Project> {
59
60
60
61
// Creates custom configurations for Bats testing files (and associated scripts and archives)
61
62
createPackagingConfiguration(project)
63
+ project. configurations. create(PACKAGING_TEST_CONFIGURATION )
62
64
63
65
// Creates all the main Vagrant tasks
64
66
createVagrantTasks(project)
@@ -142,10 +144,12 @@ class VagrantTestPlugin implements Plugin<Project> {
142
144
}
143
145
144
146
private static void createCleanTask (Project project ) {
145
- project. tasks. create(' clean' , Delete . class) {
146
- description ' Clean the project build directory'
147
- group ' Build'
148
- delete project. buildDir
147
+ if (project. tasks. findByName(' clean' ) == null ) {
148
+ project. tasks. create(' clean' , Delete . class) {
149
+ description ' Clean the project build directory'
150
+ group ' Build'
151
+ delete project. buildDir
152
+ }
149
153
}
150
154
}
151
155
@@ -172,6 +176,19 @@ class VagrantTestPlugin implements Plugin<Project> {
172
176
from project. configurations[PACKAGING_CONFIGURATION ]
173
177
}
174
178
179
+ File testsDir = new File (packagingDir, ' tests' )
180
+ Copy copyPackagingTests = project. tasks. create(' copyPackagingTests' , Copy ) {
181
+ into testsDir
182
+ from project. configurations[PACKAGING_TEST_CONFIGURATION ]
183
+ }
184
+
185
+ Task createTestRunnerScript = project. tasks. create(' createTestRunnerScript' , FileContentsTask ) {
186
+ dependsOn copyPackagingTests
187
+ file " ${ testsDir} /run-tests.sh"
188
+ contents " java -cp \" *\" org.junit.runner.JUnitCore ${ -> project.extensions.esvagrant.testClass} "
189
+ executable true
190
+ }
191
+
175
192
Task createVersionFile = project. tasks. create(' createVersionFile' , FileContentsTask ) {
176
193
dependsOn copyPackagingArchives
177
194
file " ${ archivesDir} /version"
@@ -232,7 +249,8 @@ class VagrantTestPlugin implements Plugin<Project> {
232
249
233
250
Task vagrantSetUpTask = project. tasks. create(' setupPackagingTest' )
234
251
vagrantSetUpTask. dependsOn ' vagrantCheckVersion'
235
- vagrantSetUpTask. dependsOn copyPackagingArchives, createVersionFile, createUpgradeFromFile, createUpgradeIsOssFile
252
+ vagrantSetUpTask. dependsOn copyPackagingArchives, copyPackagingTests, createTestRunnerScript
253
+ vagrantSetUpTask. dependsOn createVersionFile, createUpgradeFromFile, createUpgradeIsOssFile
236
254
vagrantSetUpTask. dependsOn copyBatsTests, copyBatsUtils
237
255
}
238
256
@@ -391,20 +409,29 @@ class VagrantTestPlugin implements Plugin<Project> {
391
409
packagingTest. dependsOn(batsPackagingTest)
392
410
}
393
411
394
- // This task doesn't do anything yet. In the future it will execute a jar containing tests on the vm
395
- Task groovyPackagingTest = project. tasks. create(" vagrant${ boxTask} #groovyPackagingTest" )
396
- groovyPackagingTest. dependsOn(up)
397
- groovyPackagingTest. finalizedBy(halt)
412
+ Task javaPackagingTest = project. tasks. create(" vagrant${ boxTask} #javaPackagingTest" , VagrantCommandTask ) {
413
+ command ' ssh'
414
+ boxName box
415
+ environmentVars vagrantEnvVars
416
+ dependsOn up, setupPackagingTest
417
+ finalizedBy halt
418
+ args ' --command' , " cd \$ PACKAGING_TESTS && ./run-tests.sh"
419
+ }
420
+
421
+ // todo remove this onlyIf after all packaging tests are consolidated
422
+ javaPackagingTest. onlyIf {
423
+ project. extensions. esvagrant. testClass != null
424
+ }
398
425
399
- TaskExecutionAdapter groovyPackagingReproListener = createReproListener(project, groovyPackagingTest . path)
400
- groovyPackagingTest . doFirst {
401
- project. gradle. addListener(groovyPackagingReproListener )
426
+ TaskExecutionAdapter javaPackagingReproListener = createReproListener(project, javaPackagingTest . path)
427
+ javaPackagingTest . doFirst {
428
+ project. gradle. addListener(javaPackagingReproListener )
402
429
}
403
- groovyPackagingTest . doLast {
404
- project. gradle. removeListener(groovyPackagingReproListener )
430
+ javaPackagingTest . doLast {
431
+ project. gradle. removeListener(javaPackagingReproListener )
405
432
}
406
433
if (project. extensions. esvagrant. boxes. contains(box)) {
407
- packagingTest. dependsOn(groovyPackagingTest )
434
+ packagingTest. dependsOn(javaPackagingTest )
408
435
}
409
436
410
437
Task platform = project. tasks. create(" vagrant${ boxTask} #platformTest" , VagrantCommandTask ) {
0 commit comments