Short-circuit assertions in test command

This commit is contained in:
Krzysztof Jurewicz 2017-12-12 21:06:56 +01:00
parent 310beae63c
commit 6633889632
1 changed files with 26 additions and 38 deletions

View File

@ -300,49 +300,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 {