Commit 750660e1 by Ben Clayton

Kokoro: Add style presubmit checks

Checks for Bug: line, licenses, clang-format (v 8.0.0) and gofmt. These checks are performed by a separate kokoro instance. Fixed up broken licenses that it found. Counterpart: cl/286343852 Bug: b/144825072 Bug: b/141892461 Change-Id: If4ffda0b6144efe3cd5560cf17a6f4ad33bf985a Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39708Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com> Tested-by: 's avatarBen Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
parent 6d3c7f55
// Copyright 2019 The SwiftShader Authors. All Rights Reserved.
//
// 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.
#include "EmulatedReactor.hpp"
#include <cmath>
......
// Copyright 2019 The SwiftShader Authors. All Rights Reserved.
//
// 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.
// These are not the headers you're looking for
#error "Missing googletest submodule. Run git submodule update --init"
\ No newline at end of file
// Copyright 2018 The SwiftShader Authors. All Rights Reserved.
//
// 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
//
......
SRC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
pushd ${SRC_DIR}
CLANG_FORMAT=${CLANG_FORMAT:-clang-format}
for DIR in "Device" "Pipeline" "Reactor" "System" "Vulkan" "WSI"
do
# Double clang-format, as it seems that one pass isn't always enough
find ${SRC_DIR}/$DIR -iname "*.hpp" -o -iname "*.cpp" -o -iname "*.inl" | xargs clang-format -i
find ${SRC_DIR}/$DIR -iname "*.hpp" -o -iname "*.cpp" -o -iname "*.inl" | xargs clang-format -i
find ${SRC_DIR}/${DIR} -iname "*.hpp" -o -iname "*.cpp" -o -iname "*.inl" | xargs ${CLANG_FORMAT} -i -style=file
find ${SRC_DIR}/${DIR} -iname "*.hpp" -o -iname "*.cpp" -o -iname "*.inl" | xargs ${CLANG_FORMAT} -i -style=file
done
popd
SRC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
pushd ${SRC_DIR}
for DIR in "Device" "Pipeline" "Reactor" "System" "Vulkan" "WSI"
do
# Double clang-format, as it seems that one pass isn't always enough
......@@ -11,5 +10,4 @@ do
CHANGE_ID="$(echo $CHANGE_ID_SEED $DIR | openssl sha1)"
git commit -m "clang-format the src/$DIR directory" -m "Bug: b/144825072" -m "Change-Id:I$CHANGE_ID"
done
popd
#!/bin/bash
set -x # Display commands being run.
# Download clang tar, verify.
CLANG_TAR=/tmp/clang-8.tar.xz
curl http://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz > ${CLANG_TAR}
echo "552ea458b70961b7922a4bbe9de1434688342dbf" ${CLANG_TAR} | sha1sum -c -
if [ $? -ne 0 ]
then
echo "clang download's sha was not as expected"
return 1
fi
set -e # Fail on any error
# Untar into tmp
CLANG_DIR=/tmp/clang-8
mkdir ${CLANG_DIR}
tar -xf ${CLANG_TAR} -C ${CLANG_DIR}
# Set up env vars
export CLANG_FORMAT=${CLANG_DIR}/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-14.04/bin/clang-format
# Run presubmit tests
cd git/SwiftShader
./tests/presubmit.sh
# Format: //devtools/kokoro/config/proto/build.proto
# Location of the continuous bash script in Git.
build_file: "SwiftShader/tests/kokoro/gcp_ubuntu/check_style.sh"
......@@ -2,19 +2,8 @@
cd git/SwiftShader
# Validate commit message
git log -1 --pretty=%B | grep -E '^Bug:|^Issue:|^Fixes:|^Regres:'
if [ $? -ne 0 ]
then
echo "error: Git commit message must have a Bug: line."
exit 1
fi
# Fail on any error.
set -e
# Display commands being run.
set -x
set -e # Fail on any error.
set -x # Display commands being run.
# Download all submodules
git submodule update --init
......
#!/bin/bash
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")"/.. >/dev/null 2>&1 && pwd )"
SRC_DIR=${ROOT_DIR}/src
TESTS_DIR=${ROOT_DIR}/tests
# Presubmit Checks Script.
CLANG_FORMAT=${CLANG_FORMAT:-clang-format}
GOFMT=${GOFMT:-gofmt}
if test -t 1; then
ncolors=$(tput colors)
if test -n "$ncolors" && test $ncolors -ge 8; then
normal="$(tput sgr0)"
red="$(tput setaf 1)"
green="$(tput setaf 2)"
fi
fi
function check() {
local name=$1; shift
echo -n "Running check $name... "
if ! "$@"; then
echo "${red}FAILED${normal}"
echo " Error executing: $@";
exit 1
fi
if ! git diff --quiet HEAD; then
echo "${red}FAILED${normal}"
echo " Git workspace not clean:"
git --no-pager diff -p HEAD
echo "${red}Check $name failed.${normal}"
exit 1
fi
echo "${green}OK${normal}"
}
# Validate commit message
function run_bug_in_commit_msg() {
git log -1 --pretty=%B | grep -E '^Bug:|^Issue:|^Fixes:|^Regres:'
if [ $? -ne 0 ]
then
echo "Git commit message must have a Bug: line."
return 1
fi
}
function run_copyright_headers() {
tmpfile=`mktemp`
for suffix in "cpp" "hpp" "go" "h"; do
# Grep flag '-L' print files that DO NOT match the copyright regex
# Grep seems to match "(standard input)", filter this out in the for loop output
find ${SRC_DIR} -type f -name "*.${suffix}" | xargs grep -L "Copyright .* The SwiftShader Authors\|Microsoft Visual C++ generated\|GNU Bison"
done | grep -v "(standard input)" > ${tmpfile}
if test -s ${tmpfile}; then
# tempfile is NOT empty
echo "Copyright issue in these files:"
cat ${tmpfile}
rm ${tmpfile}
return 1
else
rm ${tmpfile}
return 0
fi
}
function run_clang_format() {
${SRC_DIR}/clang-format-all.sh
}
function run_gofmt() {
find ${SRC_DIR} ${TESTS_DIR} -name "*.go" | xargs $GOFMT -w
}
# Ensure we are clean to start out with.
check "git workspace must be clean" true
# Check for 'Bug: ' line in commit
check bug-in-commi-msg run_bug_in_commit_msg
# Check copyright headers
check copyright-headers run_copyright_headers
# Check clang-format.
check clang-format run_clang_format
# Check gofmt.
check gofmt run_gofmt
echo
echo "${green}All check completed successfully.$normal"
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment