mirror of
https://github.com/fluencelabs/tendermint
synced 2025-05-29 14:11:21 +00:00
Merge pull request #160 from KrzysiekJ/test-cmd-short-circuit
Short-circuit assertions in test command
This commit is contained in:
commit
96c816f428
@ -299,49 +299,37 @@ func persistentArgs(line []byte) []string {
|
|||||||
|
|
||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
|
|
||||||
func or(err1 error, err2 error) error {
|
func compose(fs []func() error) error {
|
||||||
if err1 == nil {
|
if len(fs) == 0 {
|
||||||
return err2
|
return nil
|
||||||
} else {
|
} else {
|
||||||
return err1
|
err := fs[0]()
|
||||||
|
if err == nil {
|
||||||
|
return compose(fs[1:])
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func cmdTest(cmd *cobra.Command, args []string) error {
|
func cmdTest(cmd *cobra.Command, args []string) error {
|
||||||
fmt.Println("Running tests")
|
return compose(
|
||||||
|
[]func() error{
|
||||||
err := servertest.InitChain(client)
|
func() error { return servertest.InitChain(client) },
|
||||||
fmt.Println("")
|
func() error { return servertest.SetOption(client, "serial", "on") },
|
||||||
err = or(err, servertest.SetOption(client, "serial", "on"))
|
func() error { return servertest.Commit(client, nil) },
|
||||||
fmt.Println("")
|
func() error { return servertest.DeliverTx(client, []byte("abc"), code.CodeTypeBadNonce, nil) },
|
||||||
err = or(err, servertest.Commit(client, nil))
|
func() error { return servertest.Commit(client, nil) },
|
||||||
fmt.Println("")
|
func() error { return servertest.DeliverTx(client, []byte{0x00}, code.CodeTypeOK, nil) },
|
||||||
err = or(err, servertest.DeliverTx(client, []byte("abc"), code.CodeTypeBadNonce, nil))
|
func() error { return servertest.Commit(client, []byte{0, 0, 0, 0, 0, 0, 0, 1}) },
|
||||||
fmt.Println("")
|
func() error { return servertest.DeliverTx(client, []byte{0x00}, code.CodeTypeBadNonce, nil) },
|
||||||
err = or(err, servertest.Commit(client, nil))
|
func() error { return servertest.DeliverTx(client, []byte{0x01}, code.CodeTypeOK, nil) },
|
||||||
fmt.Println("")
|
func() error { return servertest.DeliverTx(client, []byte{0x00, 0x02}, code.CodeTypeOK, nil) },
|
||||||
err = or(err, servertest.DeliverTx(client, []byte{0x00}, code.CodeTypeOK, nil))
|
func() error { return servertest.DeliverTx(client, []byte{0x00, 0x03}, code.CodeTypeOK, nil) },
|
||||||
fmt.Println("")
|
func() error { return servertest.DeliverTx(client, []byte{0x00, 0x00, 0x04}, code.CodeTypeOK, nil) },
|
||||||
err = or(err, servertest.Commit(client, []byte{0, 0, 0, 0, 0, 0, 0, 1}))
|
func() error { return servertest.DeliverTx(client, []byte{0x00, 0x00, 0x06}, code.CodeTypeBadNonce, nil) },
|
||||||
fmt.Println("")
|
func() error { return servertest.Commit(client, []byte{0, 0, 0, 0, 0, 0, 0, 5})},
|
||||||
err = or(err, servertest.DeliverTx(client, []byte{0x00}, code.CodeTypeBadNonce, nil))
|
})
|
||||||
fmt.Println("")
|
|
||||||
err = or(err, servertest.DeliverTx(client, []byte{0x01}, code.CodeTypeOK, nil))
|
|
||||||
fmt.Println("")
|
|
||||||
err = or(err, servertest.DeliverTx(client, []byte{0x00, 0x02}, code.CodeTypeOK, nil))
|
|
||||||
fmt.Println("")
|
|
||||||
err = or(err, servertest.DeliverTx(client, []byte{0x00, 0x03}, code.CodeTypeOK, nil))
|
|
||||||
fmt.Println("")
|
|
||||||
err = or(err, servertest.DeliverTx(client, []byte{0x00, 0x00, 0x04}, code.CodeTypeOK, nil))
|
|
||||||
fmt.Println("")
|
|
||||||
err = or(err, servertest.DeliverTx(client, []byte{0x00, 0x00, 0x06}, code.CodeTypeBadNonce, nil))
|
|
||||||
fmt.Println("")
|
|
||||||
err = or(err, servertest.Commit(client, []byte{0, 0, 0, 0, 0, 0, 0, 5}))
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("Some checks didn't pass, please inspect stdout to see the exact failures.")
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func cmdBatch(cmd *cobra.Command, args []string) error {
|
func cmdBatch(cmd *cobra.Command, args []string) error {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user