mirror of https://github.com/grpc/grpc-java.git
Upgrade to protobuf-gradle-plugin:0.4.0
Use the plugin to compile nano for golden test and get rid of the shell script.
This commit is contained in:
parent
7ecb6fa431
commit
287a27a930
|
|
@ -50,7 +50,7 @@ subprojects {
|
|||
// Only when the codegen is built along with the project, will we be able to recompile
|
||||
// the proto files.
|
||||
project.apply plugin: 'com.google.protobuf'
|
||||
project.protobufCodeGenPlugins = ["java_plugin:$javaPluginPath"]
|
||||
project.protobufCodeGenPlugins = ["grpc:$javaPluginPath"]
|
||||
project.protocDep = "com.google.protobuf:protoc:${protobufVersion}"
|
||||
project.generatedFileDir = "${projectDir}/src/generated"
|
||||
project.afterEvaluate {
|
||||
|
|
@ -68,6 +68,11 @@ subprojects {
|
|||
java {
|
||||
srcDir 'src/generated/main'
|
||||
}
|
||||
proto {
|
||||
plugins {
|
||||
grpc { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -85,7 +90,7 @@ subprojects {
|
|||
okhttp: 'com.squareup.okhttp:okhttp:2.2.0',
|
||||
protobuf: "com.google.protobuf:protobuf-java:${protobufVersion}",
|
||||
protobuf_nano: "com.google.protobuf.nano:protobuf-javanano:${protobufVersion}",
|
||||
protobuf_plugin: 'com.google.protobuf:protobuf-gradle-plugin:0.3.1',
|
||||
protobuf_plugin: 'com.google.protobuf:protobuf-gradle-plugin:0.4.0',
|
||||
|
||||
netty: 'io.netty:netty-codec-http2:4.1.0.Beta5',
|
||||
|
||||
|
|
|
|||
|
|
@ -73,9 +73,45 @@ model {
|
|||
}
|
||||
}
|
||||
|
||||
configurations {
|
||||
testNanoCompile
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testCompile project(':grpc-protobuf'),
|
||||
project(':grpc-stub')
|
||||
testNanoCompile project(':grpc-protobuf-nano'),
|
||||
project(':grpc-stub')
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
test {
|
||||
proto {
|
||||
plugins {
|
||||
grpc { }
|
||||
}
|
||||
}
|
||||
}
|
||||
testNano {
|
||||
proto {
|
||||
setSrcDirs(['src/test/proto'])
|
||||
builtins {
|
||||
remove java
|
||||
javanano {
|
||||
option 'ignore_services=true'
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
grpc {
|
||||
option 'nano=true'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
checkstyleTestNano {
|
||||
source = fileTree(dir: "src/testNano", include: "**/*.java")
|
||||
}
|
||||
|
||||
binaries.all {
|
||||
|
|
@ -152,35 +188,28 @@ artifacts {
|
|||
}
|
||||
|
||||
project.protocDep = "com.google.protobuf:protoc:${protobufVersion}"
|
||||
protobufCodeGenPlugins = ["java_plugin:$javaPluginPath"]
|
||||
protobufCodeGenPlugins = ["grpc:$javaPluginPath"]
|
||||
|
||||
project.afterEvaluate {
|
||||
generateTestProto.dependsOn 'java_pluginExecutable'
|
||||
[generateTestProto, generateTestNanoProto]*.dependsOn 'java_pluginExecutable'
|
||||
}
|
||||
|
||||
// Ignore test for the moment on Windows. It will be easier to run once the
|
||||
// gradle protobuf plugin can support nano.
|
||||
if (osdetector.os != 'windows') {
|
||||
test.dependsOn('testGolden', 'testNanoGolden')
|
||||
}
|
||||
|
||||
task testGolden(type: Exec, dependsOn: 'generateTestProto') {
|
||||
def configureTestTask(Task task, String suffix) {
|
||||
task.dependsOn "generateTest${suffix}Proto"
|
||||
if (osdetector.os != 'windows') {
|
||||
executable "diff"
|
||||
task.executable "diff"
|
||||
} else {
|
||||
executable "fc"
|
||||
task.executable "fc"
|
||||
}
|
||||
// File isn't found on Windows if last slash is forward-slash
|
||||
def slash = System.getProperty("file.separator")
|
||||
args "$buildDir/generated-sources/test/io/grpc/testing/integration" + slash + "TestServiceGrpc.java",
|
||||
"$projectDir/src/test/golden/TestService.java.txt"
|
||||
task.args "$buildDir/generated-sources/test${suffix}/io/grpc/testing/integration" + slash + "TestServiceGrpc.java",
|
||||
"$projectDir/src/test/golden/TestService${suffix}.java.txt"
|
||||
}
|
||||
|
||||
task testNanoGolden(type: Exec, dependsOn: 'java_pluginExecutable') {
|
||||
doFirst {
|
||||
temporaryDir.createNewFile();
|
||||
}
|
||||
|
||||
environment 'TEST_TMP_DIR', temporaryDir
|
||||
commandLine './src/test/run_nano_test.sh'
|
||||
}
|
||||
task testGolden(type: Exec)
|
||||
task testNanoGolden(type: Exec)
|
||||
configureTestTask(testGolden, '')
|
||||
configureTestTask(testNanoGolden, 'Nano')
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ -z "$TEST_TMP_DIR" ]; then
|
||||
echo '$TEST_TMP_DIR not set'
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
INPUT_FILE="proto/test.proto"
|
||||
OUTPUT_FILE="$TEST_TMP_DIR/TestServiceGrpc.src.jar"
|
||||
GRPC_FILE="$TEST_TMP_DIR/io/grpc/testing/integration/TestServiceGrpc.java"
|
||||
GOLDEN_FILE="golden/TestServiceNano.java.txt"
|
||||
|
||||
protoc --plugin=protoc-gen-java_rpc=../../build/binaries/java_pluginExecutable/protoc-gen-grpc-java \
|
||||
--java_rpc_out=nano=true:"$OUTPUT_FILE" "$INPUT_FILE" && \
|
||||
unzip -o -d "$TEST_TMP_DIR" "$OUTPUT_FILE" && \
|
||||
diff "$GRPC_FILE" "$GOLDEN_FILE" && \
|
||||
echo "PASS"
|
||||
Loading…
Reference in New Issue