summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/command/docker-run26
-rwxr-xr-xscripts/command/docker-shell (renamed from scripts/command/docker_run.sh)0
-rwxr-xr-xscripts/command/docker_build_cross_arm_neurun.sh36
-rwxr-xr-xscripts/command/docker_build_cross_arm_ubuntu.sh44
-rwxr-xr-xscripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh22
-rwxr-xr-xscripts/command/docker_build_tizen_cross.sh22
-rwxr-xr-xscripts/command/docker_build_ubuntu_coverity.sh72
-rwxr-xr-xscripts/command/docker_build_ubuntu_svace.sh32
-rwxr-xr-xscripts/command/docker_coverage_report.sh26
-rwxr-xr-xscripts/command/docker_cross_test_coverage_build.sh34
-rw-r--r--scripts/command/docker_env_neurun1
-rw-r--r--scripts/command/docker_env_pureacl_tflite_benchmark_model2
-rwxr-xr-xscripts/command/docker_gbs_build.sh22
-rwxr-xr-xscripts/command/docker_run_test.sh36
-rwxr-xr-xscripts/command/format-checker.sh95
-rwxr-xr-xscripts/command/gen_coverage_report.sh23
-rw-r--r--scripts/command/nnfw_docker14
-rw-r--r--scripts/command/nnfw_docker_tizen14
-rwxr-xr-xscripts/command/run_coverity.sh60
-rwxr-xr-xscripts/command/tizen_xu4_test.sh26
-rw-r--r--scripts/docker/Dockerfile6
-rw-r--r--scripts/docker/Dockerfile_tizen5
-rw-r--r--scripts/docker_helper33
-rwxr-xr-xscripts/git-hooks/install_hooks.sh11
-rwxr-xr-xscripts/git-hooks/pre-push32
25 files changed, 481 insertions, 213 deletions
diff --git a/scripts/command/docker-run b/scripts/command/docker-run
new file mode 100644
index 000000000..386c68145
--- /dev/null
+++ b/scripts/command/docker-run
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+source $SCRIPT_ROOT/common.sh
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_HOME=/home
+
+GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME "$@"
+EXITCODE=$?
+
+docker_cleanup
+
+exit $EXITCODE
diff --git a/scripts/command/docker_run.sh b/scripts/command/docker-shell
index f4834f2ff..f4834f2ff 100755
--- a/scripts/command/docker_run.sh
+++ b/scripts/command/docker-shell
diff --git a/scripts/command/docker_build_cross_arm_neurun.sh b/scripts/command/docker_build_cross_arm_neurun.sh
new file mode 100755
index 000000000..4e1022a34
--- /dev/null
+++ b/scripts/command/docker_build_cross_arm_neurun.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
+
+HOST_HOME=$SCRIPT_ROOT/../..
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
+DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
+DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
+DOCKER_ENV_VARS+=" -e TARGET_OS=linux"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+
+# prepare rootfs
+if [[ ! -d $ROOTFS_DIR ]]; then
+ echo "cannot find rootfs"
+ exit 1
+fi
+
+DOCKER_VOLUMES+=" -v $ROOTFS_DIR/:/opt/rootfs"
+
+CMD="export OPTIONS=\" -DBUILD_NEURUN=ON -DBUILD_NN_RUNTIME=OFF \" && make acl && make && make install && make build_test_suite"
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+BUILD_RESULT=$?
+
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
+
+exit $BUILD_RESULT
diff --git a/scripts/command/docker_build_cross_arm_ubuntu.sh b/scripts/command/docker_build_cross_arm_ubuntu.sh
index fb3ac81c5..5da2bd6c3 100755
--- a/scripts/command/docker_build_cross_arm_ubuntu.sh
+++ b/scripts/command/docker_build_cross_arm_ubuntu.sh
@@ -2,37 +2,43 @@
SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-source $SCRIPT_ROOT/common.sh
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
HOST_HOME=$SCRIPT_ROOT/../..
-DOCKER_HOME=/home
-
-GIT_SSL_NO_VERIFY=1
DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
-DOCKER_ENV_VARS+=" -e http_proxy"
-DOCKER_ENV_VARS+=" -e no_proxy"
-DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
+DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
+DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
DOCKER_RUN_OPTS="--rm"
DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
-DOCKER_RUN_OPTS+=" -it"
-CMD="export TARGET_ARCH=armv7l && export CROSS_BUILD=1 && export BENCHMARK_ACL_BUILD=1 && make acl && make && make install"
+# prepare rootfs
+if [[ ! -d $ROOTFS_DIR ]]; then
+ echo "cannot find rootfs"
+ exit 1
+fi
+
+if [[ ! -z $ENV_FILE ]]; then
+ DOCKER_ENV_VARS+=" --env-file ${ENV_FILE} "
+fi
+
+DOCKER_VOLUMES+=" -v $ROOTFS_DIR:/opt/rootfs"
+
+if [ -n "$DOCKER_INTERACTIVE" ]; then
+ DOCKER_RUN_OPTS+=" -it"
+ CMD="/bin/bash"
+else
+ CMD="export BENCHMARK_ACL_BUILD=1 && make acl && make && make install && make build_test_suite"
+fi
docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
BUILD_RESULT=$?
-# Newly created files during above docker run can have different ownership.
-# This may cause some problems, for example, some jenkins slaves or developers
-# can't remove built files due to lack of permission.
-# To address this issue, let's change owner of all files
-# in NNFW to owner of NNFW.
-NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
-NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
-
-CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
-docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
exit $BUILD_RESULT
diff --git a/scripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh b/scripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh
index dcaaa97a8..b75be173d 100755
--- a/scripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh
+++ b/scripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh
@@ -2,19 +2,13 @@
SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-source $SCRIPT_ROOT/common.sh
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
HOST_HOME=$SCRIPT_ROOT/../..
-DOCKER_HOME=/home
-
-GIT_SSL_NO_VERIFY=1
DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
-DOCKER_ENV_VARS+=" -e http_proxy"
-DOCKER_ENV_VARS+=" -e no_proxy"
-DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
-
DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
@@ -48,15 +42,7 @@ fi
docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
BUILD_RESULT=$?
-# Newly created files during above docker run can have different ownership.
-# This may cause some problems, for example, some jenkins slaves or developers
-# can't remove built files due to lack of permission.
-# To address this issue, let's change owner of all files
-# in NNFW to owner of NNFW.
-NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
-NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
-
-CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
-docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
exit $BUILD_RESULT
diff --git a/scripts/command/docker_build_tizen_cross.sh b/scripts/command/docker_build_tizen_cross.sh
index a37a58cd9..3a45cfd4f 100755
--- a/scripts/command/docker_build_tizen_cross.sh
+++ b/scripts/command/docker_build_tizen_cross.sh
@@ -1,22 +1,14 @@
#!/bin/bash
-# default DOCKER_IMAGE_NAME=nnfw_docker
-DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
-echo "Using docker image $DOCKER_IMAGE_NAME"
-
SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-HOST_HOME=$SCRIPT_ROOT/../..
-DOCKER_HOME=/home
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
-GIT_SSL_NO_VERIFY=1
+HOST_HOME=$SCRIPT_ROOT/../..
DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
-DOCKER_ENV_VARS+=" -e http_proxy"
-DOCKER_ENV_VARS+=" -e no_proxy"
-DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
-
DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
@@ -38,11 +30,7 @@ CMD="make && make install && make build_test_suite"
docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
BUILD_RESULT=$?
-# change owner of root dir and delete rootfs dir
-NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
-NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
-
-CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
-docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
exit $BUILD_RESULT
diff --git a/scripts/command/docker_build_ubuntu_coverity.sh b/scripts/command/docker_build_ubuntu_coverity.sh
new file mode 100755
index 000000000..455303257
--- /dev/null
+++ b/scripts/command/docker_build_ubuntu_coverity.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
+
+HOST_HOME=$SCRIPT_ROOT/../..
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
+DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
+DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
+DOCKER_ENV_VARS+=" -e EXT_ACL_FOLDER=/opt/libarmcl"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+
+TMP_DIR=$HOST_HOME/tmp
+
+if [ ! -d $COVERITY_ANALYZER_DIR ]; then
+ echo "cannot find coverity-analyzer"
+ exit 1
+fi
+
+which $COVERITY_ANALYZER_DIR/bin/cov-analyze
+if [[ $? -ne 0 ]]; then
+ echo "cannot find coverity-analyzer"
+ exit 1
+fi
+
+pushd $HOST_HOME
+
+# prepare rootfs
+if [[ ! -d $ROOTFS_DIR ]]; then
+ echo "cannot find rootfs"
+ exit 1
+fi
+
+DOCKER_VOLUMES+=" -v $COVERITY_ANALYZER_DIR:/opt/cov-analyzer"
+DOCKER_VOLUMES+=" -v $ROOTFS_DIR:/opt/rootfs"
+DOCKER_VOLUMES+=" -v $COVERITY_OUT:/opt/cov-out"
+
+if [ -n "$DOCKER_INTERACTIVE" ]; then
+ DOCKER_RUN_OPTS+=" -it"
+ CMD="/bin/bash"
+else
+ CMD="make acl tflite && /opt/cov-analyzer/bin/cov-configure --template --compiler arm-linux-gnueabihf-gcc && /opt/cov-analyzer/bin/cov-build --dir /opt/cov-out make runtime testbuild"
+fi
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+BUILD_RESULT=$?
+
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
+
+# Reset host name (configuration of coverity is done in docker container)
+$COVERITY_ANALYZER_DIR/bin/cov-manage-emit --dir $COVERITY_OUT reset-host-name
+
+# Analyze build result
+$COVERITY_ANALYZER_DIR/bin/cov-analyze \
+ --dir $COVERITY_OUT --jobs auto --all --disable-test-metrics --security \
+ --concurrency --enable-constraint-fpp --fnptr-models --enable SIZECHECK \
+ --checker-option STRING_OVERFLOW:report_fixed_size_dest:no --checker-option OVERRUN:allow_symbol:no \
+ --checker-option PASS_BY_VALUE:unmodified_threshold:1024 --checker-option PASS_BY_VALUE:size_threshold:1024 \
+ -co NULL_RETURNS:stat_threshold:70 --enable INTEGER_OVERFLOW --enable INCOMPATIBLE_CAST \
+ --enable IDENTICAL_BRANCHES --enable UNINTENDED_INTEGER_DIVISION
+
+popd
+
+exit $BUILD_RESULT
diff --git a/scripts/command/docker_build_ubuntu_svace.sh b/scripts/command/docker_build_ubuntu_svace.sh
index a17e4da38..49f1ee336 100755
--- a/scripts/command/docker_build_ubuntu_svace.sh
+++ b/scripts/command/docker_build_ubuntu_svace.sh
@@ -1,19 +1,14 @@
#!/bin/bash
SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
-HOST_HOME=$SCRIPT_ROOT/../..
-DOCKER_HOME=/home
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
-GIT_SSL_NO_VERIFY=1
+HOST_HOME=$SCRIPT_ROOT/../..
DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
-DOCKER_ENV_VARS+=" -e http_proxy"
-DOCKER_ENV_VARS+=" -e no_proxy"
-DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
-
DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
@@ -37,12 +32,6 @@ fi
pushd $HOST_HOME
-# prepare armcl library
-if [[ ! -d $ARMCL_DIR ]]; then
- echo "cannot find armcl"
- exit 1
-fi
-
# prepare rootfs
if [[ ! -d $ROOTFS_DIR ]]; then
echo "cannot find rootfs"
@@ -57,28 +46,19 @@ fi
DOCKER_VOLUMES+=" -v $SVACE_ANALYZER_DIR:/opt/svace-analyzer"
DOCKER_VOLUMES+=" -v $ROOTFS_DIR:/opt/rootfs"
-DOCKER_VOLUMES+=" -v $ARMCL_DIR:/opt/libarmcl"
if [ -n "$DOCKER_INTERACTIVE" ]; then
DOCKER_RUN_OPTS+=" -it"
CMD="/bin/bash"
else
- CMD="make external_acl tflite && /opt/svace-analyzer/bin/svace init && /opt/svace-analyzer/bin/svace build make runtime testbuild"
+ CMD="make acl tflite && /opt/svace-analyzer/bin/svace init && /opt/svace-analyzer/bin/svace build make runtime testbuild"
fi
docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
BUILD_RESULT=$?
-# Newly created files during above docker run can have different ownership.
-# This may cause some problems, for example, some jenkins slaves or developers
-# can't remove built files due to lack of permission.
-# To address this issue, let's change owner of all files
-# in NNFW to owner of NNFW.
-NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
-NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
-
-CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
-docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
$SVACE_ANALYZER_DIR/bin/svace analyze --warning $SVACE_POLICY_FILE
diff --git a/scripts/command/docker_coverage_report.sh b/scripts/command/docker_coverage_report.sh
index 577f5db37..c9294fe48 100755
--- a/scripts/command/docker_coverage_report.sh
+++ b/scripts/command/docker_coverage_report.sh
@@ -1,38 +1,24 @@
#!/bin/bash
-DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
-
SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-HOST_HOME=$SCRIPT_ROOT/../..
-DOCKER_HOME=/home
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
-GIT_SSL_NO_VERIFY=1
+HOST_HOME=$SCRIPT_ROOT/../..
DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
-DOCKER_ENV_VARS+=" -e http_proxy"
-DOCKER_ENV_VARS+=" -e no_proxy"
-DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
-
DOCKER_RUN_OPTS="--rm"
DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
-
+DOCKER_ENV_VARS+=" -e DOCKER_HOME=${DOCKER_HOME}"
docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "./scripts/command/gen_coverage_report.sh"
BUILD_RESULT=$?
-# Newly created files during above docker run can have different ownership.
-# This may cause some problems, for example, some jenkins slaves or developers
-# can't remove built files due to lack of permission.
-# To address this issue, let's change owner of all files
-# in NNFW to owner of NNFW.
-NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
-NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
-
-CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
-docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
exit $BUILD_RESULT
diff --git a/scripts/command/docker_cross_test_coverage_build.sh b/scripts/command/docker_cross_test_coverage_build.sh
index f954c481c..784b84605 100755
--- a/scripts/command/docker_cross_test_coverage_build.sh
+++ b/scripts/command/docker_cross_test_coverage_build.sh
@@ -1,35 +1,22 @@
#!/bin/bash
-DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
-
SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-HOST_HOME=$SCRIPT_ROOT/../..
-DOCKER_HOME=/home
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
-GIT_SSL_NO_VERIFY=1
+HOST_HOME=$SCRIPT_ROOT/../..
DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
-DOCKER_ENV_VARS+=" -e http_proxy"
-DOCKER_ENV_VARS+=" -e no_proxy"
-DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
-
DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
-DOCKER_ENV_VARS+=" -e EXT_ACL_FOLDER=/opt/libarmcl"
DOCKER_ENV_VARS+=" -e COVERAGE_BUILD=1"
DOCKER_RUN_OPTS="--rm"
DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
-# prepare armcl library
-if [[ ! -d $ARMCL_DIR ]]; then
- echo "cannot find armcl"
- exit 1
-fi
-
# prepare rootfs
if [[ ! -d $ROOTFS_DIR ]]; then
echo "cannot find rootfs"
@@ -37,27 +24,18 @@ if [[ ! -d $ROOTFS_DIR ]]; then
fi
DOCKER_VOLUMES+=" -v $ROOTFS_DIR:/opt/rootfs"
-DOCKER_VOLUMES+=" -v $ARMCL_DIR:/opt/libarmcl"
if [ -n "$DOCKER_INTERACTIVE" ]; then
DOCKER_RUN_OPTS+=" -it"
CMD="/bin/bash"
else
- CMD="make external_acl && make && make install && make build_coverage_suite"
+ CMD="make acl && make && make install && make build_coverage_suite"
fi
docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
BUILD_RESULT=$?
-# Newly created files during above docker run can have different ownership.
-# This may cause some problems, for example, some jenkins slaves or developers
-# can't remove built files due to lack of permission.
-# To address this issue, let's change owner of all files
-# in NNFW to owner of NNFW.
-NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
-NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
-
-CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
-docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
exit $BUILD_RESULT
diff --git a/scripts/command/docker_env_neurun b/scripts/command/docker_env_neurun
new file mode 100644
index 000000000..53b3bbc83
--- /dev/null
+++ b/scripts/command/docker_env_neurun
@@ -0,0 +1 @@
+OPTIONS=-DBUILD_NEURUN=ON
diff --git a/scripts/command/docker_env_pureacl_tflite_benchmark_model b/scripts/command/docker_env_pureacl_tflite_benchmark_model
new file mode 100644
index 000000000..b1c40e16a
--- /dev/null
+++ b/scripts/command/docker_env_pureacl_tflite_benchmark_model
@@ -0,0 +1,2 @@
+OPTIONS=-DBUILD_PURE_ARM_COMPUTE=ON -DBUILD_TFLITE_BENCHMARK_MODEL=ON
+BUILD_TYPE=Release
diff --git a/scripts/command/docker_gbs_build.sh b/scripts/command/docker_gbs_build.sh
index 03979e6ee..dcd989ebb 100755
--- a/scripts/command/docker_gbs_build.sh
+++ b/scripts/command/docker_gbs_build.sh
@@ -1,13 +1,17 @@
#!/bin/bash
-MY_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-NNFW_ROOT=$MY_PATH/../..
-DOCKER_NNFW_HOME=/home/nnfw
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker_tizen
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_NNFW_HOME=${DOCKER_HOME}
DOCKER_RPM_HOME=/home/rpm
if [ "${GBS_RPM_DIR}" == "" ];
then
- GBS_RPM_DIR=$NNFW_ROOT/Product/out/rpm
+ GBS_RPM_DIR=$HOST_HOME/Product/out/rpm
mkdir -p ${GBS_RPM_DIR}
fi
@@ -18,7 +22,7 @@ then
fi
-DOCKER_VOLUMES+=" -v ${GBS_RPM_DIR}:${DOCKER_RPM_HOME} -v $NNFW_ROOT:${DOCKER_NNFW_HOME}"
+DOCKER_VOLUMES+=" -v ${GBS_RPM_DIR}:${DOCKER_RPM_HOME} -v $HOST_HOME:${DOCKER_NNFW_HOME}"
DOCKER_RUN_OPTS+=" --rm"
DOCKER_RUN_OPTS+=" -w ${DOCKER_NNFW_HOME}"
@@ -27,10 +31,8 @@ CMD="gbs -c ${DOCKER_NNFW_HOME}/scripts/command/gbs.conf build -A armv7l --profi
docker run $DOCKER_RUN_OPTS $DOCKER_VOLUMES ${DOCKER_ENV_VARS:-} ${DOCKER_IMAGE} sh -c "$CMD"
BUILD_RESULT=$?
-# change owner of root dir and delete rootfs dir
-NNFW_OWNER_UID=$(stat -c "%u" $NNFW_ROOT)
-NNFW_OWNER_GID=$(stat -c "%g" $NNFW_ROOT)
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_NNFW_HOME
+restore_ownership $HOST_HOME $DOCKER_RPM_HOME
-CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID ${DOCKER_NNFW_HOME} && chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID ${DOCKER_RPM_HOME}"
-docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE sh -c "$CMD"
exit $BUILD_RESULT
diff --git a/scripts/command/docker_run_test.sh b/scripts/command/docker_run_test.sh
index 75edd3428..f6605b144 100755
--- a/scripts/command/docker_run_test.sh
+++ b/scripts/command/docker_run_test.sh
@@ -1,29 +1,17 @@
#!/bin/bash
-# default DOCKER_IMAGE_NAME=nnfw_docker
-DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
-echo "Using docker image $DOCKER_IMAGE_NAME"
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-if [ -z "`docker images | grep $DOCKER_IMAGE_NAME`" ]; then
- echo "Need docker image!"
- exit 1
-fi
-
-HOST_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
-
-DOCKER_PATH=/home/npuci/nnfw
+# DOCKER_HOME and DOCKER_ENV_VARS
+source $SCRIPT_ROOT/nnfw_docker
-export GIT_SSL_NO_VERIFY=1
+HOST_HOME=$SCRIPT_ROOT/../..
DOCKER_VOLUMES=" -v /dev/null:/dev/raw1394"
-DOCKER_VOLUMES+=" -v $HOST_PATH:$DOCKER_PATH"
-
-DOCKER_ENV_VARS+=" -e http_proxy"
-DOCKER_ENV_VARS+=" -e no_proxy"
-DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
DOCKER_RUN_OPTS="--rm"
-DOCKER_RUN_OPTS+=" -w $DOCKER_PATH"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
CMD="make install"
@@ -36,15 +24,7 @@ docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME
BUILD_RESULT=$?
-# Newly created files during above docker run can have different ownership.
-# This may cause some problems, for example, some jenkins slaves or developers
-# can't remove built files due to lack of permission.
-# To address this issue, let's change owner of all files
-# in NPU_Compiler to owner of NPU_Compiler.
-NPU_COMPILER_OWNER_UID=$(stat -c "%u" $HOST_PATH)
-NPU_COMPILER_OWNER_GID=$(stat -c "%g" $HOST_PATH)
-
-CMD="chown -R $NPU_COMPILER_OWNER_UID:$NPU_COMPILER_OWNER_GID $DOCKER_PATH"
-docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+source $SCRIPT_ROOT/../docker_helper
+restore_ownership $HOST_HOME $DOCKER_HOME
exit $BUILD_RESULT
diff --git a/scripts/command/format-checker.sh b/scripts/command/format-checker.sh
index 5186b7476..75c345dd0 100755
--- a/scripts/command/format-checker.sh
+++ b/scripts/command/format-checker.sh
@@ -1,13 +1,23 @@
#!/bin/bash
-function check_tools() {
+function pushd () {
+ command pushd "$@" > /dev/null
+}
+
+function popd () {
+ command popd "$@" > /dev/null
+}
+
+function check_cpp_tool() {
which clang-format-3.9
if [[ $? -ne 0 ]]; then
echo "Error: clang-format-3.9 is not available."
echo " Please install clang-format-3.9."
exit 1
fi
+}
+function check_python_tool() {
which yapf
if [[ $? -ne 0 ]]; then
echo "Error: yapf is not available."
@@ -18,63 +28,82 @@ function check_tools() {
function check_cpp_files() {
DIRECTORIES_TO_BE_TESTED=$1
+ DIRECTORIES_NOT_TO_BE_TESTED=$2
# Check c++ files
- CPP_FILES_IN_COMPILER=$(find "${DIRECTORIES_TO_BE_TESTED[@]}" -iname '*.h' -o -iname '*.cpp' -o -iname '*.cc')
-
- if [[ ${#CPP_FILES_IN_COMPILER} -eq 0 ]]; then
- echo "No cpp files to be checked"
- return
- fi
-
- CPP_FILES_TO_BE_TESTED=$(git ls-files $CPP_FILES_IN_COMPILER)
- if [[ ${#CPP_FILES_TO_BE_TESTED} -eq 0 ]]; then
- echo "No changed cpp files to be checked"
- return
- fi
-
- clang-format-3.9 -i $CPP_FILES_TO_BE_TESTED
+ for TEST_DIR in ${DIRECTORIES_TO_BE_TESTED[@]}; do
+ pushd $TEST_DIR
+ CPP_FILES_TO_CHECK=$(git ls-files '*.h' '*.cpp' '*.cc')
+ ARR=($CPP_FILES_TO_CHECK)
+ for s in ${DIRECTORIES_NOT_TO_BE_TESTED[@]}; do
+ if [[ $s = $TEST_DIR* ]]; then
+ skip=${s#$TEST_DIR/}/
+ ARR=(${ARR[*]//$skip*})
+ fi
+ done
+ CPP_FILES_TO_CHECK=${ARR[*]}
+ if [[ ${#CPP_FILES_TO_CHECK} -ne 0 ]]; then
+ clang-format-3.9 -i $CPP_FILES_TO_CHECK
+ fi
+ popd
+ done
}
function check_python_files() {
DIRECTORIES_TO_BE_TESTED=$1
+ DIRECTORIES_NOT_TO_BE_TESTED=$2
# Check python files
- PYTHON_FILES_IN_COMPILER=$(find "${DIRECTORIES_TO_BE_TESTED[@]}" -iname '*.py')
-
- if [[ ${#PYTHON_FILES_IN_COMPILER} -eq 0 ]]; then
- echo "No python files to be checked"
- return
- fi
-
- PYTHON_FILES_TO_BE_TESTED=$(git ls-files $PYTHON_FILES_IN_COMPILER)
- if [[ ${#PYTHON_FILES_TO_BE_TESTED} -eq 0 ]]; then
- echo "No changed python files to be checked"
- return
- fi
-
- yapf -i --style='{based_on_style: pep8, column_limit: 90}' $PYTHON_FILES_TO_BE_TESTED
+ for TEST_DIR in ${DIRECTORIES_TO_BE_TESTED[@]}; do
+ pushd $TEST_DIR
+ PYTHON_FILES_TO_CHECK=$(git ls-files '*.py')
+ ARR=($PYTHON_FILES_TO_CHECK)
+ for s in ${DIRECTORIES_NOT_TO_BE_TESTED[@]}; do
+ if [[ $s = $TEST_DIR* ]]; then
+ skip=${s#$TEST_DIR/}/
+ ARR=(${ARR[*]//$skip*})
+ fi
+ done
+ PYTHON_FILES_TO_CHECK=${ARR[*]}
+ if [[ ${#PYTHON_FILES_TO_CHECK} -ne 0 ]]; then
+ yapf -i --style='{based_on_style: pep8, column_limit: 90}' $PYTHON_FILES_TO_CHECK
+ fi
+ popd
+ done
}
echo "Make sure commit all changes before running this checker."
-check_tools
+__Check_CPP=${CHECK_CPP:-"1"}
+__Check_PYTHON=${CHECK_PYTHON:-"1"}
DIRECTORIES_TO_BE_TESTED=()
+DIRECTORIES_NOT_TO_BE_TESTED=()
for DIR_TO_BE_TESTED in $(find -name '.FORMATCHECKED' -exec dirname {} \;); do
DIRECTORIES_TO_BE_TESTED+=("$DIR_TO_BE_TESTED")
done
+for DIR_NOT_TO_BE_TESTED in $(find -name '.FORMATDENY' -exec dirname {} \;); do
+ DIRECTORIES_NOT_TO_BE_TESTED+=("$DIR_NOT_TO_BE_TESTED")
+done
+
if [[ ${#DIRECTORIES_TO_BE_TESTED[@]} -eq 0 ]]; then
echo "No directories to be checked"
exit 0
fi
-check_cpp_files $DIRECTORIES_TO_BE_TESTED
-check_python_files $DIRECTORIES_TO_BE_TESTED
+if [[ $__Check_CPP -ne 0 ]]; then
+ check_cpp_tool
+ check_cpp_files $DIRECTORIES_TO_BE_TESTED $DIRECTORIES_NOT_TO_BE_TESTED
+fi
+
+if [[ $__Check_PYTHON -ne 0 ]]; then
+ check_python_tool
+ check_python_files $DIRECTORIES_TO_BE_TESTED $DIRECTORIES_NOT_TO_BE_TESTED
+fi
-git diff > format.patch
+git diff --ignore-submodules > format.patch
PATCHFILE_SIZE=$(stat -c%s format.patch)
if [[ $PATCHFILE_SIZE -ne 0 ]]; then
echo "[FAILED] Format checker failed and update code to follow convention."
diff --git a/scripts/command/gen_coverage_report.sh b/scripts/command/gen_coverage_report.sh
index 32177919a..cff7594cd 100755
--- a/scripts/command/gen_coverage_report.sh
+++ b/scripts/command/gen_coverage_report.sh
@@ -3,11 +3,14 @@
# This file is based on https://github.sec.samsung.net/STAR/nncc/pull/80
SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-NNFW_ROOT=$SCRIPT_ROOT/../..
+HOST_HOME=$SCRIPT_ROOT/../..
LCOV_PATH=$(command -v lcov)
GENHTML_PATH=$(command -v genhtml)
+
+SRC_PREFIX=${SRC_PREFIX:-${DOCKER_HOME}}
+
if [[ -z "${LCOV_PATH}" ]]; then
echo "ERROR: 'lcov' is not found"
exit 255
@@ -21,7 +24,7 @@ fi
OUTPUT_PATH="$1"
if [[ -z "${OUTPUT_PATH}" ]]; then
- OUTPUT_PATH="$NNFW_ROOT/coverage"
+ OUTPUT_PATH="$HOST_HOME/coverage"
fi
if [[ -e "${OUTPUT_PATH}" ]]; then
@@ -40,17 +43,17 @@ FINAL_COVERAGE_INFO_PATH="${OUTPUT_PATH}/coverage.info"
HTML_PATH="${OUTPUT_PATH}/html"
COVERTURA_PATH="${OUTPUT_PATH}/nnfw_coverage.xml"
-"${LCOV_PATH}" -c -d "${NNFW_ROOT}" -o "${RAW_COVERAGE_INFO_PATH}"
-"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${LIBS_COVERAGE_INFO_PATH}" '/home/libs/*'
-"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${INCLUDE_COVERAGE_INFO_PATH}" '/home/include/*'
-"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${RUNTIMES_COVERAGE_INFO_PATH}" '/home/runtimes/*'
-"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${TOOLS_COVERAGE_INFO_PATH}" '/home/tools/*'
+"${LCOV_PATH}" -c -d "${HOST_HOME}" -o "${RAW_COVERAGE_INFO_PATH}"
+"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${LIBS_COVERAGE_INFO_PATH}" "${SRC_PREFIX}/libs/*"
+"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${INCLUDE_COVERAGE_INFO_PATH}" "${SRC_PREFIX}/include/*"
+"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${RUNTIMES_COVERAGE_INFO_PATH}" "${SRC_PREFIX}/runtimes/*"
+"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${TOOLS_COVERAGE_INFO_PATH}" "${SRC_PREFIX}/tools/*"
"${LCOV_PATH}" -a "${LIBS_COVERAGE_INFO_PATH}" -a "${INCLUDE_COVERAGE_INFO_PATH}" \
-a "${RUNTIMES_COVERAGE_INFO_PATH}" -a "${TOOLS_COVERAGE_INFO_PATH}" \
-o "${FINAL_COVERAGE_INFO_PATH}"
-"${LCOV_PATH}" -r "${FINAL_COVERAGE_INFO_PATH}" -o "${FINAL_COVERAGE_INFO_PATH}" '/home/runtimes/tests/*'
-"${LCOV_PATH}" -r "${FINAL_COVERAGE_INFO_PATH}" -o "${FINAL_COVERAGE_INFO_PATH}" '/home/runtimes/nn/depend/*'
-"${GENHTML_PATH}" "${FINAL_COVERAGE_INFO_PATH}" --output-directory "${HTML_PATH}"
+"${LCOV_PATH}" -r "${FINAL_COVERAGE_INFO_PATH}" -o "${FINAL_COVERAGE_INFO_PATH}" "${SRC_PREFIX}/runtimes/tests/*"
+"${LCOV_PATH}" -r "${FINAL_COVERAGE_INFO_PATH}" -o "${FINAL_COVERAGE_INFO_PATH}" "${SRC_PREFIX}/runtimes/nn/depend/*"
+"${GENHTML_PATH}" "${FINAL_COVERAGE_INFO_PATH}" --output-directory "${HTML_PATH}" ${GENHTML_FLAG:-}
tar -zcf "${OUTPUT_PATH}"/coverage_report.tar.gz "${HTML_PATH}"
$SCRIPT_ROOT/lcov-to-covertura-xml.sh "${FINAL_COVERAGE_INFO_PATH}" -o "${COVERTURA_PATH}"
diff --git a/scripts/command/nnfw_docker b/scripts/command/nnfw_docker
new file mode 100644
index 000000000..211124105
--- /dev/null
+++ b/scripts/command/nnfw_docker
@@ -0,0 +1,14 @@
+DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
+
+echo "Using docker image $DOCKER_IMAGE_NAME"
+if [[ "$(docker images -q $DOCKER_IMAGE_NAME 2> /dev/null)" == "" ]]; then
+ echo "Need docker image: $DOCKER_IMAGE_NAME"
+ exit 1
+fi
+
+DOCKER_HOME=/home/nnfw
+
+GIT_SSL_NO_VERIFY=1
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
diff --git a/scripts/command/nnfw_docker_tizen b/scripts/command/nnfw_docker_tizen
new file mode 100644
index 000000000..f2fae9c97
--- /dev/null
+++ b/scripts/command/nnfw_docker_tizen
@@ -0,0 +1,14 @@
+DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker_tizen}
+
+echo "Using docker image $DOCKER_IMAGE_NAME"
+if [[ "$(docker images -q $DOCKER_IMAGE_NAME 2> /dev/null)" == "" ]]; then
+ echo "Need docker image: $DOCKER_IMAGE_NAME"
+ exit 1
+fi
+
+DOCKER_HOME=/home/nnfw
+
+GIT_SSL_NO_VERIFY=1
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
diff --git a/scripts/command/run_coverity.sh b/scripts/command/run_coverity.sh
new file mode 100755
index 000000000..2c4f9514b
--- /dev/null
+++ b/scripts/command/run_coverity.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+# _COVERITY_USER, _COVERITY_PASSWORD, _COVERITY_STREAM and COVERITY_SCRIPT_DOWNLOAD_URL should be defined.
+# XXX are used only in this script and _XXX are used in Coverity script.
+if [ -z ${_COVERITY_STREAM+x} ]; then
+ echo "_COVERITY_STREAM is unset";
+ exit 1
+else
+ echo "_COVERITY_STREAM is set to '$_COVERITY_STREAM'";
+fi
+
+if [ -z ${_COVERITY_USER+x} ]; then
+ echo "_COVERITY_USER is unset";
+ exit 1
+else
+ echo "_COVERITY_USER is set to '$_COVERITY_USER'";
+fi
+
+if [ -z ${_COVERITY_PASSWORD+x} ]; then
+ echo "_COVERITY_PASSWORD is unset";
+ exit 1
+else
+ echo "_COVERITY_PASSWORD is set to '$_COVERITY_PASSWORD'";
+fi
+
+if [ -z ${COVERITY_SCRIPT_DOWNLOAD_URL+x} ]; then
+ echo "COVERITY_SCRIPT_DOWNLOAD_URL is unset";
+ exit 1
+else
+ echo "COVERITY_SCRIPT_DOWNLOAD_URL is set to '$COVERITY_SCRIPT_DOWNLOAD_URL'";
+fi
+
+#
+# Set variables required for Coverity script
+#
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+HOST_HOME=$(readlink -f $SCRIPT_ROOT/../..)
+
+export _BUILD_PATH=$HOST_HOME
+export _RUN_COVERITY_ROOT=$_BUILD_PATH/ci_coverity
+mkdir -p $_RUN_COVERITY_ROOT
+
+export GBS_BUILDROOT=$_RUN_COVERITY_ROOT/GBS-ROOT/
+mkdir -p $GBS_BUILDROOT
+
+# Prepare gbs.conf for Coverity
+sed -- 's/^buildroot = .*/buildroot = '${GBS_BUILDROOT//\//\\/}'/' < $SCRIPT_ROOT/gbs.conf > $SCRIPT_ROOT/gbs_coverity.conf
+export _BUILD_CMD="gbs -c ${SCRIPT_ROOT}/gbs_coverity.conf build -A armv7l --profile=profile.tizen --clean-repo"
+export _PROD_LOCATION=$GBS_BUILDROOT/local/repos/tizen/armv7l/RPMS
+
+export _COVERITY_BINARY_DIR=$_RUN_COVERITY_ROOT/coverity-binary
+mkdir -p $_COVERITY_BINARY_DIR
+
+# Invoke Coverity script
+pushd $_RUN_COVERITY_ROOT
+wget $COVERITY_SCRIPT_DOWNLOAD_URL
+popd
+chmod +x $_RUN_COVERITY_ROOT/${COVERITY_SCRIPT_DOWNLOAD_URL##*/}
+$_RUN_COVERITY_ROOT/${COVERITY_SCRIPT_DOWNLOAD_URL##*/}
diff --git a/scripts/command/tizen_xu4_test.sh b/scripts/command/tizen_xu4_test.sh
index bfebc352d..d56dae2b5 100755
--- a/scripts/command/tizen_xu4_test.sh
+++ b/scripts/command/tizen_xu4_test.sh
@@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-NNFW_ROOT=$SCRIPT_ROOT/../..
+HOST_HOME=$SCRIPT_ROOT/../..
if [ -z "$TEST_ROOT" ]; then
TEST_ROOT=/opt/usr/nnfw-test
fi
@@ -15,12 +15,16 @@ function Usage()
echo "--unittest : run unittest"
echo "--verification : run verification"
echo "--framework : run framework"
+ echo "--gcov-dir : directory to save gcov files"
}
function prepare_rpm_test()
{
echo "======= Test with rpm packages(gbs build) ======="
+ # clean up
+ $SDB_CMD shell rm -rf $TEST_ROOT
+ $SDB_CMD shell mkdir -p $TEST_ROOT
# install nnfw nnfw-test rpms
for file in $RPM_DIR/*
do
@@ -29,7 +33,7 @@ function prepare_rpm_test()
done
# download tflite model files
- pushd $NNFW_ROOT
+ pushd $HOST_HOME
tests/framework/run_test.sh --download=on
tar -zcf cache.tar.gz tests/framework/cache
$SDB_CMD push cache.tar.gz $TEST_ROOT/.
@@ -40,12 +44,16 @@ function prepare_rpm_test()
function prepare_suite_test()
{
echo "======= Test with test-suite(cross build) ======="
+ # clean up
+ $SDB_CMD shell rm -rf $TEST_ROOT
+ $SDB_CMD shell mkdir -p $TEST_ROOT
+
# install test-suite
$SDB_CMD push $TEST_SUITE_PATH $TEST_ROOT/$(basename $TEST_SUITE_PATH)
$SDB_CMD shell tar -zxf $TEST_ROOT/$(basename $TEST_SUITE_PATH) -C $TEST_ROOT
# download tflite model files
- pushd $NNFW_ROOT
+ pushd $HOST_HOME
tests/framework/run_test.sh --download=on
tar -zcf cache.tar.gz tests/framework/cache
$SDB_CMD push cache.tar.gz $TEST_ROOT/.
@@ -77,6 +85,9 @@ do
--framework)
FRAMEWORK=on
;;
+ --gcov-dir=*)
+ GCOV_DIR=${i#*=}
+ ;;
esac
shift
done
@@ -133,3 +144,12 @@ if [ "$VERIFICATION" == "on" ]; then
$SDB_CMD shell $TEST_ROOT/tools/test_driver/test_driver.sh --verification --artifactpath=$TEST_ROOT
fi
+# pull gcov files
+if [ -n "$GCOV_DIR" ]; then
+ $SDB_CMD shell 'rm -rf /home/gcov && mkdir -p /home/gcov'
+ $SDB_CMD shell 'find / -type f \( -iname "*.gcda" -or -iname "*.gcno" \) -exec cp {} /home/gcov/. \;'
+ $SDB_CMD shell 'cd /home/ && tar -zcvf gcov.tar.gz ./gcov '
+ cd $GCOV_DIR
+ sdb pull /home/gcov.tar.gz
+ tar -zxvf gcov.tar.gz
+fi
diff --git a/scripts/docker/Dockerfile b/scripts/docker/Dockerfile
index cde173a5c..420c3b61a 100644
--- a/scripts/docker/Dockerfile
+++ b/scripts/docker/Dockerfile
@@ -5,10 +5,14 @@ ENV https_proxy $https_proxy
RUN apt-get update && apt-get --yes --force-yes install build-essential
RUN apt-get update && apt-get --yes --force-yes install scons cmake
-RUN apt-get update && apt-get --yes --force-yes install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
RUN apt-get update && apt-get --yes --force-yes install libboost-all-dev
RUN apt-get update && apt-get --yes --force-yes install git
RUN apt-get update && apt-get --yes --force-yes install gcc-5-arm-linux-gnueabi g++-5-arm-linux-gnueabi
RUN apt-get update && apt-get --yes --force-yes install lcov
RUN apt-get update && apt-get --yes --force-yes install clang-format-3.9 python-pip
RUN pip install yapf
+RUN apt-get update && apt-get --yes --force-yes install doxygen graphviz
+RUN apt-get update && apt-get --yes --force-yes install wget
+RUN wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz -O gcc.tar.xz -nv
+RUN tar -xf gcc.tar.xz -C /opt/ && rm -rf gcc.tar.xz
+ENV PATH "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin:$PATH"
diff --git a/scripts/docker/Dockerfile_tizen b/scripts/docker/Dockerfile_tizen
index 1c39380b0..d56cf78f1 100644
--- a/scripts/docker/Dockerfile_tizen
+++ b/scripts/docker/Dockerfile_tizen
@@ -6,3 +6,8 @@ ENV https_proxy $https_proxy
RUN echo 'deb [trusted=yes] http://download.tizen.org/tools/latest-release/Ubuntu_16.04/ /' | cat >> /etc/apt/sources.list
RUN apt-get update && apt-get --yes --force-yes install gbs
+
+RUN apt-get --yes --force-yes install wget unzip
+RUN wget http://download.tizen.org/sdk/tizenstudio/official/binary/sdb_3.1.4_ubuntu-64.zip -O sdb.zip
+RUN unzip -d tmp sdb.zip && rm sdb.zip
+RUN cp tmp/data/tools/sdb /usr/bin/. && rm -rf tmp \ No newline at end of file
diff --git a/scripts/docker_helper b/scripts/docker_helper
new file mode 100644
index 000000000..37ec9fcbd
--- /dev/null
+++ b/scripts/docker_helper
@@ -0,0 +1,33 @@
+# Newly created files during docker run can have different ownership.
+# This may cause some problems, for example, some jenkins slaves or developers
+# can't remove built files due to lack of permission.
+# To address this issue, let's change owner of all files and subdirector
+# to owner of host directory.
+#
+# Parameters:
+# $1 : host directory
+# $2 : docker directory
+#
+# Requires following variables defined
+# DOCKER_RUN_OPTS, DOCKER_ENV_VARS, DOCKER_VOLUMES, DOCKER_IMAGE_NAME
+function restore_ownership() {
+ if [ -z "$1" ]
+ then
+ echo "Requires host path"
+ exit 1
+ fi
+ _HOST_DIR=$1
+
+ if [ -z "$2" ]
+ then
+ echo "Requires docker path"
+ exit 1
+ fi
+
+ _DOCKER_DIR=$2
+
+ _OWNER_UID=$(stat -c "%u" $_HOST_DIR)
+ _OWNER_GID=$(stat -c "%g" $_HOST_DIR)
+ CMD="chown -R $_OWNER_UID:$_OWNER_GID $_DOCKER_DIR"
+ docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+}
diff --git a/scripts/git-hooks/install_hooks.sh b/scripts/git-hooks/install_hooks.sh
new file mode 100755
index 000000000..9ab7342fc
--- /dev/null
+++ b/scripts/git-hooks/install_hooks.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+REPO_PATH=$(git rev-parse --show-toplevel)
+REPO_HOOKS_PATH=scripts/git-hooks
+GIT_HOOKS_PATH=$REPO_PATH/.git/hooks
+REPO_PATH_REL=../.. # Relative path from REPO_HOOKS_PATH
+
+# Create symbolic links to hooks dir
+
+# NOTE `ln -s` does not overwrite if the file exists.
+ln -s $REPO_PATH_REL/$REPO_HOOKS_PATH/pre-push $GIT_HOOKS_PATH/pre-push
diff --git a/scripts/git-hooks/pre-push b/scripts/git-hooks/pre-push
new file mode 100755
index 000000000..adad9bd38
--- /dev/null
+++ b/scripts/git-hooks/pre-push
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# An example hook script to verify what is about to be pushed. Called by "git
+# push" after it has checked the remote status, but before anything has been
+# pushed. If this script exits with a non-zero status nothing will be pushed.
+#
+# This hook is called with the following parameters:
+#
+# $1 -- Name of the remote to which the push is being done
+# $2 -- URL to which the push is being done
+#
+# If pushing without using a named remote those arguments will be equal.
+#
+# Information about the commits which are being pushed is supplied as lines to
+# the standard input in the form:
+#
+# <local ref> <local sha1> <remote ref> <remote sha1>
+#
+# This sample shows how to prevent push of commits where the log message starts
+# with "WIP" (work in progress).
+
+remote="$1"
+url="$2"
+
+# RUN FORMAT CHECKER
+
+REPO_PATH=$(git rev-parse --show-toplevel)
+cd $REPO_PATH
+
+./run format-checker.sh
+
+exit $?