From 739e31a437e18faf72e085ea5d01039b1670a45f Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 11 Sep 2017 17:38:02 -0700 Subject: [PATCH 1/2] Move interop, performance, and stress tests out of the native package --- gulpfile.js | 4 +++- test/gulpfile.js | 11 +++++++++ .../interop/async_delay_queue.js | 0 .../interop/interop_client.js | 5 ++-- .../interop/interop_server.js | 5 ++-- test/package.json | 23 +++++++++++++++++++ .../performance/benchmark_client.js | 5 ++-- .../performance/benchmark_client_express.js | 0 .../performance/benchmark_server.js | 5 ++-- .../performance/benchmark_server_express.js | 0 .../performance/generic_service.js | 0 .../performance/histogram.js | 0 .../performance/worker.js | 5 ++-- .../performance/worker_service_impl.js | 0 .../stress/metrics_client.js | 5 ++-- .../stress/metrics_server.js | 5 ++-- .../stress/stress_client.js | 3 ++- 17 files changed, 60 insertions(+), 16 deletions(-) create mode 100644 test/gulpfile.js rename {packages/grpc-native-core => test}/interop/async_delay_queue.js (100%) rename {packages/grpc-native-core => test}/interop/interop_client.js (99%) rename {packages/grpc-native-core => test}/interop/interop_server.js (98%) create mode 100644 test/package.json rename {packages/grpc-native-core => test}/performance/benchmark_client.js (98%) rename {packages/grpc-native-core => test}/performance/benchmark_client_express.js (100%) rename {packages/grpc-native-core => test}/performance/benchmark_server.js (97%) rename {packages/grpc-native-core => test}/performance/benchmark_server_express.js (100%) rename {packages/grpc-native-core => test}/performance/generic_service.js (100%) rename {packages/grpc-native-core => test}/performance/histogram.js (100%) rename {packages/grpc-native-core => test}/performance/worker.js (91%) rename {packages/grpc-native-core => test}/performance/worker_service_impl.js (100%) rename {packages/grpc-native-core => test}/stress/metrics_client.js (86%) rename {packages/grpc-native-core => test}/stress/metrics_server.js (90%) rename {packages/grpc-native-core => test}/stress/stress_client.js (97%) diff --git a/gulpfile.js b/gulpfile.js index a3d383c0..e4c165e6 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -8,7 +8,9 @@ require('./packages/grpc-js-core/gulpfile'); gulp.task('lint', 'Emit linting errors in source and test files', ['js.core.lint']); -gulp.task('build', 'Build packages', ['js.core.compile']); +gulp.task('link', 'Link local packages together', ['internal.test.link']); + +gulp.task('build', 'Build packages', ['js.core.compile', 'link']); gulp.task('clean', 'Delete generated files', ['js.core.clean']); diff --git a/test/gulpfile.js b/test/gulpfile.js new file mode 100644 index 00000000..98f308c0 --- /dev/null +++ b/test/gulpfile.js @@ -0,0 +1,11 @@ +const _gulp = require('gulp'); +const help = require('gulp-help'); +const run = require('gulp-run'); + +// gulp-help monkeypatches tasks to have an additional description parameter +const gulp = help(_gulp); + +gulp.task('internal.test.link', 'Link local copies of grpc packages', () => { + return run(`npm link ${__dirname}/../packages/grpc-native-core`).exec() + .pipe(gulp.dest('output')); +}); diff --git a/packages/grpc-native-core/interop/async_delay_queue.js b/test/interop/async_delay_queue.js similarity index 100% rename from packages/grpc-native-core/interop/async_delay_queue.js rename to test/interop/async_delay_queue.js diff --git a/packages/grpc-native-core/interop/interop_client.js b/test/interop/interop_client.js similarity index 99% rename from packages/grpc-native-core/interop/interop_client.js rename to test/interop/interop_client.js index f321d58a..4a764f4e 100644 --- a/packages/grpc-native-core/interop/interop_client.js +++ b/test/interop/interop_client.js @@ -20,9 +20,10 @@ var fs = require('fs'); var path = require('path'); -var grpc = require('..'); +// TODO(murgatroid99): use multiple grpc implementations +var grpc = require('grpc'); var testProto = grpc.load({ - root: __dirname + '/../../..', + root: __dirname + '/../packages/grpc-native-core/ext/grpc', file: 'src/proto/grpc/testing/test.proto'}).grpc.testing; var GoogleAuth = require('google-auth-library'); diff --git a/packages/grpc-native-core/interop/interop_server.js b/test/interop/interop_server.js similarity index 98% rename from packages/grpc-native-core/interop/interop_server.js rename to test/interop/interop_server.js index c2028af4..94bfd53a 100644 --- a/packages/grpc-native-core/interop/interop_server.js +++ b/test/interop/interop_server.js @@ -22,9 +22,10 @@ var fs = require('fs'); var path = require('path'); var _ = require('lodash'); var AsyncDelayQueue = require('./async_delay_queue'); -var grpc = require('..'); +// TODO(murgatroid99): use multiple grpc implementations +var grpc = require('grpc'); var testProto = grpc.load({ - root: __dirname + '/../../..', + root: __dirname + '/../packages/grpc-native-core/ext/grpc', file: 'src/proto/grpc/testing/test.proto'}).grpc.testing; var ECHO_INITIAL_KEY = 'x-grpc-test-echo-initial'; diff --git a/test/package.json b/test/package.json new file mode 100644 index 00000000..aa553dc1 --- /dev/null +++ b/test/package.json @@ -0,0 +1,23 @@ +{ + "name": "grpc-test-internal", + "version": "1.0.0", + "description": "Internal package for cross-package Node gRPC test code", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "Apache-2.0", + "dependencies": { + "async": "^2.5.0", + "body-parser": "^1.18.0", + "express": "^4.15.4", + "google-auth-library": "^0.11.0", + "grpc": "^1.6.0", + "gulp": "^3.9.1", + "gulp-help": "^1.6.1", + "gulp-run": "^1.7.1", + "lodash": "^4.17.4", + "poisson-process": "^0.2.2" + } +} diff --git a/packages/grpc-native-core/performance/benchmark_client.js b/test/performance/benchmark_client.js similarity index 98% rename from packages/grpc-native-core/performance/benchmark_client.js rename to test/performance/benchmark_client.js index 68afb8a6..974edc01 100644 --- a/packages/grpc-native-core/performance/benchmark_client.js +++ b/test/performance/benchmark_client.js @@ -35,9 +35,10 @@ var Histogram = require('./histogram'); var genericService = require('./generic_service'); -var grpc = require('../../../'); +// TODO(murgatroid99): use multiple grpc implementations +var grpc = require('grpc'); var serviceProto = grpc.load({ - root: __dirname + '/../../..', + root: __dirname + '/../packages/grpc-native-core/ext/grpc', file: 'src/proto/grpc/testing/services.proto'}).grpc.testing; /** diff --git a/packages/grpc-native-core/performance/benchmark_client_express.js b/test/performance/benchmark_client_express.js similarity index 100% rename from packages/grpc-native-core/performance/benchmark_client_express.js rename to test/performance/benchmark_client_express.js diff --git a/packages/grpc-native-core/performance/benchmark_server.js b/test/performance/benchmark_server.js similarity index 97% rename from packages/grpc-native-core/performance/benchmark_server.js rename to test/performance/benchmark_server.js index 8d3a2b90..a39c5ec6 100644 --- a/packages/grpc-native-core/performance/benchmark_server.js +++ b/test/performance/benchmark_server.js @@ -30,9 +30,10 @@ var util = require('util'); var genericService = require('./generic_service'); -var grpc = require('../../../'); +// TODO(murgatroid99): use multiple grpc implementations +var grpc = require('grpc'); var serviceProto = grpc.load({ - root: __dirname + '/../../..', + root: __dirname + '/../packages/grpc-native-core/ext/grpc', file: 'src/proto/grpc/testing/services.proto'}).grpc.testing; /** diff --git a/packages/grpc-native-core/performance/benchmark_server_express.js b/test/performance/benchmark_server_express.js similarity index 100% rename from packages/grpc-native-core/performance/benchmark_server_express.js rename to test/performance/benchmark_server_express.js diff --git a/packages/grpc-native-core/performance/generic_service.js b/test/performance/generic_service.js similarity index 100% rename from packages/grpc-native-core/performance/generic_service.js rename to test/performance/generic_service.js diff --git a/packages/grpc-native-core/performance/histogram.js b/test/performance/histogram.js similarity index 100% rename from packages/grpc-native-core/performance/histogram.js rename to test/performance/histogram.js diff --git a/packages/grpc-native-core/performance/worker.js b/test/performance/worker.js similarity index 91% rename from packages/grpc-native-core/performance/worker.js rename to test/performance/worker.js index d0fb3bcb..5a3f114e 100644 --- a/packages/grpc-native-core/performance/worker.js +++ b/test/performance/worker.js @@ -21,9 +21,10 @@ var console = require('console'); var WorkerServiceImpl = require('./worker_service_impl'); -var grpc = require('../../../'); +// TODO(murgatroid99): use multiple grpc implementations +var grpc = require('grpc'); var serviceProto = grpc.load({ - root: __dirname + '/../../..', + root: __dirname + '/../packages/grpc-native-core/ext/grpc', file: 'src/proto/grpc/testing/services.proto'}).grpc.testing; function runServer(port, benchmark_impl) { diff --git a/packages/grpc-native-core/performance/worker_service_impl.js b/test/performance/worker_service_impl.js similarity index 100% rename from packages/grpc-native-core/performance/worker_service_impl.js rename to test/performance/worker_service_impl.js diff --git a/packages/grpc-native-core/stress/metrics_client.js b/test/stress/metrics_client.js similarity index 86% rename from packages/grpc-native-core/stress/metrics_client.js rename to test/stress/metrics_client.js index 68506010..c0cb3eb8 100644 --- a/packages/grpc-native-core/stress/metrics_client.js +++ b/test/stress/metrics_client.js @@ -18,9 +18,10 @@ 'use strict'; -var grpc = require('../../..'); +// TODO(murgatroid99): use multiple grpc implementations +var grpc = require('grpc'); -var proto = grpc.load(__dirname + '/../../proto/grpc/testing/metrics.proto'); +var proto = grpc.load(__dirname + '/../packages/grpc-native-core/ext/grpc/src/proto/grpc/testing/metrics.proto'); var metrics = proto.grpc.testing; function main() { diff --git a/packages/grpc-native-core/stress/metrics_server.js b/test/stress/metrics_server.js similarity index 90% rename from packages/grpc-native-core/stress/metrics_server.js rename to test/stress/metrics_server.js index 52ef27be..70848f3b 100644 --- a/packages/grpc-native-core/stress/metrics_server.js +++ b/test/stress/metrics_server.js @@ -20,9 +20,10 @@ var _ = require('lodash'); -var grpc = require('../../..'); +// TODO(murgatroid99): use multiple grpc implementations +var grpc = require('grpc'); -var proto = grpc.load(__dirname + '/../../proto/grpc/testing/metrics.proto'); +var proto = grpc.load(__dirname + '/../packages/grpc-native-core/ext/grpc/src/proto/grpc/testing/metrics.proto'); var metrics = proto.grpc.testing; function getGauge(call, callback) { diff --git a/packages/grpc-native-core/stress/stress_client.js b/test/stress/stress_client.js similarity index 97% rename from packages/grpc-native-core/stress/stress_client.js rename to test/stress/stress_client.js index fc35d45f..35f6510b 100644 --- a/packages/grpc-native-core/stress/stress_client.js +++ b/test/stress/stress_client.js @@ -20,7 +20,8 @@ var _ = require('lodash'); -var grpc = require('../../..'); +// TODO(murgatroid99): use multiple grpc implementations +var grpc = require('grpc'); var interop_client = require('../interop/interop_client'); var MetricsServer = require('./metrics_server'); From d6ec9fbbef4f3046469e5de7a8ac6d455ab70455 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Tue, 12 Sep 2017 13:22:43 -0700 Subject: [PATCH 2/2] Remove test package, fix some gulpfile issues --- gulpfile.js | 1 + package.json | 10 +++++++++- test/package.json | 23 ----------------------- 3 files changed, 10 insertions(+), 24 deletions(-) delete mode 100644 test/package.json diff --git a/gulpfile.js b/gulpfile.js index e4c165e6..d742618f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -5,6 +5,7 @@ const help = require('gulp-help'); const gulp = help(_gulp); require('./packages/grpc-js-core/gulpfile'); +require('./test/gulpfile'); gulp.task('lint', 'Emit linting errors in source and test files', ['js.core.lint']); diff --git a/package.json b/package.json index f9b57cf2..ee3b4830 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,16 @@ }, "license": "Apache-2.0", "devDependencies": { + "async": "^2.5.0", + "body-parser": "^1.18.0", + "express": "^4.15.4", + "google-auth-library": "^0.11.0", + "grpc": "^1.6.0", "gulp": "^3.9.1", - "gulp-help": "^1.6.1" + "gulp-help": "^1.6.1", + "gulp-run": "^1.7.1", + "lodash": "^4.17.4", + "poisson-process": "^0.2.2" }, "scripts": { "install": "cd packages/grpc-js-core && npm install" diff --git a/test/package.json b/test/package.json deleted file mode 100644 index aa553dc1..00000000 --- a/test/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "grpc-test-internal", - "version": "1.0.0", - "description": "Internal package for cross-package Node gRPC test code", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "Apache-2.0", - "dependencies": { - "async": "^2.5.0", - "body-parser": "^1.18.0", - "express": "^4.15.4", - "google-auth-library": "^0.11.0", - "grpc": "^1.6.0", - "gulp": "^3.9.1", - "gulp-help": "^1.6.1", - "gulp-run": "^1.7.1", - "lodash": "^4.17.4", - "poisson-process": "^0.2.2" - } -}