Browse Source

tests: sunset tmlibs/process.Process

Updates https://github.com/tendermint/tmlibs/issues/81

No longer using tmlibs/process.Process as we deemed
it racy and would incur a maintenance cost yet not
used anywhere else but in these tests and not in actual
code.
pull/1780/head
Emmanuel Odeke 7 years ago
parent
commit
6231652e87
No known key found for this signature in database GPG Key ID: 1CA47A292F89DD40
2 changed files with 28 additions and 24 deletions
  1. +0
    -22
      tests/test_app/app.go
  2. +28
    -2
      tests/test_app/main.go

+ 0
- 22
tests/test_app/app.go View File

@ -4,34 +4,12 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"os" "os"
"time"
abcicli "github.com/tendermint/abci/client" abcicli "github.com/tendermint/abci/client"
"github.com/tendermint/abci/types" "github.com/tendermint/abci/types"
"github.com/tendermint/tmlibs/log" "github.com/tendermint/tmlibs/log"
"github.com/tendermint/tmlibs/process"
) )
func startApp(abciApp string) *process.Process {
// Start the app
//outBuf := NewBufferCloser(nil)
proc, err := process.StartProcess("abci_app",
"",
"bash",
[]string{"-c", fmt.Sprintf("abci-cli %s", abciApp)},
nil,
os.Stdout,
)
if err != nil {
panicf("running abci_app: %v", err)
}
// TODO a better way to handle this?
time.Sleep(time.Second)
return proc
}
func startClient(abciType string) abcicli.Client { func startClient(abciType string) abcicli.Client {
// Start client // Start client
client, err := abcicli.NewClient("tcp://127.0.0.1:46658", abciType, true) client, err := abcicli.NewClient("tcp://127.0.0.1:46658", abciType, true)


+ 28
- 2
tests/test_app/main.go View File

@ -2,7 +2,10 @@ package main
import ( import (
"fmt" "fmt"
"log"
"os" "os"
"os/exec"
"time"
"github.com/tendermint/abci/types" "github.com/tendermint/abci/types"
) )
@ -20,6 +23,19 @@ func main() {
testCounter() testCounter()
} }
func ensureABCIIsUp(subCommand string, n int) error {
var err error
for i := 0; i < n; i++ {
cmd := exec.Command("bash", "-c", "abci-cli", subCommand)
_, err = cmd.CombinedOutput()
if err == nil {
break
}
<-time.After(500 * time.Second)
}
return err
}
func testCounter() { func testCounter() {
abciApp := os.Getenv("ABCI_APP") abciApp := os.Getenv("ABCI_APP")
if abciApp == "" { if abciApp == "" {
@ -27,8 +43,18 @@ func testCounter() {
} }
fmt.Printf("Running %s test with abci=%s\n", abciApp, abciType) fmt.Printf("Running %s test with abci=%s\n", abciApp, abciType)
appProc := startApp(abciApp)
defer appProc.StopProcess(true)
cmd := exec.Command("bash", "-c", fmt.Sprintf("abci-cli %s", abciApp))
cmd.Stdout = os.Stdout
if err := cmd.Start(); err != nil {
log.Fatalf("starting %q err: %v", abciApp, err)
}
defer cmd.Wait()
defer cmd.Process.Kill()
if err := ensureABCIIsUp("echo", 5); err != nil {
log.Fatalf("echo failed: %v", err)
}
client := startClient(abciType) client := startClient(abciType)
defer client.Stop() defer client.Stop()


Loading…
Cancel
Save