• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2#                     The MCLinker project
3#
4# This file is distributed under the University of Illinois Open Source
5# License. See LICENSE.TXT for details.
6
7function ask_filename
8{
9	echo -n "What is the class you what to test for? ";
10}
11
12function ask_brief
13{
14	CLASS_NAME=$1
15	echo "Please brief the testcase (optional):"
16}
17
18function copy_template_header
19{
20	local NAME=$1
21	local DEPLOYMENT=$2
22	local TARGET_FILE="${MCLINKERTOP}/unittests/${NAME}Test.h";
23	local SOURCE_FILE="${MCLINKERTOP}/templates/headerTest.h";
24	cp ${SOURCE_FILE} ${TARGET_FILE}
25	echo "${TARGET_FILE}";
26}
27
28function copy_template_impl
29{
30	local NAME=$1
31	local DEPLOYMENT=$2
32	local TARGET_FILE="${MCLINKERTOP}/unittests/${NAME}Test.cpp";
33	local SOURCE_FILE="${MCLINKERTOP}/templates/implTest.cpp";
34	cp ${SOURCE_FILE} ${TARGET_FILE}
35	echo "${TARGET_FILE}";
36}
37
38function replace_author
39{
40	local TARGET_FILE=$1
41	shift
42	local AUTHOR=$*
43
44	sed "s/\${AUTHOR}/${AUTHOR}/g" ${TARGET_FILE} > ${TARGET_FILE}.tmp
45	mv ${TARGET_FILE}.tmp ${TARGET_FILE}
46}
47
48function repalce_email
49{
50	local TARGET_FILE=$1
51	local EMAIL=$2
52	sed "s/\${EMAIL}/${EMAIL}/g" ${TARGET_FILE} > ${TARGET_FILE}.tmp
53
54	# adjust the length of header
55	NEW_SPACE=`grep '>                                                    *' ${TARGET_FILE}.tmp | wc -c`
56	NEW_SPACE=`expr 79 - ${NEW_SPACE}`
57	ADDEND=">";
58	if [ "${NEW_SPACE}" -gt "0" ]; then # add space
59		for (( i=0; i<${NEW_SPACE}; i=i+1 )); do
60			ADDEND="${ADDEND} ";
61		done
62		sed "s/${EMAIL}>/${EMAIL}${ADDEND}/" ${TARGET_FILE}.tmp > ${TARGET_FILE}
63	elif [ "${NEW_SPACE}" -lt "0" ]; then # strip space
64		for (( i=${NEW_SPACE}; i<0; i=i+1 )); do
65			ADDEND="${ADDEND} ";
66		done
67		sed "s/${EMAIL}${ADDEND}/${EMAIL}>/g" ${TARGET_FILE}.tmp > ${TARGET_FILE}
68
69	else #do nothing
70		mv ${TARGET_FILE}.tmp ${TARGET_FILE}
71	fi
72
73	rm ${TARGET_FILE}.tmp
74	local EMAIL=$2
75}
76
77function replace_class
78{
79	local TARGET_FILE=$1
80	local CLASS_NAME=$2
81	local UPCLASS_NAME=`echo ${CLASS_NAME} | tr [:lower:] [:upper:]`
82
83	sed "s/\${class_name}/${CLASS_NAME}/g" ${TARGET_FILE} > ${TARGET_FILE}.tmp
84	sed "s/\${CLASS_NAME}/${UPCLASS_NAME}/g" ${TARGET_FILE}.tmp > ${TARGET_FILE}
85	rm ${TARGET_FILE}.tmp
86}
87
88function replace_brief
89{
90	local TARGET_FILE=$1
91	shift
92	local BRIEF=$*
93	sed "s/\${brief}/${BRIEF}/g" ${TARGET_FILE} > ${TARGET_FILE}.tmp
94	mv ${TARGET_FILE}.tmp ${TARGET_FILE}
95}
96
97