Expose acceptance test framework as new plugin artifact
Split the current gerrit-acceptance-tests in two parts:
* framework + some needed deps, that is exposed as additional plugin
artifact
* rest of the gerrit-acceptance-test project
To implement the split and not to pull in too many dependencies, some
refactoring was needed. Particularly, gerrit-server:testutil depends
on gerrit-server:server, that depends on almost everything. Similar
problem was with gerrit-pgm:pgm, that is needed for AbstractDaemonTest
to work. Split the rules in gerrit-pgm to break transitive dependency
chain. We shouldn't ship artifacts twice, in plugin-api and in
acceptance-framework.
This change also partially reverts Ie9e63de622, where
//gerrit-acceptance-tests:lib with all its transitive dependencies was
included in plugin-api artifact.
Expose gerrit-acceptance-framework as new plugin artifact. This allows
us to support unit tests in plugins in three different build modes:
* Buck in tree build mode
* Buck standalone build mode
* Maven build
To install gerrit-acceptance-framework locally, the following command
is used:
buck build api_install
To deploy gerrit-acceptance-framework to Maven Central, the following
command is used:
buck build api_deploy
To support unit tests in tree build mode, the following Buck variable
is exposed: GERRIT_TESTS and can be used, e.g.:
java_test(
name = 'cookbook_tests',
srcs = glob(['src/test/java/**/*IT.java']),
labels = ['cookbook-plugin'],
source_under_test = [':cookbook-plugin__plugin'],
deps = GERRIT_PLUGIN_API + GERRIT_TESTS + [
':cookbook-plugin__plugin',
],
)
To support unit tests in standalone build mode, acceptance-framework
maven jar is defined in lib/gerrit/BUCK file:
maven_jar(
name = 'acceptance-framework',
id = 'com.google.gerrit:gerrit-acceptance-framework:' + VER,
license = 'Apache2.0',
attach_source = False,
repository = REPO,
)
bucklets/gerrit_plugin.bucklet is extended with the same variable
that points to the new maven_jar artifact, so that the same Buck
java_test() rule can be used in both modes.
Test plan:
1. run tests in gerrit tree
2. apply corresponding change to cookbook-plugin and run tests in
gerrit tree mode
3. apply corresponding change to bucklets, and run tests for
cookbook-plugin in standalone build mode
Change-Id: I4cadf6616de36ca24712f8b07d282b7a50911105
This commit is contained in:
committed by
Hugo Arès
parent
aaaf9faea6
commit
947b5e53ac
@@ -1,22 +1,23 @@
|
||||
DEPS = [
|
||||
'//gerrit-common:server',
|
||||
'//gerrit-extension-api:api',
|
||||
'//gerrit-reviewdb:server',
|
||||
'//gerrit-server:server',
|
||||
'//lib:guava',
|
||||
'//lib:gwtorm',
|
||||
'//lib/guice:guice',
|
||||
'//lib/guice:guice-assistedinject',
|
||||
'//lib/guice:guice-servlet',
|
||||
'//lib/jgit:jgit',
|
||||
'//lib/log:api',
|
||||
]
|
||||
|
||||
java_library(
|
||||
name = 'gpg',
|
||||
srcs = glob(['src/main/java/**/*.java']),
|
||||
deps = [
|
||||
'//gerrit-common:server',
|
||||
'//gerrit-extension-api:api',
|
||||
'//gerrit-reviewdb:server',
|
||||
'//gerrit-server:server',
|
||||
'//lib:guava',
|
||||
'//lib:gwtorm',
|
||||
'//lib/guice:guice',
|
||||
'//lib/guice:guice-assistedinject',
|
||||
'//lib/guice:guice-servlet',
|
||||
'//lib/jgit:jgit',
|
||||
'//lib/log:api',
|
||||
],
|
||||
provided_deps = [
|
||||
'//lib/bouncycastle:bcprov',
|
||||
provided_deps = DEPS + [
|
||||
'//lib/bouncycastle:bcpg',
|
||||
'//lib/bouncycastle:bcprov',
|
||||
],
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
@@ -28,12 +29,10 @@ TESTUTIL_SRCS = [
|
||||
java_library(
|
||||
name = 'testutil',
|
||||
srcs = TESTUTIL_SRCS,
|
||||
deps = [
|
||||
deps = DEPS + [
|
||||
':gpg',
|
||||
'//lib:guava',
|
||||
'//lib/bouncycastle:bcpg',
|
||||
'//lib/bouncycastle:bcprov',
|
||||
'//lib/jgit:jgit',
|
||||
],
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
@@ -44,20 +43,15 @@ java_test(
|
||||
['src/test/java/**/*.java'],
|
||||
excludes = TESTUTIL_SRCS,
|
||||
),
|
||||
deps = [
|
||||
deps = DEPS + [
|
||||
':gpg',
|
||||
':testutil',
|
||||
'//gerrit-extension-api:api',
|
||||
'//gerrit-reviewdb:server',
|
||||
'//gerrit-server:server',
|
||||
'//gerrit-cache-h2:cache-h2',
|
||||
'//gerrit-lucene:lucene',
|
||||
'//gerrit-server:testutil',
|
||||
'//lib:guava',
|
||||
'//lib:gwtorm',
|
||||
'//lib:truth',
|
||||
'//lib/bouncycastle:bcpg',
|
||||
'//lib/bouncycastle:bcprov',
|
||||
'//lib/guice:guice',
|
||||
'//lib/jgit:jgit',
|
||||
'//lib/jgit:junit',
|
||||
],
|
||||
source_under_test = [':gpg'],
|
||||
|
||||
Reference in New Issue
Block a user