summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIWASE Yusuke <iwase.yusuke0@gmail.com>2018-01-12 14:51:03 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2018-01-24 08:18:50 +0900
commit8420d732b682a16fa34fb50725ce4c717287ecfd (patch)
tree802e7a0f53674a7cb12e946b73c557d5e9c92396
parent549b7037381ec51d0c5b9a0abbe8f73000fda70c (diff)
travis: Script to checkout use of avoided functions
For the 32-bit platform compatibility, strconv.Atoi() should be replaced by strconv.ParseUint() or strconv.ParseInt(). This scripts prevents the use of these functions which should not be used with some reasons. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
-rw-r--r--.travis.yml6
-rwxr-xr-xtools/grep_avoided_functions.sh27
2 files changed, 31 insertions, 2 deletions
diff --git a/.travis.yml b/.travis.yml
index 4ee2755b..d286c2ed 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -174,11 +174,13 @@ matrix:
env:
- TEST=bgp_confederation_test.py
#
-# Spell Check
+# Tools
#
- <<: *_python
install: pip install scspell3k
- script: bash tools/spell-check/scspell.sh
+ script:
+ - bash tools/spell-check/scspell.sh
+ - bash tools/grep_avoided_functions.sh
cache:
pip: true
diff --git a/tools/grep_avoided_functions.sh b/tools/grep_avoided_functions.sh
new file mode 100755
index 00000000..d5b6494b
--- /dev/null
+++ b/tools/grep_avoided_functions.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+# List of functions which should not be used with remarkable reasons
+FUNCS=(
+# On a 32-bit platform, int type is not big enough to convert into uint32 type.
+# strconv.Atoi() should be replaced by strconv.ParseUint() or
+# strconv.ParseInt().
+'strconv\.Atoi'
+)
+
+SCRIPT_DIR=`dirname $0`
+
+RESULT=0
+
+for FUNC in ${FUNCS[@]}
+do
+ for GO_PKG in $(go list github.com/osrg/gobgp/... | grep -v '/vendor/')
+ do
+ grep ${FUNC} -r ${GOPATH}/src/${GO_PKG}
+ if [ $? -ne 1 ]
+ then
+ RESULT=1
+ fi
+ done
+done
+
+exit $RESULT \ No newline at end of file