| #!/bin/bash |
| |
| # to run lint on all modules, type |
| # lint_all | tee lint_all.std |
| |
| #------------------------------------------------------------------------- |
| # list all blocks |
| #------------------------------------------------------------------------- |
| declare -a blocks=( |
| "alert_handler" |
| "pinmux" |
| "padctrl" |
| "padring" |
| "gpio" |
| "rv_core_ibex" |
| "rv_dm" |
| "rv_plic" |
| "spi_device" |
| "rv_timer" |
| "uart" |
| "hmac" |
| "flash_ctrl" |
| "usbuart" |
| "usbdev" |
| "usb_fs_nb_pe" |
| "tlul_adapter_sram" |
| "tlul_socket_1n" |
| "tlul_socket_m1" |
| "sram2tlul" |
| "xbar_main" |
| "top_earlgrey" |
| ) |
| |
| #------------------------------------------------------------------------- |
| # print header |
| #------------------------------------------------------------------------- |
| printf "NUMBER OF LINT ERRORS PER BLOCK:\n\n" |
| format="%20s %10s %10s \n" |
| printf "${format}" "Block" "Errors" "Warnings" |
| echo "-------------------------------------------" |
| |
| #------------------------------------------------------------------------- |
| # run lint and summarize results |
| #------------------------------------------------------------------------- |
| \rm -Rf build ascent_project lint_*.log lint_*.rpt |
| |
| for block in "${blocks[@]}" ; do |
| |
| lint $block > /dev/null 2>&1 |
| cp lint.log lint_${block}.log |
| cp lint.rpt lint_${block}.rpt |
| |
| # summarize results |
| crash=`grep "^ ERR" lint.log` |
| if [ $? -eq 0 ]; then |
| error_cnt="CRASH" |
| warni_cnt="CRASH" |
| else |
| error_cnt=`grep "^E " lint.rpt | wc -l` |
| warni_cnt=`grep "^W " lint.rpt | wc -l` |
| fi |
| printf "${format}" `echo $block | rev | cut -d"/" -f2 | rev` $error_cnt $warni_cnt |
| done |
| |
| #------------------------------------------------------------------------- |
| # generate detailed reports |
| #------------------------------------------------------------------------- |
| printf "\n\nLIST OF ERRORS (E) AND WARNINGS (W) FOR EACH BLOCK:" |
| for block in "${blocks[@]}" ; do |
| |
| printf "\n\n${block}\n" |
| |
| # grep for lint crashes and lint errors, and limit line length |
| grep "^ ERR" -A 2 lint_${block}.log | cut -c -200 |
| grep "^E " lint_${block}.rpt | cut -c -200 |
| grep "^W " lint_${block}.rpt | cut -c -200 |
| |
| done |