You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

check_tid.sh 1.1 kB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. SCRIPT_DIR=$(dirname "$0")
  3. MS_DIR=$(realpath ${SCRIPT_DIR}/..)
  4. BUILD_DIR=${MS_DIR}/build
  5. HASH_EXE=${BUILD_DIR}/gentid
  6. HASH_SRC=${BUILD_DIR}/gentid.cc
  7. mkdir -p ${BUILD_DIR}
  8. echo "#include <iostream>" > ${HASH_SRC}
  9. echo "#include \"${MS_DIR}/mindspore/core/utils/hashing.h\"" >> ${HASH_SRC}
  10. echo "int main(int argc, char *argv[0]) { std::cout << mindspore::ConstStringHash(argv[1]) << std::endl; }" >> ${HASH_SRC}
  11. g++ -std=c++17 -o ${HASH_EXE} ${HASH_SRC}
  12. BASE_TID=$(${HASH_EXE} Base)
  13. declare -A TIDMAP=( [${BASE_TID}]=Base )
  14. grep -r MS_DECLARE_PARENT --include=*.h --include=*.cc ${MS_DIR} | while read line
  15. do
  16. #echo $line
  17. if [[ "$line" =~ .*\((.*)\,(.*)\).* ]]
  18. then
  19. CLASS_NAME=${BASH_REMATCH[2]}_${BASH_REMATCH[1]}
  20. TID=$(${HASH_EXE} ${CLASS_NAME})
  21. if [ ${TIDMAP[${TID}]+_} ]; then
  22. echo $line
  23. echo Same tid $TID is used by $CLASS_NAME and ${TIDMAP[${TID}]}.
  24. exit 1
  25. fi
  26. TIDMAP[${TID}]=${CLASS_NAME}
  27. echo ${TID} ${CLASS_NAME}
  28. fi
  29. done
  30. if [ $? != 0 ];then
  31. echo 'Check tid failed!'
  32. exit 1
  33. fi
  34. echo 'All tids are unique, check tid ok.'