Skip to content

Commit

Permalink
Added kcov'/codecov.io' support
Browse files Browse the repository at this point in the history
  • Loading branch information
nima committed Jan 10, 2017
1 parent 97ad8c9 commit 3a0d82f
Show file tree
Hide file tree
Showing 5 changed files with 143 additions and 50 deletions.
46 changes: 31 additions & 15 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
language: c #. Not really, it's actually bash
language: bash

sudo: required

branches:
only:
Expand All @@ -18,20 +20,34 @@ env:
- PATH="${PATH}:${HOME}/bin"
matrix:
- CONTEXT=installer MODULE=-
- CONTEXT=execute MODULE=core
- CONTEXT=execute MODULE=cpf
- CONTEXT=execute MODULE=dns
- CONTEXT=execute MODULE=git
- CONTEXT=execute MODULE=gpg
- CONTEXT=execute MODULE=help
- CONTEXT=execute MODULE=hgd
- CONTEXT=execute MODULE=net
- CONTEXT=execute MODULE=remote
- CONTEXT=execute MODULE=tunnel
# CONTEXT=execute MODULE=tutorial
- CONTEXT=execute MODULE=util
- CONTEXT=execute MODULE=vault
- CONTEXT=execute MODULE=xplm
- CONTEXT=execute MODULE=core
- CONTEXT=coverage MODULE=core
- CONTEXT=execute MODULE=cpf
- CONTEXT=coverage MODULE=cpf
- CONTEXT=execute MODULE=dns
- CONTEXT=coverage MODULE=dns
- CONTEXT=execute MODULE=git
- CONTEXT=coverage MODULE=git
- CONTEXT=execute MODULE=gpg
- CONTEXT=coverage MODULE=gpg
- CONTEXT=execute MODULE=help
- CONTEXT=coverage MODULE=help
- CONTEXT=execute MODULE=hgd
- CONTEXT=coverage MODULE=hgd
- CONTEXT=execute MODULE=net
- CONTEXT=coverage MODULE=net
- CONTEXT=execute MODULE=remote
- CONTEXT=coverage MODULE=remote
# CONTEXT=execute MODULE=tunnel
# CONTEXT=coverage MODULE=tunnel
# CONTEXT=execute MODULE=tutorial
# CONTEXT=coverage MODULE=tutorial
- CONTEXT=execute MODULE=util
- CONTEXT=coverage MODULE=util
- CONTEXT=execute MODULE=vault
- CONTEXT=coverage MODULE=vault
# CONTEXT=execute MODULE=xplm
# CONTEXT=coverage MODULE=xplm

