Commit 986bbddd authored by Ronan Abhamon's avatar Ronan Abhamon

feat(tools): check and test qml if it's necessary!

parent 03010465
...@@ -18,34 +18,30 @@ cd $SCRIPT_DIR/.. ...@@ -18,34 +18,30 @@ cd $SCRIPT_DIR/..
# ============================================================================== # ==============================================================================
if ! [ -x "$( command -v "$LINTER" )" ]; then if ! [ -x "$( command -v "$LINTER" )" ]; then
printf "${RED}Unable to found `$LINTER`. No tests can be executed.${NC}\n" printf "${RED}Unable to found `$LINTER`.${NC}\n"
exit 0 exit 1
fi fi
"${LINTER}" -v "${LINTER}" -v 2> /dev/null 1>&2
if [[ $? != 0 ]] ; then if [[ $? != 0 ]] ; then
printf "${RED}Unable to check qml syntax.${NC}\n" printf "${RED}Unable to check qml syntax.${NC}\n"
exit 0 exit 1
fi fi
printf "${BLUE}Checking qml files...${NC}\n" printf "${BLUE}Checking qml files...${NC}\n"
so_far_so_good=0 so_far_so_good=0
while read line while read file; do
do $LINTER "$file"
result=$( if [[ $? != 0 ]] ; then
printf "$line" | so_far_so_good=1
sed -n 's/^\s*<\s*file\s*>\s*\(.*\.\(qml\|js\)\)\s*<\s*\/\s*file\s*>\s*$/\1/p' fi
) done < <(git diff --name-only --cached | grep -E '\.qml|js|js\.spec$')
if [[ ! -z $result ]] && ! $LINTER "$result"; then
so_far_so_good=1
fi
done < $RESOURCES_FILE
if [[ $so_far_so_good == 0 ]]; then if [[ $so_far_so_good == 0 ]]; then
printf "${GREEN}Done. No qml error found.\n" printf "${GREEN}Done. No qml error found.\n"
else else
printf "${RED}One or more errors were found. Please to fix them.\n" printf "${RED}One or more errors were found. Please to fix them.\n"
fi fi
printf "${NC}" printf "${NC}"
......
...@@ -28,38 +28,42 @@ if ! [ -x "$( command -v "$TEST_RUNNER" )" ]; then ...@@ -28,38 +28,42 @@ if ! [ -x "$( command -v "$TEST_RUNNER" )" ]; then
exit 0 exit 0
fi fi
so_far_so_good=0 git diff --name-only --cached | grep -Eq '\.qml|js|js\.spec$'
if [[ $? != 0 ]] ; then
exit 0
fi
# Check all `*.spec.qml` files. # Check all `*.spec.qml` files.
so_far_so_good=0
while read line while read line
do do
source_file=$( source_file=$(
printf "$line" | printf "$line" |
sed -n 's/^\s*<\s*file\s*>\s*\(.*\.\(qml\|js\)\)\s*<\s*\/\s*file\s*>\s*$/\1/p' sed -n 's/^\s*<\s*file\s*>\s*\(.*\.\(qml\|js\)\)\s*<\s*\/\s*file\s*>\s*$/\1/p'
) )
if [[ ! -z $source_file ]]; then if [[ ! -z $source_file ]]; then
spec_file="${source_file%.*}.${TEST_FILE_EXTENSION}" spec_file="${source_file%.*}.${TEST_FILE_EXTENSION}"
if [ -f $spec_file ]; then if [ -f $spec_file ]; then
printf "${BLUE}Running unit qml tests of '${source_file}'...${NC}\n" printf "${BLUE}Running unit qml tests of '${source_file}'...${NC}\n"
$TEST_RUNNER -import $DEV_MODULES_PATH -import $MODULES_PATH -import $SCRIPTS_PATH -input "$spec_file" $TEST_RUNNER -import $DEV_MODULES_PATH -import $MODULES_PATH -import $SCRIPTS_PATH -input "$spec_file"
if [[ $? == 0 ]]; then if [[ $? == 0 ]]; then
printf "${GREEN}All unit tests have succeeded for '${spec_file}'.\n" printf "${GREEN}All unit tests have succeeded for '${spec_file}'.\n"
else else
printf "${RED}Unit tests have failed for '${spec_file}'.\n" printf "${RED}Unit tests have failed for '${spec_file}'.\n"
so_far_so_good=1 so_far_so_good=1
fi fi
printf "${NC}\n" printf "${NC}\n"
fi
fi fi
fi
done < $RESOURCES_FILE done < $RESOURCES_FILE
if [[ $so_far_so_good == 0 ]]; then if [[ $so_far_so_good == 0 ]]; then
printf "${GREEN}Done. All tests have succeeded.\n" printf "${GREEN}Done. All tests have succeeded.\n"
else else
printf "${RED}Fail. One or many tests have failed.\n" printf "${RED}Fail. One or many tests have failed.\n"
so_far_so_good=1 so_far_so_good=1
fi fi
printf "${NC}\n" printf "${NC}\n"
......
...@@ -20,14 +20,14 @@ echo '<!DOCTYPE RCC><RCC version="1.0"> ...@@ -20,14 +20,14 @@ echo '<!DOCTYPE RCC><RCC version="1.0">
for filename in $(find ui/modules/ ui/scripts/ ui/views/ assets/ -type f | sort) for filename in $(find ui/modules/ ui/scripts/ ui/views/ assets/ -type f | sort)
do do
basename="${filename##*/}" basename="${filename##*/}"
extension="${filename##*.}" extension="${filename##*.}"
if [[ $extension == @(svg|png|jpg|js|ttf) || if [[ $extension == @(svg|png|jpg|js|ttf) ||
$basename == qmldir || $basename == qmldir ||
($extension == qml && $basename != *\.spec\.qml) ]]; then ($extension == qml && $basename != *\.spec\.qml) ]]; then
echo " <file>$filename</file>" >> $RESOURCES_FILE echo " <file>$filename</file>" >> $RESOURCES_FILE
fi fi
done done
echo ' </qresource> echo ' </qresource>
......
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