rename template file to allow distinction between template and go compilation unit

Change-Id: I1b633530746202cf5eac419d890e4221f9695986
diff --git a/tests/afrouter/templates/client.go b/tests/afrouter/templates/client.go.tmpl
similarity index 100%
rename from tests/afrouter/templates/client.go
rename to tests/afrouter/templates/client.go.tmpl
diff --git a/tests/afrouter/templates/clientInit.go b/tests/afrouter/templates/clientInit.go.tmpl
similarity index 100%
rename from tests/afrouter/templates/clientInit.go
rename to tests/afrouter/templates/clientInit.go.tmpl
diff --git a/tests/afrouter/templates/main.go b/tests/afrouter/templates/main.go.tmpl
similarity index 100%
rename from tests/afrouter/templates/main.go
rename to tests/afrouter/templates/main.go.tmpl
diff --git a/tests/afrouter/templates/runAll.go b/tests/afrouter/templates/runAll.go.tmpl
similarity index 100%
rename from tests/afrouter/templates/runAll.go
rename to tests/afrouter/templates/runAll.go.tmpl
diff --git a/tests/afrouter/templates/runTests.go b/tests/afrouter/templates/runTests.go.tmpl
similarity index 100%
rename from tests/afrouter/templates/runTests.go
rename to tests/afrouter/templates/runTests.go.tmpl
diff --git a/tests/afrouter/templates/server.go b/tests/afrouter/templates/server.go.tmpl
similarity index 100%
rename from tests/afrouter/templates/server.go
rename to tests/afrouter/templates/server.go.tmpl
diff --git a/tests/afrouter/templates/serverInit.go b/tests/afrouter/templates/serverInit.go.tmpl
similarity index 100%
rename from tests/afrouter/templates/serverInit.go
rename to tests/afrouter/templates/serverInit.go.tmpl
diff --git a/tests/afrouter/templates/stats.go b/tests/afrouter/templates/stats.go.tmpl
similarity index 100%
rename from tests/afrouter/templates/stats.go
rename to tests/afrouter/templates/stats.go.tmpl
diff --git a/tests/afrouter/tester.go b/tests/afrouter/tester.go
index fafbbbe..c7c89f4 100644
--- a/tests/afrouter/tester.go
+++ b/tests/afrouter/tester.go
@@ -18,71 +18,69 @@
 package main
 
 import (
-	"os"
-	"fmt"
-	"flag"
-	"path"
-	"math"
-	//"bufio"
-	"errors"
-	"regexp"
-	"os/exec"
-	"strconv"
-	"io/ioutil"
 	"encoding/json"
-	"text/template"
+	"errors"
+	"flag"
+	"fmt"
 	"github.com/golang/protobuf/proto"
-	"github.com/opencord/voltha-go/common/log"
 	pb "github.com/golang/protobuf/protoc-gen-go/descriptor"
+	"github.com/opencord/voltha-go/common/log"
+	"io/ioutil"
+	"math"
+	"os"
+	"os/exec"
+	"path"
+	"regexp"
+	"strconv"
+	"text/template"
 )
 
 const MAX_CT = 500
 
 type TestConfig struct {
 	configFile *string
-	logLevel *int
-	grpcLog *bool
-	Suites []string `json:"suites"`
+	logLevel   *int
+	grpcLog    *bool
+	Suites     []string `json:"suites"`
 }
 
-
 type Connection struct {
 	Name string `json:"name"`
 	Port string `json:"port"`
 }
 
 type EndpointList struct {
-	Imports []string `json:"imports"`
+	Imports   []string     `json:"imports"`
 	Endpoints []Connection `json:"endPoints"`
 }
 
 type ProtoFile struct {
 	ImportPath string `json:"importPath"`
-	Service string `json:"service"`
-	Package string `json:"package"`
+	Service    string `json:"service"`
+	Package    string `json:"package"`
 }
 
 type ProtoSubst struct {
 	From string `json:"from"`
-	To string `json:"to"`
+	To   string `json:"to"`
 }
 
 type Environment struct {
-	Command string `json:"cmdLine"`
-	ProtoFiles []ProtoFile `json:"protoFiles"`
-	ProtoDesc string `json:"protoDesc"`
-	Clients EndpointList `json:"clients"`
-	Servers EndpointList `json:"servers"`
-	Imports []string `json:"imports"`
+	Command     string       `json:"cmdLine"`
+	ProtoFiles  []ProtoFile  `json:"protoFiles"`
+	ProtoDesc   string       `json:"protoDesc"`
+	Clients     EndpointList `json:"clients"`
+	Servers     EndpointList `json:"servers"`
+	Imports     []string     `json:"imports"`
 	ProtoSubsts []ProtoSubst `json:"protoSubst"`
 }
 
 type Rpc struct {
-	Client string `json:"client"`
-	Method string `json:"method"`
-	Param string `json:"param"`
-	Expect string `json:"expect"`
-	MetaData []MetaD `json:"meta"`
+	Client     string  `json:"client"`
+	Method     string  `json:"method"`
+	Param      string  `json:"param"`
+	Expect     string  `json:"expect"`
+	MetaData   []MetaD `json:"meta"`
 	ExpectMeta []MetaD `json:"expectMeta"`
 }
 