matrix:
allow_failures:
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ The Simbol README is maintained in the [GitHub Pages README](https://github.com/

# Build Status

| Branch | Status | Coverage |
|------------|--------|----------|
| `master` | [![Build Status](https://travis-ci.org/schtunt/simbol.png?branch=master)](https://travis-ci.org/schtunt/simbol/branches) | [![Coverage Status](https://coveralls.io/repos/github/schtunt/simbol/badge.svg?branch=master)](https://coveralls.io/github/schtunt/simbol?branch=master) |
| `develop` | [![Build Status](https://travis-ci.org/schtunt/simbol.png?branch=develop)](https://travis-ci.org/schtunt/simbol/branches) | [![Coverage Status](https://coveralls.io/repos/github/schtunt/simbol/badge.svg?branch=develop)](https://coveralls.io/github/schtunt/simbol?branch=develop) |
| Branch | `travis.io` | `coveralls.io` | `codecov.io` |
|------------|-------------|----------------|--------------|
| `master` | [![Build Status](https://travis-ci.org/schtunt/simbol.png?branch=master)](https://travis-ci.org/schtunt/simbol/branches) | [![Coverage Status](https://coveralls.io/repos/github/schtunt/simbol/badge.svg?branch=master)](https://coveralls.io/github/schtunt/simbol?branch=master) | [![codecov](https://codecov.io/gh/schtunt/simbol/branch/master/graph/badge.svg)](https://codecov.io/gh/schtunt/simbol) |
| `develop` | [![Build Status](https://travis-ci.org/schtunt/simbol.png?branch=develop)](https://travis-ci.org/schtunt/simbol/branches) | [![Coverage Status](https://coveralls.io/repos/github/schtunt/simbol/badge.svg?branch=develop)](https://coveralls.io/github/schtunt/simbol?branch=develop) | [![codecov](https://codecov.io/gh/schtunt/simbol/branch/develop/graph/badge.svg)](https://codecov.io/gh/schtunt/simbol) |
2 changes: 2 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
codecov:
token: 8a343020-d6dd-4726-aa64-7e0c1ac5ad22
3 changes: 2 additions & 1 deletion module/unit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,8 @@ function testCoverage() {
if [ $count -gt 0 ]; then
local -a fns=(
$(grep -oE "${regex}" ${modulepath} |
sed -e "s/^function :\{0,2\}${module}:\([^.()]\+\)\(\.[a-z]\+\)\?()/\1/")
sed -e "s/^function :\{0,2\}${module}:\([^.()]\+\)\(\.[a-z]\+\)\?()/\1/"
)
)
for fn in ${fns[@]}; do
local utf="test${profile^}${modulecaps}${fn^}${context^}"
Expand Down
134 changes: 104 additions & 30 deletions share/unit/citm
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,16 @@
#.
#. See the short code below to figure out how those are used.

function run() {
echo "$ ${@}"
"${@}"
return $e
}

declare -g -A PACKAGES=(
[ALL]=make,coreutils,bash,sed,gawk,git,haveged
[gpg,vault,remote]=gnupg2,pwgen,xclip
[net]=iproute,net-tools,netcat,socat
[dns,remote]=dnsutils
[remote]=tmux,socat
[ALL]='make,coreutils,bash,sed,gawk,git,haveged'
[KCOV]='libcurl4-openssl-dev,libelf-dev,libdw-dev,cmake'
[gpg,vault,remote]='gnupg2,pwgen,xclip'
[net]='iproute,net-tools,netcat,socat'
[dns,remote]='dnsutils'
[remote]='tmux,socat'
)

function apt_get_install_for() {
function citm:apt_get_install_for() {
local module="${1}"

local mcsv
Expand All @@ -43,26 +38,84 @@ function apt_get_install_for() {

local -a packages
IFS=, read -a packages <<< "${pkgcsv}"
run sudo apt-get install ${packages[@]}
citm:run sudo apt-get install ${packages[@]}
}

function citm:run() {
local -i e=9

echo "$ ${@}"
"${@}"
e=$?
echo "# exit status: $e"

return $e
}

function citm:kcov() {
local -i e=9

case "$#:$1" in
1:install)
citm:apt_get_install_for KCOV
e=$?

if [ $e -eq 0 ]; then
echo "$ citm:kcov install"
wget -q https://github.com/SimonKagstrom/kcov/archive/master.tar.gz
tar xzf master.tar.gz
mkdir kcov-master/build
pushd kcov-master/build >/dev/null
cmake ..
make
sudo make install
e=$?
popd >/dev/null
rm -rf kcov-master master.tar.gz
fi

echo "# citm:kcov install exit status: $e"
;;

*:run)
shift
echo "$ citm:kcov run ${*}"
mkdir coverage
kcov coverage "$@"
e=$?
echo "# citm:kcov run exit status: $e"
;;

1:report)
echo "$ citm:kcov report codedov.io/bash"
bash <(curl -s https://codecov.io/bash)
e=$?
echo "# citm:kcov report exit status: $e"
;;
esac

return $e
}

declare -g EXIT=9
echo "#. travis[$1].${CONTEXT?}(${MODULE?}) -=["
echo "#. citm[$1].${CONTEXT?}(${MODULE?}) -=["
if [ $# -eq 1 ]; then
case $1 in
before_install)
EXIT=0
run sudo install -d /var/tmp -m 1777 ;((EXIT|=$?))
run sudo install -m 0644\

citm:run sudo install -d /var/tmp -m 1777 ;((EXIT|=$?))
citm:run sudo install -m 0644\
share/unit/files/apt.conf\
/etc/apt/apt.conf.d/99SiteUnitTest ;((EXIT|=$?))

apt_get_install_for ${MODULE} ;((EXIT|=$?))
citm:apt_get_install_for ${MODULE} ;((EXIT|=$?))
;;

install)
EXIT=0
run make install ;((EXIT|=$?))

citm:run make install ;((EXIT|=$?))
;;

before_script)
Expand All @@ -71,21 +124,42 @@ if [ $# -eq 1 ]; then

script)
EXIT=0

case ${CONTEXT}:${MODULE} in
installer:-)
run make uninstall ;((EXIT|=$?)) #. Test uninstall
run make install ;((EXIT|=$?)) #. Test reinstall
run make purge ;((EXIT|=$?)) #. Test purge
run make install ;((EXIT|=$?)) #. Test reinstall
;;
execute:core)
run simbol unit core ;((EXIT|=$?))
coverage:*)
citm:kcov install ;((EXIT|=$?)) #. Code Coverage installation
echo

if [ ${MODULE} == 'core' ]; then
citm:kcov run simbol unit core ;((EXIT|=$?))
else
citm:kcov run simbol unit test ${MODULE} ;((EXIT|=$?))
fi
echo

citm:kcov report ;((EXIT|=$?))
echo
;;

execute:*)
run simbol unit test ${MODULE} ;((EXIT|=$?))
if [ ${MODULE} == 'core' ]; then
citm:run simbol unit core ;((EXIT|=$?))
else
citm:run simbol unit test ${MODULE} ;((EXIT|=$?))
fi
echo
;;

installer:-)
citm:run make uninstall ;((EXIT|=$?)) #. Test uninstall
citm:run make install ;((EXIT|=$?)) #. Test reinstall
citm:run make purge ;((EXIT|=$?)) #. Test purge
citm:run make install ;((EXIT|=$?)) #. Test reinstall
;;

*:*)
EXIT=1
echo "WARN: No action for ${CONTEXT}:${MODULE}"
EXIT=0
;;
esac
;;
Expand All @@ -96,12 +170,12 @@ if [ $# -eq 1 ]; then

after_failure)
EXIT=0
run cat ~/.simbol/var/log/simbol.log
citm:run cat ~/.simbol/var/log/simbol.log ;((EXIT|=$?))
;;

after_script)
EXIT=0
run make uninstall ;((EXIT|=$?))
citm:run make uninstall ;((EXIT|=$?))
;;
esac
fi
Expand Down

0 comments on commit 3a0d82f

Please sign in to comment.