//export MojoMain func MojoMain(handle C.MojoHandle) C.MojoResult { application.Run(&FortuneServerDelegate{ fortuneFactory: FortuneFactory{ fortune: NewFortuneImpl(), }, }, system.MojoHandle(handle)) return C.MOJO_RESULT_OK }
func TestApplication(t *testing.T) { var apps []*mojoApp.Application_Proxy var responsesSent, appsTerminated sync.WaitGroup // Create and run applications. for i := 0; i < 2; i++ { request, pointer := mojoApp.CreateMessagePipeForApplication() apps = append(apps, mojoApp.NewApplicationProxy(pointer, bindings.GetAsyncWaiter())) // Each app instance provides echo service once when it creates // a connection and once other instance creates a connection. responsesSent.Add(2) appsTerminated.Add(1) delegate := &EchoDelegate{&responsesSent, urls[i]} go func() { application.Run(delegate, request.PassMessagePipe().ReleaseNativeHandle()) appsTerminated.Done() }() } // Provide a shell for each application. for i := 0; i < 2; i++ { shellRequest, shellPointer := shell.CreateMessagePipeForShell() shellStub := shell.NewShellStub(shellRequest, &shellImpl{apps[i^1], urls[i]}, bindings.GetAsyncWaiter()) go func() { if err := shellStub.ServeRequest(); err != nil { panic(err) } shellStub.Close() }() apps[i].Initialize(shellPointer, &[]string{urls[i]}, urls[i]) } // Wait and then close pipes. responsesSent.Wait() for i := 0; i < 2; i++ { apps[i].RequestQuit() } appsTerminated.Wait() for i := 0; i < 2; i++ { apps[i].Close_Proxy() } }
//export MojoMain func MojoMain(handle C.MojoHandle) C.MojoResult { application.Run(&principalServiceDelegate{}, system.MojoHandle(handle)) return C.MOJO_RESULT_OK }
//export MojoMain func MojoMain(handle C.MojoHandle) C.MojoResult { application.Run(&HttpHandlerDelegate{}, system.MojoHandle(handle)) return C.MOJO_RESULT_OK }
//export MojoMain func MojoMain(handle C.MojoHandle) C.MojoResult { application.Run(&V23ProxyTestServerDelegate{}, system.MojoHandle(handle)) return C.MOJO_RESULT_OK }
//export MojoMain func MojoMain(handle C.MojoHandle) C.MojoResult { application.Run(&RemoteEchoClientDelegate{}, system.MojoHandle(handle)) return C.MOJO_RESULT_OK }
//export MojoMain func MojoMain(handle C.MojoHandle) C.MojoResult { application.Run(&delegate{stubs: map[*bindings.Stub]struct{}{}}, system.MojoHandle(handle)) return C.MOJO_RESULT_OK }