#!/bin/bash # The MCLinker project # # This file is distributed under the University of Illinois Open Source # License. See LICENSE.TXT for details. function ask_filename { echo -n "What is the class you what to test for? "; } function ask_brief { CLASS_NAME=$1 echo "Please brief the testcase (optional):" } function copy_template_header { local NAME=$1 local DEPLOYMENT=$2 local TARGET_FILE="${MCLINKERTOP}/unittests/${NAME}Test.h"; local SOURCE_FILE="${MCLINKERTOP}/templates/headerTest.h"; cp ${SOURCE_FILE} ${TARGET_FILE} echo "${TARGET_FILE}"; } function copy_template_impl { local NAME=$1 local DEPLOYMENT=$2 local TARGET_FILE="${MCLINKERTOP}/unittests/${NAME}Test.cpp"; local SOURCE_FILE="${MCLINKERTOP}/templates/implTest.cpp"; cp ${SOURCE_FILE} ${TARGET_FILE} echo "${TARGET_FILE}"; } function replace_author { local TARGET_FILE=$1 shift local AUTHOR=$* sed "s/\${AUTHOR}/${AUTHOR}/g" ${TARGET_FILE} > ${TARGET_FILE}.tmp mv ${TARGET_FILE}.tmp ${TARGET_FILE} } function repalce_email { local TARGET_FILE=$1 local EMAIL=$2 sed "s/\${EMAIL}/${EMAIL}/g" ${TARGET_FILE} > ${TARGET_FILE}.tmp # adjust the length of header NEW_SPACE=`grep '> *' ${TARGET_FILE}.tmp | wc -c` NEW_SPACE=`expr 79 - ${NEW_SPACE}` ADDEND=">"; if [ "${NEW_SPACE}" -gt "0" ]; then # add space for (( i=0; i<${NEW_SPACE}; i=i+1 )); do ADDEND="${ADDEND} "; done sed "s/${EMAIL}>/${EMAIL}${ADDEND}/" ${TARGET_FILE}.tmp > ${TARGET_FILE} elif [ "${NEW_SPACE}" -lt "0" ]; then # strip space for (( i=${NEW_SPACE}; i<0; i=i+1 )); do ADDEND="${ADDEND} "; done sed "s/${EMAIL}${ADDEND}/${EMAIL}>/g" ${TARGET_FILE}.tmp > ${TARGET_FILE} else #do nothing mv ${TARGET_FILE}.tmp ${TARGET_FILE} fi rm ${TARGET_FILE}.tmp local EMAIL=$2 } function replace_class { local TARGET_FILE=$1 local CLASS_NAME=$2 local UPCLASS_NAME=`echo ${CLASS_NAME} | tr [:lower:] [:upper:]` sed "s/\${class_name}/${CLASS_NAME}/g" ${TARGET_FILE} > ${TARGET_FILE}.tmp sed "s/\${CLASS_NAME}/${UPCLASS_NAME}/g" ${TARGET_FILE}.tmp > ${TARGET_FILE} rm ${TARGET_FILE}.tmp } function replace_brief { local TARGET_FILE=$1 shift local BRIEF=$* sed "s/\${brief}/${BRIEF}/g" ${TARGET_FILE} > ${TARGET_FILE}.tmp mv ${TARGET_FILE}.tmp ${TARGET_FILE} }