@@ -13,6 +13,8 @@ modules=("common" "libs" "platform" "tools" "dvp")
1313should_build=false
1414should_test=false
1515verbose=false
16+ coverage=false
17+ flake8=false
1618screenSize=$( tput cols)
1719equalFiller=" ="
1820greenColor=$( tput setaf 10)
@@ -45,6 +47,12 @@ Help() {
4547 echo " v${blackColor} | ${orangeColor} Verbose mode on ${blackColor} | ${greenColor} sh build_project.sh -t -v${noColor} "
4648 echo " ${blackColor} | ${orangeColor} ${blackColor} | ${greenColor} sh build_project.sh -bvt -m tools${noColor} "
4749 print_separator
50+ echo " c${blackColor} | ${orangeColor} Test Coverage mode on ${blackColor} | ${greenColor} sh build_project.sh -t -c${noColor} "
51+ echo " ${blackColor} | ${orangeColor} ${blackColor} | ${greenColor} sh build_project.sh -bct -m tools${noColor} "
52+ print_separator
53+ echo " f${blackColor} | ${orangeColor} Flake8 validation mode on ${blackColor} | ${greenColor} sh build_project.sh -f${noColor} "
54+ echo " ${blackColor} | ${orangeColor} ${blackColor} | ${greenColor} sh build_project.sh -bft -m tools${noColor} "
55+ print_separator
4856 echo " m${blackColor} | ${orangeColor} provide a list of modules.${blackColor} | ${greenColor} sh build_project.sh -bt -m common -m libs${noColor} "
4957 echo " ${blackColor} | ${orangeColor} Valid python modules: ${blackColor} | ${noColor} "
5058 echo " ${blackColor} | ${orangeColor} - common ${blackColor} | ${noColor} "
@@ -81,6 +89,16 @@ run_operations() {
8189 build_module
8290 print_as_per_screen_size " $module_name build complete " " ${greenColor} " ${equalFiller} " ${screenSize} "
8391 fi
92+ if [ " $flake8 " = true ]; then
93+ echo
94+ print_as_per_screen_size " $module_name Flake8 Main starts " " ${orangeColor} " ${equalFiller} " ${screenSize} "
95+ python -m flake8 " $module_path /src/test/python" --max-line-length 88
96+ print_as_per_screen_size " $module_name Flake8 Main complete " " ${greenColor} " ${equalFiller} " ${screenSize} "
97+ echo
98+ print_as_per_screen_size " $module_name Flake8 Test starts " " ${orangeColor} " ${equalFiller} " ${screenSize} "
99+ python -m flake8 " $module_path /src/main/python" --max-line-length 88
100+ print_as_per_screen_size " $module_name Flake8 Test complete " " ${greenColor} " ${equalFiller} " ${screenSize} "
101+ fi
84102 if [ " $should_test " = true ]; then
85103 echo
86104 print_as_per_screen_size " $module_name tests starts " " ${orangeColor} " ${equalFiller} " ${screenSize} "
@@ -112,11 +130,18 @@ build_module() {
112130
113131# Test the module
114132test_module () {
115- if [ " $verbose " = true ]; then
116- python -m pytest -v src/test/python
133+ cmd=[]
134+ if [ " $coverage " = true ]; then
135+ cmd=( coverage run -m pytest )
117136 else
118- python -m pytest src/test/python
137+ cmd=( python -m pytest )
119138 fi
139+ if [ " $verbose " = true ]; then
140+ cmd=( ${cmd[@]} -v)
141+ fi
142+ cmd=( ${cmd[@]} src/test/python)
143+ echo " Test command is ${cmd[*]} "
144+ ${cmd[@]}
120145}
121146
122147# Print the provided input in the center of screen by appending and prepending fillers.
@@ -132,7 +157,7 @@ print_as_per_screen_size() {
132157}
133158
134159# Get the options
135- while getopts " :hbtvm :" option; do
160+ while getopts " :hbftvcm :" option; do
136161 case $option in
137162 h) # display Help
138163 Help
@@ -150,6 +175,10 @@ while getopts ":hbtvm:" option; do
150175 fi ;;
151176 v) # Verbose mode
152177 verbose=true ;;
178+ c) # Coverage mode
179+ coverage=true ;;
180+ f) # Run flake8 mode
181+ flake8=true ;;
153182 \? ) # Invalid options.
154183 echo " Error: Invalid option"
155184 Help
@@ -166,12 +195,21 @@ while getopts ":hbtvm:" option; do
166195 esac
167196done
168197
169- if [ " $should_build " = true ] || [ " $should_test " = true ]; then
198+ if [ " $should_build " = true ] || [ " $should_test " = true ] || [ " $flake8 " = true ] ; then
170199 if [ ${# multi[@]} -eq 0 ]; then
171200 multi=(" ${modules[@]} " )
172201 fi
173202
203+ paths=()
204+ current_path=" $PWD "
174205 for module in " ${multi[@]} " ; do
175206 run_operations " $module "
207+ paths=( ${paths[@]} " ${current_path} /${module} /.coverage" )
176208 done
209+
210+ if [ " $coverage " = true ]; then
211+ echo " Paths to combine for coverage are [${paths[*]} ]."
212+ coverage combine ${paths[@]}
213+ coverage report -m -i
214+ fi
177215fi
0 commit comments