aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/run_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tools/run_tests')
-rw-r--r--tools/run_tests/artifacts/artifact_targets.py46
-rw-r--r--tools/run_tests/artifacts/build_artifact_node.bat48
-rwxr-xr-xtools/run_tests/artifacts/build_artifact_node.sh51
-rwxr-xr-xtools/run_tests/artifacts/build_package_node.sh84
-rw-r--r--tools/run_tests/artifacts/distribtest_targets.py52
-rw-r--r--tools/run_tests/artifacts/package_targets.py19
-rw-r--r--tools/run_tests/helper_scripts/build_node.bat29
-rwxr-xr-xtools/run_tests/helper_scripts/build_node.sh34
-rwxr-xr-xtools/run_tests/helper_scripts/build_node_electron.sh32
-rw-r--r--tools/run_tests/helper_scripts/pre_build_node.bat20
-rwxr-xr-xtools/run_tests/helper_scripts/pre_build_node.sh28
-rwxr-xr-xtools/run_tests/helper_scripts/pre_build_node_electron.sh24
-rw-r--r--tools/run_tests/helper_scripts/run_node.bat18
-rwxr-xr-xtools/run_tests/helper_scripts/run_node.sh48
-rwxr-xr-xtools/run_tests/helper_scripts/run_node_electron.sh30
-rwxr-xr-xtools/run_tests/performance/kill_workers.sh3
-rwxr-xr-xtools/run_tests/performance/run_worker_node.sh23
-rw-r--r--tools/run_tests/performance/scenario_config.py125
-rw-r--r--tools/run_tests/python_utils/filter_pull_request_tests.py5
-rwxr-xr-xtools/run_tests/run_tests.py135
-rwxr-xr-xtools/run_tests/run_tests_matrix.py42
-rwxr-xr-xtools/run_tests/sanity/check_test_filtering.py7
22 files changed, 7 insertions, 896 deletions
diff --git a/tools/run_tests/artifacts/artifact_targets.py b/tools/run_tests/artifacts/artifact_targets.py
index 2cc0dfceab..ea202edb30 100644
--- a/tools/run_tests/artifacts/artifact_targets.py
+++ b/tools/run_tests/artifacts/artifact_targets.py
@@ -230,50 +230,6 @@ class CSharpExtArtifact:
def __str__(self):
return self.name
-
-node_gyp_arch_map = {
- 'x86': 'ia32',
- 'x64': 'x64'
-}
-
-class NodeExtArtifact:
- """Builds Node native extension"""
-
- def __init__(self, platform, arch):
- self.name = 'node_ext_{0}_{1}'.format(platform, arch)
- self.platform = platform
- self.arch = arch
- self.gyp_arch = node_gyp_arch_map[arch]
- self.labels = ['artifact', 'node', platform, arch]
-
- def pre_build_jobspecs(self):
- return []
-
- def build_jobspec(self):
- if self.platform == 'windows':
- # Simultaneous builds of node on the same windows machine are flaky.
- # Set x86 build as exclusive to make sure there is only one node build
- # at a time. See https://github.com/grpc/grpc/issues/8293
- cpu_cost = 1e6 if self.arch != 'x64' else 1.0
- return create_jobspec(self.name,
- ['tools\\run_tests\\artifacts\\build_artifact_node.bat',
- self.gyp_arch],
- use_workspace=True,
- timeout_seconds=45*60,
- cpu_cost=cpu_cost)
- else:
- if self.platform == 'linux':
- return create_docker_jobspec(
- self.name,
- 'tools/dockerfile/grpc_artifact_linux_{}'.format(self.arch),
- 'tools/run_tests/artifacts/build_artifact_node.sh {} {}'.format(
- self.gyp_arch, self.platform))
- else:
- return create_jobspec(self.name,
- ['tools/run_tests/artifacts/build_artifact_node.sh',
- self.gyp_arch, self.platform],
- use_workspace=True)
-
class PHPArtifact:
"""Builds PHP PECL package"""
@@ -344,7 +300,7 @@ class ProtocArtifact:
def targets():
"""Gets list of supported targets"""
return ([Cls(platform, arch)
- for Cls in (CSharpExtArtifact, NodeExtArtifact, ProtocArtifact)
+ for Cls in (CSharpExtArtifact, ProtocArtifact)
for platform in ('linux', 'macos', 'windows')
for arch in ('x86', 'x64')] +
[PythonArtifact('linux', 'x86', 'cp27-cp27m'),
diff --git a/tools/run_tests/artifacts/build_artifact_node.bat b/tools/run_tests/artifacts/build_artifact_node.bat
deleted file mode 100644
index 7f1d1aad23..0000000000
--- a/tools/run_tests/artifacts/build_artifact_node.bat
+++ /dev/null
@@ -1,48 +0,0 @@
-@rem Copyright 2016 gRPC authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-
-set node_versions=4.0.0 5.0.0 6.0.0 7.0.0 8.0.0
-
-set electron_versions=1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0
-
-set PATH=%PATH%;C:\Program Files\nodejs\;%APPDATA%\npm
-
-del /f /q BUILD || rmdir build /s /q
-
-call npm update || goto :error
-
-mkdir -p %ARTIFACTS_OUT%
-
-for %%v in (%node_versions%) do (
- call .\node_modules\.bin\node-pre-gyp.cmd configure build --target=%%v --target_arch=%1
-
-@rem Try again after removing openssl headers
- rmdir "%USERPROFILE%\.node-gyp\%%v\include\node\openssl" /S /Q
- rmdir "%USERPROFILE%\.node-gyp\iojs-%%v\include\node\openssl" /S /Q
- call .\node_modules\.bin\node-pre-gyp.cmd build package --target=%%v --target_arch=%1 || goto :error
-
- xcopy /Y /I /S build\stage\* %ARTIFACTS_OUT%\ || goto :error
-)
-
-for %%v in (%electron_versions%) do (
- cmd /V /C "set "HOME=%USERPROFILE%\electron-gyp" && call .\node_modules\.bin\node-pre-gyp.cmd configure rebuild package --runtime=electron --target=%%v --target_arch=%1 --disturl=https://atom.io/download/electron" || goto :error
-
- xcopy /Y /I /S build\stage\* %ARTIFACTS_OUT%\ || goto :error
-)
-if %errorlevel% neq 0 exit /b %errorlevel%
-
-goto :EOF
-
-:error
-exit /b 1
diff --git a/tools/run_tests/artifacts/build_artifact_node.sh b/tools/run_tests/artifacts/build_artifact_node.sh
deleted file mode 100755
index 628d880f16..0000000000
--- a/tools/run_tests/artifacts/build_artifact_node.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-# Copyright 2016 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-NODE_TARGET_ARCH=$1
-NODE_TARGET_OS=$2
-source ~/.nvm/nvm.sh
-
-nvm use 8
-set -ex
-
-cd $(dirname $0)/../../..
-
-rm -rf build || true
-
-mkdir -p "${ARTIFACTS_OUT}"
-
-npm update
-
-node_versions=( 4.0.0 5.0.0 6.0.0 7.0.0 8.0.0 )
-
-electron_versions=( 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 )
-
-for version in ${node_versions[@]}
-do
- ./node_modules/.bin/node-pre-gyp configure rebuild package --target=$version --target_arch=$NODE_TARGET_ARCH --grpc_alpine=true
- cp -r build/stage/* "${ARTIFACTS_OUT}"/
- if [ "$NODE_TARGET_ARCH" == 'x64' ] && [ "$NODE_TARGET_OS" == 'linux' ]
- then
- # Cross compile for ARM on x64
- CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ LD=arm-linux-gnueabihf-g++ ./node_modules/.bin/node-pre-gyp configure rebuild package testpackage --target=$version --target_arch=arm
- cp -r build/stage/* "${ARTIFACTS_OUT}"/
- fi
-done
-
-for version in ${electron_versions[@]}
-do
- HOME=~/.electron-gyp ./node_modules/.bin/node-pre-gyp configure rebuild package --runtime=electron --target=$version --target_arch=$NODE_TARGET_ARCH --disturl=https://atom.io/download/electron
- cp -r build/stage/* "${ARTIFACTS_OUT}"/
-done
diff --git a/tools/run_tests/artifacts/build_package_node.sh b/tools/run_tests/artifacts/build_package_node.sh
deleted file mode 100755
index 2860f68bc4..0000000000
--- a/tools/run_tests/artifacts/build_package_node.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-# Copyright 2016 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-source ~/.nvm/nvm.sh
-
-nvm use 8
-set -ex
-
-cd $(dirname $0)/../../..
-
-base=$(pwd)
-
-artifacts=$base/artifacts
-
-mkdir -p $artifacts
-cp -r $EXTERNAL_GIT_ROOT/platform={windows,linux,macos}/artifacts/node_ext_*/* $artifacts/ || true
-
-npm update
-npm pack
-
-cp grpc-*.tgz $artifacts/grpc.tgz
-
-mkdir -p bin
-
-cd $base/src/node/health_check
-npm pack
-cp grpc-health-check-*.tgz $artifacts/
-
-cd $base/src/node/tools
-npm update
-npm pack
-cp grpc-tools-*.tgz $artifacts/
-tools_version=$(npm list | grep -oP '(?<=grpc-tools@)\S+')
-
-output_dir=$artifacts/grpc-precompiled-binaries/node/grpc-tools/v$tools_version
-mkdir -p $output_dir
-
-well_known_protos=( any api compiler/plugin descriptor duration empty field_mask source_context struct timestamp type wrappers )
-
-for arch in {x86,x64}; do
- case $arch in
- x86)
- node_arch=ia32
- ;;
- *)
- node_arch=$arch
- ;;
- esac
- for plat in {windows,linux,macos}; do
- case $plat in
- windows)
- node_plat=win32
- ;;
- macos)
- node_plat=darwin
- ;;
- *)
- node_plat=$plat
- ;;
- esac
- rm -r bin/*
- input_dir="$EXTERNAL_GIT_ROOT/platform=${plat}/artifacts/protoc_${plat}_${arch}"
- cp $input_dir/protoc* bin/
- cp $input_dir/grpc_node_plugin* bin/
- mkdir -p bin/google/protobuf
- mkdir -p bin/google/protobuf/compiler # needed for plugin.proto
- for proto in "${well_known_protos[@]}"; do
- cp $base/third_party/protobuf/src/google/protobuf/$proto.proto bin/google/protobuf/$proto.proto
- done
- tar -czf $output_dir/$node_plat-$node_arch.tar.gz bin/
- done
-done
diff --git a/tools/run_tests/artifacts/distribtest_targets.py b/tools/run_tests/artifacts/distribtest_targets.py
index 797ed51c7f..9959651b6c 100644
--- a/tools/run_tests/artifacts/distribtest_targets.py
+++ b/tools/run_tests/artifacts/distribtest_targets.py
@@ -121,50 +121,6 @@ class CSharpDistribTest(object):
def __str__(self):
return self.name
-class NodeDistribTest(object):
- """Tests Node package"""
-
- def __init__(self, platform, arch, docker_suffix, node_version):
- self.name = 'node_npm_%s_%s_%s' % (platform, arch, node_version)
- self.platform = platform
- self.arch = arch
- self.node_version = node_version
- self.labels = ['distribtest', 'node', platform, arch,
- 'node-%s' % node_version]
- if docker_suffix is not None:
- self.name += '_%s' % docker_suffix
- self.docker_suffix = docker_suffix
- self.labels.append(docker_suffix)
-
- def pre_build_jobspecs(self):
- return []
-
- def build_jobspec(self):
- if self.platform == 'linux':
- linux32 = ''
- if self.arch == 'x86':
- linux32 = 'linux32'
- return create_docker_jobspec(self.name,
- 'tools/dockerfile/distribtest/node_%s_%s' % (
- self.docker_suffix,
- self.arch),
- '%s test/distrib/node/run_distrib_test.sh %s' % (
- linux32,
- self.node_version),
- copy_rel_path='test/distrib')
- elif self.platform == 'macos':
- return create_jobspec(self.name,
- ['test/distrib/node/run_distrib_test.sh',
- str(self.node_version)],
- environ={'EXTERNAL_GIT_ROOT': '../../../..'},
- use_workspace=True)
- else:
- raise Exception("Not supported yet.")
-
- def __str__(self):
- return self.name
-
-
class PythonDistribTest(object):
"""Tests Python package"""
@@ -329,14 +285,6 @@ def targets():
RubyDistribTest('linux', 'x64', 'ubuntu1504'),
RubyDistribTest('linux', 'x64', 'ubuntu1510'),
RubyDistribTest('linux', 'x64', 'ubuntu1604'),
- NodeDistribTest('macos', 'x64', None, '4'),
- NodeDistribTest('macos', 'x64', None, '5'),
- NodeDistribTest('linux', 'x86', 'jessie', '4'),
PHPDistribTest('linux', 'x64', 'jessie'),
PHPDistribTest('macos', 'x64'),
- ] + [
- NodeDistribTest('linux', 'x64', os, version)
- for os in ('wheezy', 'jessie', 'ubuntu1204', 'ubuntu1404',
- 'ubuntu1504', 'ubuntu1510', 'ubuntu1604')
- for version in ('4', '5')
]
diff --git a/tools/run_tests/artifacts/package_targets.py b/tools/run_tests/artifacts/package_targets.py
index 671d0f7b45..ff93bb30e8 100644
--- a/tools/run_tests/artifacts/package_targets.py
+++ b/tools/run_tests/artifacts/package_targets.py
@@ -89,24 +89,6 @@ class CSharpPackage:
def __str__(self):
return self.name
-
-class NodePackage:
- """Builds Node NPM package and collects precompiled binaries"""
-
- def __init__(self):
- self.name = 'node_package'
- self.labels = ['package', 'node', 'linux']
-
- def pre_build_jobspecs(self):
- return []
-
- def build_jobspec(self):
- return create_docker_jobspec(
- self.name,
- 'tools/dockerfile/grpc_artifact_linux_x64',
- 'tools/run_tests/artifacts/build_package_node.sh')
-
-
class RubyPackage:
"""Collects ruby gems created in the artifact phase"""
@@ -162,7 +144,6 @@ def targets():
"""Gets list of supported targets"""
return [CSharpPackage(),
CSharpPackage(linux=True),
- NodePackage(),
RubyPackage(),
PythonPackage(),
PHPPackage()]
diff --git a/tools/run_tests/helper_scripts/build_node.bat b/tools/run_tests/helper_scripts/build_node.bat
deleted file mode 100644
index 8986239b04..0000000000
--- a/tools/run_tests/helper_scripts/build_node.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@rem Copyright 2016 gRPC authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-
-set PATH=%PATH%;C:\Program Files\nodejs\;%APPDATA%\npm
-
-del /f /q BUILD || rmdir build /s /q
-
-call npm install --build-from-source
-
-@rem delete the redundant openssl headers
-for /f "delims=v" %%v in ('node --version') do (
- rmdir "%USERPROFILE%\.node-gyp\%%v\include\node\openssl" /S /Q
-)
-
-
-
-@rem rebuild, because it probably failed the first time
-call npm install --build-from-source %*
diff --git a/tools/run_tests/helper_scripts/build_node.sh b/tools/run_tests/helper_scripts/build_node.sh
deleted file mode 100755
index adae4a1e0f..0000000000
--- a/tools/run_tests/helper_scripts/build_node.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-# Copyright 2015 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-NODE_VERSION=$1
-source ~/.nvm/nvm.sh
-
-nvm use $NODE_VERSION
-set -ex
-
-CONFIG=${CONFIG:-opt}
-
-# change to grpc repo root
-cd $(dirname $0)/../../..
-
-case "$CONFIG" in
- 'dbg') config_flags='--debug' ;;
- 'gcov') config_flags="--debug --grpc_gcov=true" ;;
- *) config_flag='--release' ;;
-esac
-
-npm install --unsafe-perm --build-from-source $config_flag
diff --git a/tools/run_tests/helper_scripts/build_node_electron.sh b/tools/run_tests/helper_scripts/build_node_electron.sh
deleted file mode 100755
index 424da2c6e3..0000000000
--- a/tools/run_tests/helper_scripts/build_node_electron.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-# Copyright 2016 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-ELECTRON_VERSION=$1
-source ~/.nvm/nvm.sh
-
-nvm use 8
-set -ex
-
-# change to grpc repo root
-cd $(dirname $0)/../..
-
-export npm_config_target=$ELECTRON_VERSION
-export npm_config_disturl=https://atom.io/download/atom-shell
-export npm_config_runtime=electron
-export npm_config_build_from_source=true
-mkdir -p ~/.electron-gyp
-HOME=~/.electron-gyp npm update --prefer-online
-HOME=~/.electron-gyp npm install --unsafe-perm
diff --git a/tools/run_tests/helper_scripts/pre_build_node.bat b/tools/run_tests/helper_scripts/pre_build_node.bat
deleted file mode 100644
index ececc5755d..0000000000
--- a/tools/run_tests/helper_scripts/pre_build_node.bat
+++ /dev/null
@@ -1,20 +0,0 @@
-@rem Copyright 2016 gRPC authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-
-set PATH=%PATH%;C:\Program Files\nodejs\;%APPDATA%\npm
-
-@rem Update npm to at least version 5
-call npm update -g npm
-
-call npm update --prefer-online
diff --git a/tools/run_tests/helper_scripts/pre_build_node.sh b/tools/run_tests/helper_scripts/pre_build_node.sh
deleted file mode 100755
index d4702b8705..0000000000
--- a/tools/run_tests/helper_scripts/pre_build_node.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-# Copyright 2015 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-NODE_VERSION=$1
-source ~/.nvm/nvm.sh
-
-nvm install $NODE_VERSION
-set -ex
-
-export GRPC_CONFIG=${CONFIG:-opt}
-
-npm update --prefer-online
-
-npm install node-gyp-install
-./node_modules/.bin/node-gyp-install
diff --git a/tools/run_tests/helper_scripts/pre_build_node_electron.sh b/tools/run_tests/helper_scripts/pre_build_node_electron.sh
deleted file mode 100755
index 29394d294f..0000000000
--- a/tools/run_tests/helper_scripts/pre_build_node_electron.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-# Copyright 2016 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-ELECTRON_VERSION=$1
-
-nvm install 8
-set -ex
-
-npm install xvfb-maybe
-
-npm install electron@$ELECTRON_VERSION
diff --git a/tools/run_tests/helper_scripts/run_node.bat b/tools/run_tests/helper_scripts/run_node.bat
deleted file mode 100644
index 26f0628a95..0000000000
--- a/tools/run_tests/helper_scripts/run_node.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@rem Copyright 2016 gRPC authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-
-set PATH=%PATH%;C:\Program Files\nodejs\;%APPDATA%\npm
-set JUNIT_REPORT_PATH=src\node\report.xml
-set JUNIT_REPORT_STACK=1
-.\node_modules\.bin\mocha.cmd --reporter mocha-jenkins-reporter --timeout 8000 src\node\test \ No newline at end of file
diff --git a/tools/run_tests/helper_scripts/run_node.sh b/tools/run_tests/helper_scripts/run_node.sh
deleted file mode 100755
index 35640047ca..0000000000
--- a/tools/run_tests/helper_scripts/run_node.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-# Copyright 2015 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-NODE_VERSION=$1
-source ~/.nvm/nvm.sh
-
-nvm use $NODE_VERSION
-set -ex
-
-CONFIG=${CONFIG:-opt}
-
-# change to grpc repo root
-cd $(dirname $0)/../../..
-
-root=`pwd`
-
-test_directory='src/node/test'
-timeout=8000
-
-if [ "$CONFIG" = "gcov" ]
-then
- ./node_modules/.bin/istanbul cover --dir reports/node_coverage \
- -x **/interop/* ./node_modules/.bin/_mocha -- --timeout $timeout $test_directory
- cp -r reports/node_coverage/lcov-report/* reports/node_coverage/
- cd build
- gcov Release/obj.target/grpc/ext/*.o
- lcov --base-directory . --directory . -c -o coverage.info
- lcov -e coverage.info '**/src/node/ext/*' -o coverage.info
- genhtml -o ../reports/node_ext_coverage --num-spaces 2 \
- -t 'Node gRPC test coverage' coverage.info --rc genhtml_hi_limit=95 \
- --rc genhtml_med_limit=80 --no-prefix
-else
- JUNIT_REPORT_PATH=src/node/report.xml JUNIT_REPORT_STACK=1 \
- ./node_modules/.bin/mocha --timeout $timeout \
- --reporter mocha-jenkins-reporter $test_directory
-fi
diff --git a/tools/run_tests/helper_scripts/run_node_electron.sh b/tools/run_tests/helper_scripts/run_node_electron.sh
deleted file mode 100755
index 7d436b02cb..0000000000
--- a/tools/run_tests/helper_scripts/run_node_electron.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-# Copyright 2015 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-source ~/.nvm/nvm.sh
-
-nvm use 8
-set -ex
-
-# change to grpc repo root
-cd $(dirname $0)/../../..
-
-test_directory='src/node/test'
-timeout=8000
-
-JUNIT_REPORT_PATH=src/node/report.xml JUNIT_REPORT_STACK=1 \
- ./node_modules/.bin/xvfb-maybe \
- ./node_modules/.bin/electron-mocha --timeout $timeout \
- --reporter mocha-jenkins-reporter $test_directory
diff --git a/tools/run_tests/performance/kill_workers.sh b/tools/run_tests/performance/kill_workers.sh
index dd17eea5f2..efe7282c0a 100755
--- a/tools/run_tests/performance/kill_workers.sh
+++ b/tools/run_tests/performance/kill_workers.sh
@@ -30,9 +30,6 @@ ps -C dotnet -o pid=,cmd= | grep QpsWorker | awk '{print $1}' | xargs kill -9 ||
# Ruby
ps -C ruby -o pid=,cmd= | grep 'qps/worker.rb' | awk '{print $1}' | xargs kill -9 || true
-# Node
-ps -C node -o pid=,cmd= | grep 'performance/worker.js' | awk '{print $1}' | xargs kill -9 || true
-
# Python
ps -C python -o pid=,cmd= | grep 'qps_worker.py' | awk '{print $1}' | xargs kill -9 || true
diff --git a/tools/run_tests/performance/run_worker_node.sh b/tools/run_tests/performance/run_worker_node.sh
deleted file mode 100755
index 1286c831fb..0000000000
--- a/tools/run_tests/performance/run_worker_node.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# Copyright 2015 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-source ~/.nvm/nvm.sh
-nvm use 8
-
-set -ex
-
-cd $(dirname $0)/../../..
-
-node src/node/performance/worker.js $@
diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py
index ddaffa44af..cafac3dfad 100644
--- a/tools/run_tests/performance/scenario_config.py
+++ b/tools/run_tests/performance/scenario_config.py
@@ -628,86 +628,6 @@ class CSharpLanguage:
def __str__(self):
return 'csharp'
-
-class NodeLanguage:
-
- def __init__(self):
- pass
- self.safename = str(self)
-
- def worker_cmdline(self):
- return ['tools/run_tests/performance/run_worker_node.sh',
- '--benchmark_impl=grpc']
-
- def worker_port_offset(self):
- return 200
-
- def scenarios(self):
- # TODO(jtattermusch): make this scenario work
- yield _ping_pong_scenario(
- 'node_generic_streaming_ping_pong', rpc_type='STREAMING',
- client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
- use_generic_payload=True)
-
- yield _ping_pong_scenario(
- 'node_protobuf_streaming_ping_pong', rpc_type='STREAMING',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER')
-
- yield _ping_pong_scenario(
- 'node_protobuf_unary_ping_pong', rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- categories=[SCALABLE, SMOKETEST])
-
- yield _ping_pong_scenario(
- 'cpp_to_node_unary_ping_pong', rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- client_language='c++')
-
- yield _ping_pong_scenario(
- 'node_protobuf_unary_ping_pong_1MB', rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- req_size=1024*1024, resp_size=1024*1024,
- categories=[SCALABLE])
-
- sizes = [('1B', 1), ('1KB', 1024), ('10KB', 10 * 1024),
- ('1MB', 1024 * 1024), ('10MB', 10 * 1024 * 1024),
- ('100MB', 100 * 1024 * 1024)]
-
- for size_name, size in sizes:
- for secure in (True, False):
- yield _ping_pong_scenario(
- 'node_protobuf_unary_ping_pong_%s_resp_%s' %
- (size_name, 'secure' if secure else 'insecure'),
- rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- req_size=0, resp_size=size,
- secure=secure,
- categories=[SCALABLE])
-
- yield _ping_pong_scenario(
- 'node_protobuf_unary_qps_unconstrained', rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- unconstrained_client='async',
- categories=[SCALABLE, SMOKETEST])
-
- yield _ping_pong_scenario(
- 'node_protobuf_streaming_qps_unconstrained', rpc_type='STREAMING',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- unconstrained_client='async')
-
- yield _ping_pong_scenario(
- 'node_to_cpp_protobuf_async_unary_ping_pong', rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- server_language='c++', async_server_threads=1)
-
- yield _ping_pong_scenario(
- 'node_to_cpp_protobuf_async_streaming_ping_pong', rpc_type='STREAMING',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- server_language='c++', async_server_threads=1)
-
- def __str__(self):
- return 'node'
-
class PythonLanguage:
def __init__(self):
@@ -1018,55 +938,10 @@ class GoLanguage:
def __str__(self):
return 'go'
-class NodeExpressLanguage:
-
- def __init__(self):
- pass
- self.safename = str(self)
-
- def worker_cmdline(self):
- return ['tools/run_tests/performance/run_worker_node.sh',
- '--benchmark_impl=express']
-
- def worker_port_offset(self):
- return 700
-
- def scenarios(self):
- yield _ping_pong_scenario(
- 'node_express_json_unary_ping_pong', rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- categories=[SCALABLE, SMOKETEST])
-
- yield _ping_pong_scenario(
- 'node_express_json_async_unary_qps_unconstrained', rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- unconstrained_client='async',
- categories=[SCALABLE, SMOKETEST])
-
- sizes = [('1B', 1), ('1KB', 1024), ('10KB', 10 * 1024),
- ('1MB', 1024 * 1024), ('10MB', 10 * 1024 * 1024),
- ('100MB', 100 * 1024 * 1024)]
-
- for size_name, size in sizes:
- for secure in (True, False):
- yield _ping_pong_scenario(
- 'node_express_json_unary_ping_pong_%s_resp_%s' %
- (size_name, 'secure' if secure else 'insecure'),
- rpc_type='UNARY',
- client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- req_size=0, resp_size=size,
- secure=secure,
- categories=[SCALABLE])
-
- def __str__(self):
- return 'node_express'
-
LANGUAGES = {
'c++' : CXXLanguage(),
'csharp' : CSharpLanguage(),
- 'node' : NodeLanguage(),
- 'node_express': NodeExpressLanguage(),
'ruby' : RubyLanguage(),
'php7' : Php7Language(),
'php7_protobuf_c' : Php7Language(php7_protobuf_c=True),
diff --git a/tools/run_tests/python_utils/filter_pull_request_tests.py b/tools/run_tests/python_utils/filter_pull_request_tests.py
index 56d6e4e988..e880734651 100644
--- a/tools/run_tests/python_utils/filter_pull_request_tests.py
+++ b/tools/run_tests/python_utils/filter_pull_request_tests.py
@@ -47,7 +47,7 @@ class TestSuite:
_CORE_TEST_SUITE = TestSuite(['c'])
_CPP_TEST_SUITE = TestSuite(['c++'])
_CSHARP_TEST_SUITE = TestSuite(['csharp'])
-_NODE_TEST_SUITE = TestSuite(['node', 'grpc-node'])
+_NODE_TEST_SUITE = TestSuite(['grpc-node'])
_OBJC_TEST_SUITE = TestSuite(['objc'])
_PHP_TEST_SUITE = TestSuite(['php', 'php7'])
_PYTHON_TEST_SUITE = TestSuite(['python'])
@@ -72,7 +72,6 @@ _WHITELIST_DICT = {
'^summerofcode/': [],
'^src/cpp/': [_CPP_TEST_SUITE],
'^src/csharp/': [_CSHARP_TEST_SUITE],
- '^src/node/': [_NODE_TEST_SUITE],
'^src/objective\-c/': [_OBJC_TEST_SUITE],
'^src/php/': [_PHP_TEST_SUITE],
'^src/python/': [_PYTHON_TEST_SUITE],
@@ -82,12 +81,10 @@ _WHITELIST_DICT = {
'^test/cpp/': [_CPP_TEST_SUITE],
'^test/distrib/cpp/': [_CPP_TEST_SUITE],
'^test/distrib/csharp/': [_CSHARP_TEST_SUITE],
- '^test/distrib/node/': [_NODE_TEST_SUITE],
'^test/distrib/php/': [_PHP_TEST_SUITE],
'^test/distrib/python/': [_PYTHON_TEST_SUITE],
'^test/distrib/ruby/': [_RUBY_TEST_SUITE],
'^vsprojects/': [_WINDOWS_TEST_SUITE],
- 'binding\.gyp$': [_NODE_TEST_SUITE],
'composer\.json$': [_PHP_TEST_SUITE],
'config\.m4$': [_PHP_TEST_SUITE],
'CONTRIBUTING\.md$': [],
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 209925b5e6..766c1c0b7c 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -536,90 +536,6 @@ class RemoteNodeLanguage(object):
return 'grpc-node'
-class NodeLanguage(object):
-
- def __init__(self):
- self.platform = platform_string()
-
- def configure(self, config, args):
- self.config = config
- self.args = args
- # Note: electron ABI only depends on major and minor version, so that's all
- # we should specify in the compiler argument
- _check_compiler(self.args.compiler, ['default', 'node0.12',
- 'node4', 'node5', 'node6',
- 'node7', 'node8',
- 'electron1.3', 'electron1.6'])
- if self.args.compiler == 'default':
- self.runtime = 'node'
- self.node_version = '8'
- else:
- if self.args.compiler.startswith('electron'):
- self.runtime = 'electron'
- self.node_version = self.args.compiler[8:]
- else:
- self.runtime = 'node'
- # Take off the word "node"
- self.node_version = self.args.compiler[4:]
-
- def test_specs(self):
- if self.platform == 'windows':
- return [self.config.job_spec(['tools\\run_tests\\helper_scripts\\run_node.bat'])]
- else:
- run_script = 'run_node'
- if self.runtime == 'electron':
- run_script += '_electron'
- return [self.config.job_spec(['tools/run_tests/helper_scripts/{}.sh'.format(run_script),
- self.node_version],
- None,
- environ=_FORCE_ENVIRON_FOR_WRAPPERS)]
-
- def pre_build_steps(self):
- if self.platform == 'windows':
- return [['tools\\run_tests\\helper_scripts\\pre_build_node.bat']]
- else:
- build_script = 'pre_build_node'
- if self.runtime == 'electron':
- build_script += '_electron'
- return [['tools/run_tests/helper_scripts/{}.sh'.format(build_script),
- self.node_version]]
-
- def make_targets(self):
- return []
-
- def make_options(self):
- return []
-
- def build_steps(self):
- if self.platform == 'windows':
- if self.config == 'dbg':
- config_flag = '--debug'
- else:
- config_flag = '--release'
- return [['tools\\run_tests\\helper_scripts\\build_node.bat',
- config_flag]]
- else:
- build_script = 'build_node'
- if self.runtime == 'electron':
- build_script += '_electron'
- # building for electron requires a patch version
- self.node_version += '.0'
- return [['tools/run_tests/helper_scripts/{}.sh'.format(build_script),
- self.node_version]]
-
- def post_tests_steps(self):
- return []
-
- def makefile_name(self):
- return 'Makefile'
-
- def dockerfile_dir(self):
- return 'tools/dockerfile/test/node_jessie_%s' % _docker_arch_suffix(self.args.arch)
-
- def __str__(self):
- return 'node'
-
-
class PhpLanguage(object):
def configure(self, config, args):
@@ -1103,54 +1019,6 @@ class Sanity(object):
def __str__(self):
return 'sanity'
-class NodeExpressLanguage(object):
- """Dummy Node express test target to enable running express performance
- benchmarks"""
-
- def __init__(self):
- self.platform = platform_string()
-
- def configure(self, config, args):
- self.config = config
- self.args = args
- _check_compiler(self.args.compiler, ['default', 'node0.12',
- 'node4', 'node5', 'node6'])
- if self.args.compiler == 'default':
- self.node_version = '4'
- else:
- # Take off the word "node"
- self.node_version = self.args.compiler[4:]
-
- def test_specs(self):
- return []
-
- def pre_build_steps(self):
- if self.platform == 'windows':
- return [['tools\\run_tests\\helper_scripts\\pre_build_node.bat']]
- else:
- return [['tools/run_tests/helper_scripts/pre_build_node.sh', self.node_version]]
-
- def make_targets(self):
- return []
-
- def make_options(self):
- return []
-
- def build_steps(self):
- return []
-
- def post_tests_steps(self):
- return []
-
- def makefile_name(self):
- return 'Makefile'
-
- def dockerfile_dir(self):
- return 'tools/dockerfile/test/node_jessie_%s' % _docker_arch_suffix(self.args.arch)
-
- def __str__(self):
- return 'node_express'
-
# different configurations we can run under
with open('tools/run_tests/generated/configs.json') as f:
_CONFIGS = dict((cfg['config'], Config(**cfg)) for cfg in ast.literal_eval(f.read()))
@@ -1160,8 +1028,6 @@ _LANGUAGES = {
'c++': CLanguage('cxx', 'c++'),
'c': CLanguage('c', 'c'),
'grpc-node': RemoteNodeLanguage(),
- 'node': NodeLanguage(),
- 'node_express': NodeExpressLanguage(),
'php': PhpLanguage(),
'php7': Php7Language(),
'python': PythonLanguage(),
@@ -1311,7 +1177,6 @@ argp.add_argument('--compiler',
'gcc4.4', 'gcc4.6', 'gcc4.8', 'gcc4.9', 'gcc5.3', 'gcc_musl',
'clang3.4', 'clang3.5', 'clang3.6', 'clang3.7',
'python2.7', 'python3.4', 'python3.5', 'python3.6', 'pypy', 'pypy3', 'python_alpine', 'all_the_cpythons',
- 'node0.12', 'node4', 'node5', 'node6', 'node7', 'node8',
'electron1.3', 'electron1.6',
'coreclr',
'cmake', 'cmake_vs2015', 'cmake_vs2017'],
diff --git a/tools/run_tests/run_tests_matrix.py b/tools/run_tests/run_tests_matrix.py
index 34d839e0b8..7c58d8efb1 100755
--- a/tools/run_tests/run_tests_matrix.py
+++ b/tools/run_tests/run_tests_matrix.py
@@ -152,8 +152,8 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
extra_args=extra_args,
inner_jobs=inner_jobs,
timeout_seconds=_CPP_RUNTESTS_TIMEOUT)
-
- test_jobs += _generate_jobs(languages=['csharp', 'node', 'python'],
+
+ test_jobs += _generate_jobs(languages=['csharp', 'python'],
configs=['dbg', 'opt'],
platforms=['linux', 'macos', 'windows'],
labels=['basictests', 'multilang'],
@@ -168,7 +168,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
extra_args=extra_args,
inner_jobs=inner_jobs,
timeout_seconds=_CPP_RUNTESTS_TIMEOUT)
-
+
test_jobs += _generate_jobs(languages=['grpc-node', 'ruby', 'php'],
configs=['dbg', 'opt'],
platforms=['linux', 'macos'],
@@ -322,42 +322,6 @@ def _create_portability_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS)
inner_jobs=inner_jobs,
timeout_seconds=_CPP_RUNTESTS_TIMEOUT)
- test_jobs += _generate_jobs(languages=['node'],
- configs=['dbg'],
- platforms=['linux'],
- arch='default',
- compiler='electron1.6',
- labels=['portability', 'multilang'],
- extra_args=extra_args,
- inner_jobs=inner_jobs)
-
- test_jobs += _generate_jobs(languages=['node'],
- configs=['dbg'],
- platforms=['linux'],
- arch='default',
- compiler='node4',
- labels=['portability', 'multilang'],
- extra_args=extra_args,
- inner_jobs=inner_jobs)
-
- test_jobs += _generate_jobs(languages=['node'],
- configs=['dbg'],
- platforms=['linux'],
- arch='default',
- compiler='node6',
- labels=['portability', 'multilang'],
- extra_args=extra_args,
- inner_jobs=inner_jobs)
-
- test_jobs += _generate_jobs(languages=['node'],
- configs=['dbg'],
- platforms=['linux'],
- arch='default',
- compiler='node7',
- labels=['portability', 'multilang'],
- extra_args=extra_args,
- inner_jobs=inner_jobs)
-
return test_jobs
diff --git a/tools/run_tests/sanity/check_test_filtering.py b/tools/run_tests/sanity/check_test_filtering.py
index a523f087a1..ff4ecba8ab 100755
--- a/tools/run_tests/sanity/check_test_filtering.py
+++ b/tools/run_tests/sanity/check_test_filtering.py
@@ -25,7 +25,7 @@ sys.path.insert(0, os.path.abspath('tools/run_tests/'))
from run_tests_matrix import _create_test_jobs, _create_portability_test_jobs
import python_utils.filter_pull_request_tests as filter_pull_request_tests
-_LIST_OF_LANGUAGE_LABELS = ['c', 'c++', 'csharp', 'grpc-node', 'node', 'objc', 'php', 'php7', 'python', 'ruby']
+_LIST_OF_LANGUAGE_LABELS = ['c', 'c++', 'csharp', 'grpc-node', 'objc', 'php', 'php7', 'python', 'ruby']
_LIST_OF_PLATFORM_LABELS = ['linux', 'macos', 'windows']
class TestFilteringTest(unittest.TestCase):
@@ -87,8 +87,6 @@ class TestFilteringTest(unittest.TestCase):
filter_pull_request_tests._CPP_TEST_SUITE.labels])
self.test_filtering(['src/csharp/foo.bar'], [label for label in _LIST_OF_LANGUAGE_LABELS if label not in
filter_pull_request_tests._CSHARP_TEST_SUITE.labels])
- self.test_filtering(['src/node/foo.bar'], [label for label in _LIST_OF_LANGUAGE_LABELS if label not in
- filter_pull_request_tests._NODE_TEST_SUITE.labels])
self.test_filtering(['src/objective-c/foo.bar'], [label for label in _LIST_OF_LANGUAGE_LABELS if label not in
filter_pull_request_tests._OBJC_TEST_SUITE.labels])
self.test_filtering(['src/php/foo.bar'], [label for label in _LIST_OF_LANGUAGE_LABELS if label not in
@@ -103,9 +101,8 @@ class TestFilteringTest(unittest.TestCase):
[label for label in _LIST_OF_LANGUAGE_LABELS if label not in
filter_pull_request_tests._CPP_TEST_SUITE.labels and label not in
filter_pull_request_tests._CORE_TEST_SUITE.labels])
- self.test_filtering(['src/node/foo.bar', 'src/cpp/foo.bar', "src/csharp/foo.bar"],
+ self.test_filtering(['src/cpp/foo.bar', "src/csharp/foo.bar"],
[label for label in _LIST_OF_LANGUAGE_LABELS if label not in
- filter_pull_request_tests._NODE_TEST_SUITE.labels and label not in
filter_pull_request_tests._CPP_TEST_SUITE.labels and label not in
filter_pull_request_tests._CSHARP_TEST_SUITE.labels])
self.test_filtering(['src/objective-c/foo.bar', 'src/php/foo.bar', "src/python/foo.bar", "src/ruby/foo.bar"],