veyron/tools: Use a dummy subprocess definition to get rid of two
more "TestHelperProcess"es.

Change-Id: Id867e105db99224b6360d1c253140d1fe772fbc4
diff --git a/tools/naming/simulator/simulator_v23_test.go b/tools/naming/simulator/simulator_v23_test.go
index 71b762b..51fb878 100644
--- a/tools/naming/simulator/simulator_v23_test.go
+++ b/tools/naming/simulator/simulator_v23_test.go
@@ -5,17 +5,21 @@
 import (
 	"bytes"
 	"fmt"
+	"io"
 	"io/ioutil"
 	"os"
 	"regexp"
 	"testing"
 
-	"v.io/core/veyron/lib/modules"
 	"v.io/core/veyron/lib/testutil/v23tests"
 )
 
-func TestHelperProcess(t *testing.T) {
-	modules.DispatchInTest()
+//go:generate v23 test generate
+
+// HACK: This is a hack to force v23 test generate to generate modules.Dispatch in TestMain.
+// TODO(suharshs,cnicolaou): Find a way to get rid of this dummy subprocesses.
+func dummy(stdin io.Reader, stdout, stderr io.Writer, env map[string]string, args ...string) error {
+	return nil
 }
 
 func V23TestSimulator(t *v23tests.T) {
diff --git a/tools/naming/simulator/v23_test.go b/tools/naming/simulator/v23_test.go
index 043c638..ea0e064 100644
--- a/tools/naming/simulator/v23_test.go
+++ b/tools/naming/simulator/v23_test.go
@@ -2,14 +2,28 @@
 // DO NOT UPDATE MANUALLY
 package main_test
 
+import "fmt"
 import "testing"
 import "os"
 
+import "v.io/core/veyron/lib/modules"
 import "v.io/core/veyron/lib/testutil"
 import "v.io/core/veyron/lib/testutil/v23tests"
 
+func init() {
+	modules.RegisterChild("dummy", `HACK: This is a hack to force v23 test generate to generate modules.Dispatch in TestMain.
+TODO(suharshs,cnicolaou): Find a way to get rid of this dummy subprocesses.`, dummy)
+}
+
 func TestMain(m *testing.M) {
 	testutil.Init()
+	if modules.IsModulesProcess() {
+		if err := modules.Dispatch(); err != nil {
+			fmt.Fprintf(os.Stderr, "modules.Dispatch failed: %v\n", err)
+			os.Exit(1)
+		}
+		return
+	}
 	cleanup := v23tests.UseSharedBinDir()
 	r := m.Run()
 	cleanup()
diff --git a/tools/principal/principal_v23_test.go b/tools/principal/principal_v23_test.go
index 64687a0..dc57e48 100644
--- a/tools/principal/principal_v23_test.go
+++ b/tools/principal/principal_v23_test.go
@@ -2,21 +2,23 @@
 
 import (
 	"bytes"
+	"io"
 	"io/ioutil"
 	"os"
 	"path/filepath"
 	"regexp"
 	"strings"
 	"syscall"
-	"testing"
 
-	"v.io/core/veyron/lib/modules"
 	"v.io/core/veyron/lib/testutil/v23tests"
 )
 
 //go:generate v23 test generate
-func TestHelperProcess(t *testing.T) {
-	modules.DispatchInTest()
+
+// HACK: This is a hack to force v23 test generate to generate modules.Dispatch in TestMain.
+// TODO(suharshs,cnicolaou): Find a way to get rid of this dummy subprocesses.
+func dummy(stdin io.Reader, stdout, stderr io.Writer, env map[string]string, args ...string) error {
+	return nil
 }
 
 // redirect redirects the stdout of the given invocation to the file at the
diff --git a/tools/principal/v23_test.go b/tools/principal/v23_test.go
index 11957be..42fb93f 100644
--- a/tools/principal/v23_test.go
+++ b/tools/principal/v23_test.go
@@ -2,14 +2,28 @@
 // DO NOT UPDATE MANUALLY
 package main_test
 
+import "fmt"
 import "testing"
 import "os"
 
+import "v.io/core/veyron/lib/modules"
 import "v.io/core/veyron/lib/testutil"
 import "v.io/core/veyron/lib/testutil/v23tests"
 
+func init() {
+	modules.RegisterChild("dummy", `HACK: This is a hack to force v23 test generate to generate modules.Dispatch in TestMain.
+TODO(suharshs,cnicolaou): Find a way to get rid of this dummy subprocesses.`, dummy)
+}
+
 func TestMain(m *testing.M) {
 	testutil.Init()
+	if modules.IsModulesProcess() {
+		if err := modules.Dispatch(); err != nil {
+			fmt.Fprintf(os.Stderr, "modules.Dispatch failed: %v\n", err)
+			os.Exit(1)
+		}
+		return
+	}
 	cleanup := v23tests.UseSharedBinDir()
 	r := m.Run()
 	cleanup()