SmartAudio/package/testtools/tinatest/tools/complete-ash.sh

73 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
get_top()
{
local path
path=`pwd`
while [ ! "${path}" = "/" ]
do
[ -f "${path}/Makefile" ] \
&& grep "^PKG_NAME *:= *tinatest$" ${path}/Makefile >/dev/null \
&& break
path=$(dirname ${path})
done
[ "${path}" = "/" ] && echo "Get top failed" && exit 1
echo ${path}
}
# get_value <lower-config-path>
# example: /demo/demo-c/enable
get_value()
{
local upper=$(sed '{s/[a-z]/\u&/g; s/[^ [:alnum:]]/_/g}' <<< ${1})
eval "echo \${CONFIG_TINATEST${upper}}"
}
# check_config_existed <lower-config-path>
# example: /demo/demo-c/enable
check_config_existed()
{
[ -n "$(get_value "$1")" ] && return 0 || return 1
}
get_valid_testcases()
{
local one all
all="$(find ${top}/testcase -name "private.conf" \
| sed "s#^${top}/testcase\(.*\)/private.conf#\1#g")"
for one in ${all}
do
check_config_existed "${one}/enable" && echo ${one}
done
}
completion()
{
local testcase dir
for testcase in ${caselist}
do
dir="$(dirname ${testcase})"
mkdir -p ${out}${dir}
! touch ${out}${testcase} \
&& echo "make completion failed: ${out}${testcase}" \
&& return 1
done
return 0
}
main()
{
# check usage
[ "$#" -ne 2 ] && echo "I Need Two Argumemts" && exit 1
[ ! -f "$1" ] && echo "Not Found $1" && exit 1
[ ! -d "$2" ] && echo "Not Found $2" && exit 1
eval $(grep -vi '="default"' $1)
out="$2"
top="$(get_top)"
caselist="$(get_valid_testcases)"
completion
}
main $@