From a2ed77db5624f780e0e7625504e3233f45e6b08d Mon Sep 17 00:00:00 2001 From: Mehrdad Afshari Date: Mon, 18 Dec 2017 16:35:02 -0800 Subject: Add a sanity test for shellcheck Start by checking the scripts in tools/run_tests/helper_scripts. --- .../dockerfile/test/sanity/Dockerfile.template | 3 ++- tools/dockerfile/test/sanity/Dockerfile | 3 ++- tools/run_tests/sanity/check_shellcheck.sh | 27 ++++++++++++++++++++++ tools/run_tests/sanity/sanity_tests.yaml | 1 + 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100755 tools/run_tests/sanity/check_shellcheck.sh diff --git a/templates/tools/dockerfile/test/sanity/Dockerfile.template b/templates/tools/dockerfile/test/sanity/Dockerfile.template index fef569477e..c98f7d4176 100644 --- a/templates/tools/dockerfile/test/sanity/Dockerfile.template +++ b/templates/tools/dockerfile/test/sanity/Dockerfile.template @@ -29,7 +29,8 @@ libtool ${"\\"} curl ${"\\"} python-virtualenv ${"\\"} - python-lxml + python-lxml ${"\\"} + shellcheck RUN pip install simplejson mako #====================================== diff --git a/tools/dockerfile/test/sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile index e4a2972c0e..6e5a133a69 100644 --- a/tools/dockerfile/test/sanity/Dockerfile +++ b/tools/dockerfile/test/sanity/Dockerfile @@ -81,7 +81,8 @@ RUN apt-get update && apt-get install -y \ libtool \ curl \ python-virtualenv \ - python-lxml + python-lxml \ + shellcheck RUN pip install simplejson mako #====================================== diff --git a/tools/run_tests/sanity/check_shellcheck.sh b/tools/run_tests/sanity/check_shellcheck.sh new file mode 100755 index 0000000000..f9b09167db --- /dev/null +++ b/tools/run_tests/sanity/check_shellcheck.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Copyright 2017 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. + + +set -e + +ROOT="$(dirname "$0")/../../.." + +DIRS=( + 'tools/run_tests/helper_scripts' +) + +for dir in "${DIRS[@]}"; do + find "$ROOT/$dir/" -name "*.sh" -type f -print0 | xargs -n1 -0 shellcheck +done diff --git a/tools/run_tests/sanity/sanity_tests.yaml b/tools/run_tests/sanity/sanity_tests.yaml index 3ce864a8bd..dab991a7b1 100644 --- a/tools/run_tests/sanity/sanity_tests.yaml +++ b/tools/run_tests/sanity/sanity_tests.yaml @@ -3,6 +3,7 @@ - script: tools/run_tests/sanity/check_cache_mk.sh - script: tools/run_tests/sanity/check_owners.sh - script: tools/run_tests/sanity/check_sources_and_headers.py +- script: tools/run_tests/sanity/check_shellcheck.sh - script: tools/run_tests/sanity/check_submodules.sh - script: tools/run_tests/sanity/check_test_filtering.py - script: tools/run_tests/sanity/check_tracer_sanity.py -- cgit v1.2.3