@@ -92,117 +90,116 @@
 }
 
 type Server struct {
-	Name string `json:"name"`
+	Name string  `json:"name"`
 	Meta []MetaD `json:"meta"`
 }
 
 type Test struct {
-	Name string `json:"name"`
-	InfoOnly bool `json:"infoOnly"`
-	Send Rpc `json:"send"`
-	Servers []Server `json:"servers"`
+	Name     string   `json:"name"`
+	InfoOnly bool     `json:"infoOnly"`
+	Send     Rpc      `json:"send"`
+	Servers  []Server `json:"servers"`
 }
 
 type TestSuite struct {
-	Env Environment `json:"environment"`
-	Tests []Test `json:"tests"`
+	Env   Environment `json:"environment"`
+	Tests []Test      `json:"tests"`
 }
 
 type ProtoImport struct {
 	Service string
-	Short string
+	Short   string
 	Package string
-	Used bool
+	Used    bool
 }
 
 type SendItem struct {
-	Client string
-	Method string
-	Param string
-	ParamType string
-	Expect string
+	Client     string
+	Method     string
+	Param      string
+	ParamType  string
+	Expect     string
 	ExpectType string
-	MetaData []MetaD
+	MetaData   []MetaD
 	ExpectMeta []MetaD
 }
 
 type TestCase struct {
-	Name string
+	Name     string
 	InfoOnly bool
-	Send SendItem
-	Srvr []Server
+	Send     SendItem
+	Srvr     []Server
 }
 
 type MethodTypes struct {
-	ParamType string
-	ReturnType string
+	ParamType     string
+	ReturnType    string
 	CodeGenerated bool
 }
 
 type Import struct {
 	Package string
-	Used bool
+	Used    bool
 }
 
 type TestList struct {
-	ProtoImports []ProtoImport
-	Imports []Import
-	Tests []TestCase
-	Funcs map[string]MethodTypes
+	ProtoImports     []ProtoImport
+	Imports          []Import
+	Tests            []TestCase
+	Funcs            map[string]MethodTypes
 	RunTestsCallList []string
-	FileNum int
+	FileNum          int
 	//NextFile int
 	HasFuncs bool
-	Offset int
+	Offset   int
 }
 
 type ClientConfig struct {
-	Ct int
-	Name string
-	Port string
-	Imports []string
-	Methods map[string]*mthd
+	Ct           int
+	Name         string
+	Port         string
+	Imports      []string
+	Methods      map[string]*mthd
 	ProtoImports []ProtoImport
 }
 
 type ServerConfig struct {
-	Ct int
-	Name string
-	Port string
-	Imports []string
-	Methods map[string]*mthd
+	Ct           int
+	Name         string
+	Port         string
+	Imports      []string
+	Methods      map[string]*mthd
 	ProtoImports []ProtoImport
 }
 
 type mthd struct {
-	Pkg string
-	Svc string
-	Name string
+	Pkg   string
+	Svc   string
+	Name  string
 	Param string
-	Rtrn string
-	Ss bool // Server streaming 
-	Cs bool // Clieent streaming 
+	Rtrn  string
+	Ss    bool // Server streaming
+	Cs    bool // Clieent streaming
 }
 
-
 func parseCmd() (*TestConfig, error) {
 	config := &TestConfig{}
-	cmdParse := flag.NewFlagSet(path.Base(os.Args[0]), flag.ContinueOnError);
+	cmdParse := flag.NewFlagSet(path.Base(os.Args[0]), flag.ContinueOnError)
 	config.configFile = cmdParse.String("config", "suites.json", "The configuration file for the affinity router tester")
 	config.logLevel = cmdParse.Int("logLevel", 0, "The log level for the affinity router tester")
 	config.grpcLog = cmdParse.Bool("grpclog", false, "Enable GRPC logging")
 
-	err := cmdParse.Parse(os.Args[1:]);
+	err := cmdParse.Parse(os.Args[1:])
 	if err != nil {
 		//return err
-		return nil, errors.New("Error parsing the command line");
+		return nil, errors.New("Error parsing the command line")
 	}
 	return config, nil
 }
 
