diff --git a/gulpfile.js b/gulpfile.js index 7bcf804e..2024412a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -32,7 +32,11 @@ gulp.task('link', 'Link local packages together after building', gulp.task('setup', 'One-time setup for a clean repository', ['install.all', 'link']); -gulp.task('clean', 'Delete generated files', ['js.core.clean']); +gulp.task('clean', 'Delete generated files', ['js.core.clean', 'native.core.clean']); + +gulp.task('clean.all', 'Delete all files created by tasks', + ['js.core.clean.all', 'native.core.clean.all', 'health-check.clean.all', + 'internal.test.clean.all']); gulp.task('native.test.only', 'Run tests of native code without rebuilding anything', ['native.core.test', 'internal.test.test', 'health-check.test']); diff --git a/package.json b/package.json index 1211e297..f8aaf17b 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "express": "^4.15.4", "google-auth-library": "^0.11.0", "lodash": "^4.17.4", + "mocha-jenkins-reporter": "^0.3.9", "poisson-process": "^0.2.2" }, "devDependencies": { diff --git a/packages/grpc-health-check/gulpfile.js b/packages/grpc-health-check/gulpfile.js index e66ec72a..7c66a9cd 100644 --- a/packages/grpc-health-check/gulpfile.js +++ b/packages/grpc-health-check/gulpfile.js @@ -3,6 +3,7 @@ const help = require('gulp-help'); const mocha = require('gulp-mocha'); const execa = require('execa'); const path = require('path'); +const del = require('del'); const gulp = help(_gulp); @@ -10,8 +11,15 @@ const healthCheckDir = __dirname; const baseDir = path.resolve(healthCheckDir, '..', '..'); const testDir = path.resolve(healthCheckDir, 'test'); +gulp.task('health-check.clean.links', 'Delete npm links', () => { + return del(path.resolve(healthCheckDir, 'node_modules/grpc')); +}); + +gulp.task('health-check.clean.all', 'Delete all code created by tasks', + ['health-check.clean.links']); + gulp.task('health-check.install', 'Install health check dependencies', () => { - return execa('npm', ['install'], {cwd: healthCheckDir, stdio: 'inherit'}); + return execa('npm', ['install', '--unsafe-perm'], {cwd: healthCheckDir, stdio: 'inherit'}); }); gulp.task('health-check.link.add', 'Link local copy of grpc', ['health-check.install'], () => { @@ -20,5 +28,5 @@ gulp.task('health-check.link.add', 'Link local copy of grpc', ['health-check.ins gulp.task('health-check.test', 'Run health check tests', () => { - return gulp.src(`${testDir}/*.js`).pipe(mocha()); + return gulp.src(`${testDir}/*.js`).pipe(mocha({reporter: 'mocha-jenkins-reporter'})); }); diff --git a/packages/grpc-js-core/gulpfile.js b/packages/grpc-js-core/gulpfile.js index c8b8f70f..5a787084 100644 --- a/packages/grpc-js-core/gulpfile.js +++ b/packages/grpc-js-core/gulpfile.js @@ -81,7 +81,7 @@ function makeCompileFn(globs) { } gulp.task('js.core.install', 'Install native core dependencies', () => { - return execa('npm', ['install'], {cwd: jsCoreDir, stdio: 'inherit'}); + return execa('npm', ['install', '--unsafe-perm'], {cwd: jsCoreDir, stdio: 'inherit'}); }); /** @@ -103,6 +103,9 @@ gulp.task('js.core.clean', 'Deletes transpiled code.', () => { return del(outDir); }); +gulp.task('js.core.clean.all', 'Deletes all files added by targets', + ['js.core.clean']); + /** * Transpiles TypeScript files in src/ to JavaScript according to the settings * found in tsconfig.json. @@ -124,7 +127,7 @@ gulp.task('js.core.test.compile', 'After dep tasks, transpiles test/.', ['js.cor gulp.task('js.core.test', 'After dep tasks, runs all tests.', ['js.core.test.compile'], () => { return gulp.src(`${outDir}/test/**/*.js`) - .pipe(mocha()); + .pipe(mocha({reporter: 'mocha-jenkins-reporter'})); } ); diff --git a/packages/grpc-native-core/gulpfile.js b/packages/grpc-native-core/gulpfile.js index 00b1ffd8..7d85cf5b 100644 --- a/packages/grpc-native-core/gulpfile.js +++ b/packages/grpc-native-core/gulpfile.js @@ -8,6 +8,7 @@ const jshint = require('gulp-jshint'); const mocha = require('gulp-mocha'); const execa = require('execa'); const path = require('path'); +const del = require('del'); const nativeCoreDir = __dirname; const srcDir = path.resolve(nativeCoreDir, 'src'); @@ -16,8 +17,16 @@ const testDir = path.resolve(nativeCoreDir, 'test'); const pkg = require('./package'); const jshintConfig = pkg.jshintConfig; +gulp.task('native.core.clean', 'Delete generated files', () => { + return del([path.resolve(nativeCoreDir, 'build'), + path.resolve(nativeCoreDir, 'ext/node')]); +}); + +gulp.task('native.core.clean.all', 'Delete all files created by tasks', + ['native.core.clean']); + gulp.task('native.core.install', 'Install native core dependencies', () => { - return execa('npm', ['install', '--build-from-source'], + return execa('npm', ['install', '--build-from-source', '--unsafe-perm'], {cwd: nativeCoreDir, stdio: 'inherit'}); }); @@ -36,5 +45,5 @@ gulp.task('native.core.build', 'Build native package', () => { }); gulp.task('native.core.test', 'Run all tests', ['native.core.build'], () => { - return gulp.src(`${testDir}/*.js`).pipe(mocha()); + return gulp.src(`${testDir}/*.js`).pipe(mocha({reporter: 'mocha-jenkins-reporter'})); }); diff --git a/packages/grpc-native-core/package.json b/packages/grpc-native-core/package.json index 26d43447..19828430 100644 --- a/packages/grpc-native-core/package.json +++ b/packages/grpc-native-core/package.json @@ -46,7 +46,6 @@ "istanbul": "^0.4.4", "jsdoc": "^3.3.2", "minimist": "^1.1.0", - "mocha-jenkins-reporter": "^0.2.3", "poisson-process": "^0.2.1" }, "engines": { diff --git a/packages/grpc-native-core/src/client.js b/packages/grpc-native-core/src/client.js index 0d8120d3..4208da11 100644 --- a/packages/grpc-native-core/src/client.js +++ b/packages/grpc-native-core/src/client.js @@ -912,6 +912,9 @@ exports.makeClientConstructor = function(methods, serviceName, } // Associate all provided attributes with the method _.assign(ServiceClient.prototype[name], attrs); + if (attrs.originalName) { + ServiceClient.prototype[attrs.originalName] = ServiceClient.prototype[name]; + } }); ServiceClient.service = methods; diff --git a/run-tests.sh b/run-tests.sh index 530a5231..180517a2 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -29,11 +29,21 @@ if [ ! -n "$node_versions" ] ; then node_versions="4 5 6 7 8" fi +set +ex +nvm install lts/* +nvm use lts/* +set -ex + +npm install --unsafe-perm +./node_modules/.bin/gulp setup + +mkdir -p reports + # TODO(mlumish): Add electron tests for version in ${node_versions} do - git clean -f -d -x + cd $ROOT # Install and setup node for the version we want. set +ex echo "Switching to node version $version" @@ -41,12 +51,18 @@ do nvm use $version set -ex + mkdir -p "reports/node$version" + # Install dependencies and link packages together. - npm install - ./node_modules/.bin/gulp setup + ./node_modules/.bin/gulp clean.all + ./node_modules/.bin/gulp link # Rebuild libraries and run tests. - ./node_modules/.bin/gulp native.test || FAILED="true" + JUNIT_REPORT_PATH="reports/node$version/" JUNIT_REPORT_STACK=1 ./node_modules/.bin/gulp native.test || FAILED="true" + cd "reports/node$version" + for file in * ; do + mv $file $(echo $file | sed 's/\(.*\)\.xml/\1_sponge_log.xml/') + done done if [ "$FAILED" != "" ] diff --git a/test-grpc-submodule.sh b/test-grpc-submodule.sh index 35c3f3b0..862b70c2 100755 --- a/test-grpc-submodule.sh +++ b/test-grpc-submodule.sh @@ -15,6 +15,9 @@ # # This script updates the gRPC submodule to a given reference and run tests +# cd to gRPC-node root directory +cd $(dirname $0) + cd packages/grpc-native-core/deps/grpc/ # PR references are needed to test PRs from grpc/grpc diff --git a/test/api/surface_test.js b/test/api/surface_test.js index 72a20fb9..b2072fdd 100644 --- a/test/api/surface_test.js +++ b/test/api/surface_test.js @@ -215,6 +215,10 @@ describe('Client constructor building', function() { grpc.makeGenericClientConstructor(illegal_service_attrs); }, /\$/); }); + it('Should add aliases for original names', function() { + var Client = grpc.makeGenericClientConstructor(mathServiceAttrs); + assert.strictEqual(Client.prototype.add, Client.prototype.Add); + }); }); describe('waitForClientReady', function() { var server; diff --git a/test/gulpfile.js b/test/gulpfile.js index b3b49b1f..b66b6e01 100644 --- a/test/gulpfile.js +++ b/test/gulpfile.js @@ -3,6 +3,7 @@ const help = require('gulp-help'); const mocha = require('gulp-mocha'); const execa = require('execa'); const path = require('path'); +const del = require('del'); // gulp-help monkeypatches tasks to have an additional description parameter const gulp = help(_gulp); @@ -10,10 +11,17 @@ const gulp = help(_gulp); const testDir = __dirname; const apiTestDir = path.resolve(testDir, 'api'); +gulp.task('internal.test.clean.links', 'Delete npm links', () => { + return del(path.resolve(testDir, 'node_modules/grpc')); +}); + +gulp.task('internal.test.clean.all', 'Delete all files created by tasks', + ['internal.test.clean.links']); + gulp.task('internal.test.link.add', 'Link local copies of grpc packages', () => { return execa('npm', ['link', 'grpc'], {cwd: testDir, stdio: 'inherit'}); }); gulp.task('internal.test.test', 'Run API-level tests', () => { - return gulp.src(`${apiTestDir}/*.js`).pipe(mocha()); + return gulp.src(`${apiTestDir}/*.js`).pipe(mocha({reporter: 'mocha-jenkins-reporter'})); }); diff --git a/test/kokoro/linux.cfg b/test/kokoro/linux.cfg index 0bebf56a..99a4e8ce 100644 --- a/test/kokoro/linux.cfg +++ b/test/kokoro/linux.cfg @@ -17,3 +17,8 @@ # Location of the continuous shell script in repository. build_file: "grpc-node/kokoro.sh" timeout_mins: 60 +action { + define_artifacts { + regex: "github/grpc-node/reports/**" + } +} diff --git a/test/kokoro/macos.cfg b/test/kokoro/macos.cfg index 0bebf56a..99a4e8ce 100644 --- a/test/kokoro/macos.cfg +++ b/test/kokoro/macos.cfg @@ -17,3 +17,8 @@ # Location of the continuous shell script in repository. build_file: "grpc-node/kokoro.sh" timeout_mins: 60 +action { + define_artifacts { + regex: "github/grpc-node/reports/**" + } +}