-func (conf * TestConfig) loadConfig() error {
+func (conf *TestConfig) loadConfig() error {
 
-	configF, err := os.Open(*conf.configFile);
+	configF, err := os.Open(*conf.configFile)
 	log.Info("Loading configuration from: ", *conf.configFile)
 	if err != nil {
 		log.Error(err)
@@ -222,12 +219,12 @@
 	return nil
 }
 
-func (suite * TestSuite) loadSuite(suiteN string)  error {
+func (suite *TestSuite) loadSuite(suiteN string) error {
 	// Check if there's a corresponding go file for the suite.
 	// If it is present then the json test suite file is a
 	// template. Compile the go file and run it to process
 	// the template.
-	if _,err := os.Stat(suiteN+".go"); err == nil {
+	if _, err := os.Stat(suiteN + ".go"); err == nil {
 		// Compile and run the the go file
 		log.Infof("Suite '%s' is a template, compiling '%s'", suiteN, suiteN+".go")
 		cmd := exec.Command("go", "build", "-o", suiteN+".te", suiteN+".go")
@@ -237,7 +234,7 @@
 		if err := cmd.Run(); err != nil {
 			log.Errorf("Error running the compile command:%v", err)
 		}
-		cmd = exec.Command("./"+suiteN+".te")
+		cmd = exec.Command("./" + suiteN + ".te")
 		cmd.Stdin = os.Stdin
 		cmd.Stdout = os.Stdout
 		cmd.Stderr = os.Stderr
@@ -245,7 +242,7 @@
 			log.Errorf("Error running the %s command:%v", suiteN+".te", err)
 		}
 	}
-	suiteF, err := os.Open(suiteN+".json");
+	suiteF, err := os.Open(suiteN + ".json")
 	log.Infof("Loading test suite from: %s", suiteN+".json")
 	if err != nil {
 		log.Error(err)
@@ -271,9 +268,9 @@
 
 	// Load the protobuf descriptor file
 	protoDescriptor := &pb.FileDescriptorSet{}
-	fb, err := ioutil.ReadFile(fileName);
+	fb, err := ioutil.ReadFile(fileName)
 	if err != nil {
-		log.Errorf("Could not open proto file '%s'",fileName)
+		log.Errorf("Could not open proto file '%s'", fileName)
 		rtrn_err = true
 	}
 	err = proto.Unmarshal(fb, protoDescriptor)
@@ -282,31 +279,30 @@
 		rtrn_err = true
 	}
 
-	var substM  map[string]string = make(map[string]string)
+	var substM map[string]string = make(map[string]string)
 	// Create a substitution map
 	log.Debugf("Creating import map")
-	for _,v := range substs {
+	for _, v := range substs {
 		log.Debugf("Mapping from %s to %s", v.From, v.To)
 		substM[v.From] = v.To
 	}
 
-
 	// Build the a map containing the method as the key
 	// and the paramter and return types as the fields
-	for _,f := range protoDescriptor.File {
+	for _, f := range protoDescriptor.File {
 		if *f.Package == pkg {
-			for _, s:= range f.Service {
+			for _, s := range f.Service {
 				if *s.Name == svc {
 					log.Debugf("Loading package data '%s' for service '%s'", *f.Package, *s.Name)
 					// Now create a map keyed by method name with the value being the
 					// field number of the route selector.
 					//var ok bool
-					for _,m := range s.Method {
+					for _, m := range s.Method {
 						// Find the input type in the messages and extract the
 						// field number and save it for future reference.
-						log.Debugf("Processing method (%s(%s) (%s){}",*m.Name, (*m.InputType)[1:], (*m.OutputType)[1:])
-						mthds[*m.Name] = &mthd{Pkg:pkg, Svc:svc, Name:*m.Name, Param:(*m.InputType)[1:],
-												Rtrn:(*m.OutputType)[1:]}
+						log.Debugf("Processing method (%s(%s) (%s){}", *m.Name, (*m.InputType)[1:], (*m.OutputType)[1:])
+						mthds[*m.Name] = &mthd{Pkg: pkg, Svc: svc, Name: *m.Name, Param: (*m.InputType)[1:],
+							Rtrn: (*m.OutputType)[1:]}
 						if m.ClientStreaming != nil && *m.ClientStreaming == true {
 							log.Debugf("Method %s is a client streaming method", *m.Name)
 							mthds[*m.Name].Cs = true
@@ -316,10 +312,10 @@
 							mthds[*m.Name].Ss = true
 						}
 						// Perform the required substitutions
-						if _,ok := substM[mthds[*m.Name].Param]; ok == true {
+						if _, ok := substM[mthds[*m.Name].Param]; ok == true {
 							mthds[*m.Name].Param = substM[mthds[*m.Name].Param]
 						}
-						if _,ok := substM[mthds[*m.Name].Rtrn]; ok == true {
+						if _, ok := substM[mthds[*m.Name].Rtrn]; ok == true {
 							mthds[*m.Name].Rtrn = substM[mthds[*m.Name].Rtrn]
 						}
 					}
@@ -328,40 +324,40 @@
 		}
 	}
 	if rtrn_err {
-		return nil,errors.New(fmt.Sprintf("Failed to load protobuf descriptor file '%s'",fileName))
+		return nil, errors.New(fmt.Sprintf("Failed to load protobuf descriptor file '%s'", fileName))
 	}
 	return mthds, nil
 }
 
 // Server source code generation
-func generateServers(conf *TestConfig, suiteDir string, ts * TestSuite,
-						t *template.Template) error {
+func generateServers(conf *TestConfig, suiteDir string, ts *TestSuite,
+	t *template.Template) error {
 	var servers []ServerConfig
 
-	for k,v := range ts.Env.Servers.Endpoints {
+	for k, v := range ts.Env.Servers.Endpoints {
 		log.Infof("Generating the code for server[%d]: %s", k, v.Name)
-		sc := &ServerConfig{Name:v.Name, Port:v.Port, Ct:k, Imports:ts.Env.Servers.Imports,
-							Methods:make(map[string]*mthd)}
-		for k1,v1 := range ts.Env.ProtoFiles {
-			imp := &ProtoImport{Short:"pb"+strconv.Itoa(k1),
-								Package:v1.ImportPath+v1.Package,
-								Service:v1.Service,
-								Used:true}
-			imp = &ProtoImport{Short:v1.Package,
-								Package:v1.ImportPath+v1.Package,
-								Service:v1.Service,
-								Used:true}
+		sc := &ServerConfig{Name: v.Name, Port: v.Port, Ct: k, Imports: ts.Env.Servers.Imports,
+			Methods: make(map[string]*mthd)}
+		for k1, v1 := range ts.Env.ProtoFiles {
+			imp := &ProtoImport{Short: "pb" + strconv.Itoa(k1),
+				Package: v1.ImportPath + v1.Package,
+				Service: v1.Service,
+				Used:    true}
+			imp = &ProtoImport{Short: v1.Package,
+				Package: v1.ImportPath + v1.Package,
+				Service: v1.Service,
+				Used:    true}
 			sc.ProtoImports = append(sc.ProtoImports, *imp)
 			// Compile the template from the file
 			log.Debugf("Proto substs: %v", ts.Env.ProtoSubsts)
 			if mthds, err := loadProtoMap(ts.Env.ProtoDesc, v1.Package,
-											v1.Service, ts.Env.ProtoSubsts); err != nil {
+				v1.Service, ts.Env.ProtoSubsts); err != nil {
 				log.Errorf("Unable to process proto descriptor file %s for package: %s, service: %s",
-						ts.Env.ProtoDesc, v1.Package, v1.Service)
+					ts.Env.ProtoDesc, v1.Package, v1.Service)
 				return err
 			} else {
-				//Generate all the function calls required by the 
-				for k,v := range mthds {
+				//Generate all the function calls required by the
+				for k, v := range mthds {
 					sc.Methods[k] = v
 				}
 				//sc.Methods = mthds
@@ -371,20 +367,20 @@
 		// Save this server for the next steop
 		servers = append(servers, *sc)
 		// Open an output file to put the output in.
-		if f,err := os.Create(suiteDir+"/"+v.Name+".go"); err == nil {
+		if f, err := os.Create(suiteDir + "/" + v.Name + ".go"); err == nil {
 			defer f.Close()
-			//if err := t.ExecuteTemplate(os.Stdout, "server.go", *sc); err != nil {}
-			if err := t.ExecuteTemplate(f, "server.go", *sc); err != nil {
+			//if err := t.ExecuteTemplate(os.Stdout, "server.go.tmpl", *sc); err != nil {}
+			if err := t.ExecuteTemplate(f, "server.go.tmpl", *sc); err != nil {
 				log.Errorf("Unable to execute template for server[%d]: %s: %v", k, v.Name, err)
 				return err
 			}
 		}
 	}
 	// Generate the server initialization code
-	if f,err := os.Create(suiteDir+"/serverInit.go"); err == nil {
+	if f, err := os.Create(suiteDir + "/serverInit.go"); err == nil {
 		defer f.Close()
-		//if err := t.ExecuteTemplate(os.Stdout, "server.go", *sc); err != nil {}
-		if err := t.ExecuteTemplate(f, "serverInit.go", servers); err != nil {
+		//if err := t.ExecuteTemplate(os.Stdout, "server.go.tmpl", *sc); err != nil {}
+		if err := t.ExecuteTemplate(f, "serverInit.go.tmpl", servers); err != nil {
 			log.Errorf("Unable to execute template for serverInit.go: %v", err)
 			return err
 		}
@@ -393,37 +389,37 @@
 	return nil
 }
 
-func generateClients(conf *TestConfig, suiteDir string, ts * TestSuite,
-						t *template.Template) error {
+func generateClients(conf *TestConfig, suiteDir string, ts *TestSuite,
+	t *template.Template) error {
 	var clients []ClientConfig
-	for k,v := range ts.Env.Clients.Endpoints {
+	for k, v := range ts.Env.Clients.Endpoints {
 		log.Infof("Generating the code for client[%d]: %s", k, v.Name)
-		cc := &ClientConfig{Name:v.Name, Port:v.Port, Ct:k, Imports:ts.Env.Clients.Imports,
-							Methods:make(map[string]*mthd)}
-		for _,v1 := range ts.Env.ProtoFiles {
-			imp := &ProtoImport{Short:v1.Package,
-								Package:v1.ImportPath+v1.Package,
-								Service:v1.Service}
+		cc := &ClientConfig{Name: v.Name, Port: v.Port, Ct: k, Imports: ts.Env.Clients.Imports,
+			Methods: make(map[string]*mthd)}
+		for _, v1 := range ts.Env.ProtoFiles {
+			imp := &ProtoImport{Short: v1.Package,
+				Package: v1.ImportPath + v1.Package,
+				Service: v1.Service}
 			cc.ProtoImports = append(cc.ProtoImports, *imp)
 			// Compile the template from the file
 			log.Debugf("Proto substs: %v", ts.Env.ProtoSubsts)
 			if mthds, err := loadProtoMap(ts.Env.ProtoDesc, v1.Package,
-											v1.Service, ts.Env.ProtoSubsts); err != nil {
+				v1.Service, ts.Env.ProtoSubsts); err != nil {
 				log.Errorf("Unable to process proto descriptor file %s for package: %s, service: %s",
-						ts.Env.ProtoDesc, v1.Package, v1.Service)
+					ts.Env.ProtoDesc, v1.Package, v1.Service)
 				return err
 			} else {
 				// Add to the known methods
-				for k,v := range mthds {
+				for k, v := range mthds {
 					cc.Methods[k] = v
 				}
 			}
 		}
 		clients = append(clients, *cc)
-		if f,err := os.Create(suiteDir+"/"+v.Name+"_client.go"); err == nil {
-			_=f
+		if f, err := os.Create(suiteDir + "/" + v.Name + "_client.go"); err == nil {
+			_ = f
 			defer f.Close()
-			if err := t.ExecuteTemplate(f, "client.go", cc); err != nil {
+			if err := t.ExecuteTemplate(f, "client.go.tmpl", cc); err != nil {
 				log.Errorf("Unable to execute template for client.go: %v", err)
 				return err
 			}
@@ -432,10 +428,10 @@
 			return err
 		}
 	}
-	if f,err := os.Create(suiteDir+"/clientInit.go"); err == nil {
+	if f, err := os.Create(suiteDir + "/clientInit.go"); err == nil {
 		defer f.Close()
-		//if err := t.ExecuteTemplate(os.Stdout, "server.go", *sc); err != nil {}
-		if err := t.ExecuteTemplate(f, "clientInit.go", clients); err != nil {
+		//if err := t.ExecuteTemplate(os.Stdout, "server.go.tmpl", *sc); err != nil {}
+		if err := t.ExecuteTemplate(f, "clientInit.go.tmpl", clients); err != nil {
 			log.Errorf("Unable to execute template for clientInit.go: %v", err)
 			return err
 		}
@@ -443,8 +439,8 @@
 	return nil
 }
 
-func serverExists(srvr string, ts * TestSuite) bool {
-	for _,v := range ts.Env.Servers.Endpoints {
+func serverExists(srvr string, ts *TestSuite) bool {
+	for _, v := range ts.Env.Servers.Endpoints {
 		if v.Name == srvr {
 			return true
 		}
@@ -457,7 +453,7 @@
 	var p string
 	var e string
 	r := regexp.MustCompile(`^([^.]+)\..*$`)
-	for _,v := range tests {
+	for _, v := range tests {
 		pa := r.FindStringSubmatch(v.Send.ParamType)
 		if len(pa) == 2 {
 			p = pa[1]
@@ -470,10 +466,10 @@
 		} else {
 			log.Errorf("Internal error regexp returned %v", pa)
 		}
-		if _,ok := rtrn[p]; ok == false {
+		if _, ok := rtrn[p]; ok == false {
 			rtrn[p] = struct{}{}
 		}
-		if _,ok := rtrn[e]; ok == false {
+		if _, ok := rtrn[e]; ok == false {
 			rtrn[e] = struct{}{}
 		}
 	}
@@ -483,21 +479,21 @@
 func fixupProtoImports(protoImports []ProtoImport, used map[string]struct{}) []ProtoImport {
 	var rtrn []ProtoImport
 	//log.Infof("Updating imports %v, using %v", protoImports, used)
-	for _,v := range protoImports {
+	for _, v := range protoImports {
 		//log.Infof("Looking for package %s", v.Package)
-		if _,ok := used[v.Short]; ok == true {
-			rtrn = append(rtrn, ProtoImport {
+		if _, ok := used[v.Short]; ok == true {
+			rtrn = append(rtrn, ProtoImport{
 				Service: v.Service,
-				Short: v.Short,
+				Short:   v.Short,
 				Package: v.Package,
-				Used: true,
+				Used:    true,
 			})
 		} else {
-			rtrn = append(rtrn, ProtoImport {
+			rtrn = append(rtrn, ProtoImport{
 				Service: v.Service,
-				Short: v.Short,
+				Short:   v.Short,
 				Package: v.Package,
-				Used: false,
+				Used:    false,
 			})
 		}
 	}
@@ -510,7 +506,7 @@
 	var p string
 	re := regexp.MustCompile(`^.*/([^/]+)$`)
 	//log.Infof("Updating imports %v, using %v", protoImports, used)
-	for _,v := range imports {
+	for _, v := range imports {
 		//log.Infof("Looking for match in %s", v.Package)
 		pa := re.FindStringSubmatch(v.Package)
 		if len(pa) == 2 {
@@ -519,15 +515,15 @@
 			log.Errorf("Substring match failed, regexp returned %v", pa)
 		}
 		//log.Infof("Looking for package %s", v.Package)
-		if _,ok := used[p]; ok == true {
-			rtrn = append(rtrn, Import {
+		if _, ok := used[p]; ok == true {
+			rtrn = append(rtrn, Import{
 				Package: v.Package,
-				Used: true,
+				Used:    true,
 			})
 		} else {
-			rtrn = append(rtrn, Import {
+			rtrn = append(rtrn, Import{
 				Package: v.Package,
-				Used: false,
+				Used:    false,
 			})
 		}
 	}
@@ -535,37 +531,36 @@
 	return rtrn
 }
 
-
-func generateTestCases(conf *TestConfig, suiteDir string, ts * TestSuite,
-						t *template.Template) error {
+func generateTestCases(conf *TestConfig, suiteDir string, ts *TestSuite,
+	t *template.Template) error {
 	var mthdMap map[string]*mthd
 	mthdMap = make(map[string]*mthd)
 	// Generate the test cases
 	log.Info("Generating the test cases: runTests.go")
-	tc := &TestList{Funcs:make(map[string]MethodTypes),
-					FileNum:0, HasFuncs: false,
-					Offset:0}
-	for _,v := range ts.Env.Imports {
-		tc.Imports = append(tc.Imports,Import{Package:v, Used:true})
+	tc := &TestList{Funcs: make(map[string]MethodTypes),
+		FileNum: 0, HasFuncs: false,
+		Offset: 0}
+	for _, v := range ts.Env.Imports {
+		tc.Imports = append(tc.Imports, Import{Package: v, Used: true})
 	}
 
 	// Load the proto descriptor file
-	for _,v := range ts.Env.ProtoFiles {
-		imp := &ProtoImport{Short:v.Package,
-							Package:v.ImportPath+v.Package,
-							Service:v.Service,
-							Used:true}
+	for _, v := range ts.Env.ProtoFiles {
+		imp := &ProtoImport{Short: v.Package,
+			Package: v.ImportPath + v.Package,
+			Service: v.Service,
+			Used:    true}
 		tc.ProtoImports = append(tc.ProtoImports, *imp)
 		// Compile the template from the file
 		log.Debugf("Proto substs: %v", ts.Env.ProtoSubsts)
 		if mthds, err := loadProtoMap(ts.Env.ProtoDesc, v.Package,
-										v.Service, ts.Env.ProtoSubsts); err != nil {
+			v.Service, ts.Env.ProtoSubsts); err != nil {
 			log.Errorf("Unable to process proto descriptor file %s for package: %s, service: %s",
-					ts.Env.ProtoDesc, v.Package, v.Service)
+				ts.Env.ProtoDesc, v.Package, v.Service)
 			return err
 		} else {
 			// Add to the known methods
-			for k,v := range mthds {
+			for k, v := range mthds {
 				mthdMap[k] = v
 			}
 		}
@@ -600,18 +595,18 @@
 	//											  ReturnType:mthdMap[v.Send.Method].Rtrn}
 	//	}
 	//}
-	for i:=1; i<int(math.Ceil(float64(len(ts.Tests))/float64(MAX_CT))); i++ {
+	for i := 1; i < int(math.Ceil(float64(len(ts.Tests))/float64(MAX_CT))); i++ {
 		tc.RunTestsCallList = append(tc.RunTestsCallList, "runTests"+strconv.Itoa(i))
 	}
 
 	// Create the test data structure for the template
-	for _,v := range ts.Tests {
+	for _, v := range ts.Tests {
 		var test TestCase
 
-		if _,ok := tc.Funcs[v.Send.Method]; ok == false {
-			tc.Funcs[v.Send.Method] = MethodTypes{ParamType:mthdMap[v.Send.Method].Param,
-												  ReturnType:mthdMap[v.Send.Method].Rtrn,
-												  CodeGenerated:false}
+		if _, ok := tc.Funcs[v.Send.Method]; ok == false {
+			tc.Funcs[v.Send.Method] = MethodTypes{ParamType: mthdMap[v.Send.Method].Param,
+				ReturnType:    mthdMap[v.Send.Method].Rtrn,
+				CodeGenerated: false}
 			tc.HasFuncs = true
 		}
 
@@ -623,13 +618,13 @@
 		test.Send.ParamType = mthdMap[test.Send.Method].Param
 		test.Send.Expect = v.Send.Expect
 		test.Send.ExpectType = mthdMap[test.Send.Method].Rtrn
-		for _,v1 := range v.Send.MetaData {
-			test.Send.MetaData = append(test.Send.MetaData,v1)
+		for _, v1 := range v.Send.MetaData {
+			test.Send.MetaData = append(test.Send.MetaData, v1)
 		}
-		for _,v1 := range v.Send.ExpectMeta {
-			test.Send.ExpectMeta = append(test.Send.ExpectMeta,v1)
+		for _, v1 := range v.Send.ExpectMeta {
+			test.Send.ExpectMeta = append(test.Send.ExpectMeta, v1)
 		}
-		for _,v1 := range v.Servers {
+		for _, v1 := range v.Servers {
 			var srvr Server
 			if serverExists(v1.Name, ts) == false {
 				log.Errorf("Server '%s' is not defined!!", v1.Name)
@@ -647,24 +642,24 @@
 			tc.ProtoImports = fixupProtoImports(tc.ProtoImports, pkgs)
 			tc.Imports = fixupImports(tc.Imports, pkgs)
 			//log.Infof("The packages needed are: %v", pkgs)
-			if f,err := os.Create(suiteDir+"/runTests"+strconv.Itoa(tc.FileNum)+".go"); err == nil {
-				if err := t.ExecuteTemplate(f, "runTests.go", tc); err != nil {
-						log.Errorf("Unable to execute template for runTests.go: %v", err)
+			if f, err := os.Create(suiteDir + "/runTests" + strconv.Itoa(tc.FileNum) + ".go"); err == nil {
+				if err := t.ExecuteTemplate(f, "runTests.go.tmpl", tc); err != nil {
+					log.Errorf("Unable to execute template for runTests.go: %v", err)
 				}
 				f.Close()
 			} else {
 				log.Errorf("Couldn't create file %s : %v",
-						suiteDir+"/runTests"+strconv.Itoa(tc.FileNum)+".go", err)
+					suiteDir+"/runTests"+strconv.Itoa(tc.FileNum)+".go", err)
 			}
 			tc.FileNum++
 			//tc.NextFile++
 			maxCt = MAX_CT
 			// Mark the functions as generated.
 			tc.Tests = []TestCase{}
-			for k,v := range tc.Funcs {
-				tc.Funcs[k] = MethodTypes{ParamType:v.ParamType,
-										 ReturnType:v.ReturnType,
-										 CodeGenerated:true}
+			for k, v := range tc.Funcs {
+				tc.Funcs[k] = MethodTypes{ParamType: v.ParamType,
+					ReturnType:    v.ReturnType,
+					CodeGenerated: true}
 			}
 			tc.HasFuncs = false
 			tc.Offset += MAX_CT
@@ -679,18 +674,18 @@
 	tc.ProtoImports = fixupProtoImports(tc.ProtoImports, pkgs)
 	tc.Imports = fixupImports(tc.Imports, pkgs)
 	//log.Infof("The packages needed are: %v", pkgs)
-	if f,err := os.Create(suiteDir+"/runTests"+strconv.Itoa(tc.FileNum)+".go"); err == nil {
-		if err := t.ExecuteTemplate(f, "runTests.go", tc); err != nil {
-				log.Errorf("Unable to execute template for runTests.go: %v", err)
+	if f, err := os.Create(suiteDir + "/runTests" + strconv.Itoa(tc.FileNum) + ".go"); err == nil {
+		if err := t.ExecuteTemplate(f, "runTests.go.tmpl", tc); err != nil {
+			log.Errorf("Unable to execute template for runTests.go: %v", err)
 		}
 		f.Close()
 	} else {
 		log.Errorf("Couldn't create file %s : %v",
-				suiteDir+"/runTests"+strconv.Itoa(tc.FileNum)+".go", err)
+			suiteDir+"/runTests"+strconv.Itoa(tc.FileNum)+".go", err)
 	}
 
 	//if f,err := os.Create(suiteDir+"/runTests.go"); err == nil {
-	//	if err := t.ExecuteTemplate(f, "runTests.go", tc); err != nil {
+	//	if err := t.ExecuteTemplate(f, "runTests.go.tmpl", tc); err != nil {
 	//			log.Errorf("Unable to execute template for runTests.go: %v", err)
 	//	}
 	//	f.Close()
@@ -708,21 +703,21 @@
 		return err
 	}
 
-	for k,v := range conf.Suites {
-	    var suiteDir string = srcDir+"/"+v
+	for k, v := range conf.Suites {
+		var suiteDir string = srcDir + "/" + v
 		log.Debugf("Suite[%d] - %s", k, v)
 		ts := &TestSuite{}
 		ts.loadSuite(v)
 		log.Debugf("Suite %s: %v", v, ts)
 		log.Infof("Processing test suite %s", v)
 
-		t := template.Must(template.New("").ParseFiles("../templates/server.go",
-														"../templates/serverInit.go",
-														"../templates/client.go",
-														"../templates/clientInit.go",
-														"../templates/runTests.go",
-														"../templates/stats.go",
-														"../templates/main.go"))
+		t := template.Must(template.New("").ParseFiles("../templates/server.go.tmpl",
+			"../templates/serverInit.go.tmpl",
+			"../templates/client.go.tmpl",
+			"../templates/clientInit.go.tmpl",
+			"../templates/runTests.go.tmpl",
+			"../templates/stats.go.tmpl",
+			"../templates/main.go.tmpl"))
 		// Create a directory for he source code for this test suite
 		if err := os.Mkdir(suiteDir, 0777); err != nil {
 			log.Errorf("Unable to create directory '%s':%v\n", v, err)
@@ -746,9 +741,9 @@
 
 		// Finally generate the main file
 		log.Info("Generating main.go")
-		if f,err := os.Create(suiteDir+"/main.go"); err == nil {
-			if err := t.ExecuteTemplate(f, "main.go", ts.Env); err != nil {
-					log.Errorf("Unable to execute template for main.go: %v", err)
+		if f, err := os.Create(suiteDir + "/main.go"); err == nil {
+			if err := t.ExecuteTemplate(f, "main.go.tmpl", ts.Env); err != nil {
+				log.Errorf("Unable to execute template for main.go: %v", err)
 			}
 			f.Close()
 		} else {
@@ -756,19 +751,18 @@
 		}
 
 		log.Infof("Copying over common modules")
-		if f,err := os.Create(suiteDir+"/stats.go"); err == nil {
-			if err := t.ExecuteTemplate(f, "stats.go", ts.Env); err != nil {
-					log.Errorf("Unable to execute template for stats.go: %v", err)
+		if f, err := os.Create(suiteDir + "/stats.go"); err == nil {
+			if err := t.ExecuteTemplate(f, "stats.go.tmpl", ts.Env); err != nil {
+				log.Errorf("Unable to execute template for stats.go: %v", err)
 			}
 			f.Close()
 		} else {
 			log.Errorf("Couldn't create file %s : %v", suiteDir+"/stats.go", err)
 		}
 
-
 		log.Infof("Compiling test suite: %s in directory %s", v, suiteDir)
 		if err := os.Chdir(suiteDir); err != nil {
-			log.Errorf("Could not change to directory '%s':%v",suiteDir, err)
+			log.Errorf("Could not change to directory '%s':%v", suiteDir, err)
 		}
 		cmd := exec.Command("go", "build", "-o", outDir+"/"+v+".e")
 		cmd.Stdin = os.Stdin
@@ -778,7 +772,7 @@
 			log.Errorf("Error running the compile command:%v", err)
 		}
 		if err := os.Chdir("../../suites"); err != nil {
-			log.Errorf("Could not change to directory '%s':%v","../../suites", err)
+			log.Errorf("Could not change to directory '%s':%v", "../../suites", err)
 		}
 	}
 	return nil
@@ -791,19 +785,19 @@
 		log.Errorf("Unable to create directory 'driver':%v\n", err)
 		return err
 	}
-	t := template.Must(template.New("").ParseFiles("../templates/runAll.go",
-					"../templates/stats.go"))
-	if f,err := os.Create(srcDir+"/runAll.go"); err == nil {
-		if err := t.ExecuteTemplate(f, "runAll.go", conf.Suites); err != nil {
-				log.Errorf("Unable to execute template for runAll.go: %v", err)
+	t := template.Must(template.New("").ParseFiles("../templates/runAll.go.tmpl",
+		"../templates/stats.go.tmpl"))
+	if f, err := os.Create(srcDir + "/runAll.go"); err == nil {
+		if err := t.ExecuteTemplate(f, "runAll.go.tmpl", conf.Suites); err != nil {
+			log.Errorf("Unable to execute template for runAll.go: %v", err)
 		}
 		f.Close()
 	} else {
 		log.Errorf("Couldn't create file %s : %v", srcDir+"/runAll.go", err)
 	}
-	if f,err := os.Create(srcDir+"/stats.go"); err == nil {
-		if err := t.ExecuteTemplate(f, "stats.go", conf.Suites); err != nil {
-				log.Errorf("Unable to execute template for stats.go: %v", err)
+	if f, err := os.Create(srcDir + "/stats.go"); err == nil {
+		if err := t.ExecuteTemplate(f, "stats.go.tmpl", conf.Suites); err != nil {
+			log.Errorf("Unable to execute template for stats.go: %v", err)
 		}
 		f.Close()
 	} else {
@@ -823,16 +817,15 @@
 		log.Errorf("Error running the compile command:%v", err)
 	}
 	if err := os.Chdir("../../suites"); err != nil {
-		log.Errorf("Could not change to directory 'driver':%v",err)
+		log.Errorf("Could not change to directory 'driver':%v", err)
 	}
 
 	return nil
 }
 
-
 func main() {
 
-	conf,err := parseCmd()
+	conf, err := parseCmd()
 	if err != nil {
 		fmt.Printf("Error: %v\n", err)
 		return
@@ -854,4 +847,3 @@
 	generateTestDriver(conf, "../tests/driver", "/src/tests")
 	return
 }
-