You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by William Markito <wm...@pivotal.io> on 2016/06/03 21:23:38 UTC

Framework for testing example shell scripts

Guys,

What do you think about using something like Bats [1] to test shell scripts
that will be available as part of the examples ?

Not sure if we would have any conflicts or problems with their license [2]
but it doesn't seem the case...

Thanks

[1] https://github.com/sstephenson/bats
[2] https://github.com/sstephenson/bats/blob/master/LICENSE

-- 

~/William

Re: Framework for testing example shell scripts

Posted by Dan Smith <ds...@pivotal.io>.
How many different tests do you think we will end up writing for a single
example shell script? Is it enough just to run through the example once? Or
are these shell scripts and examples more complicated than that?

-Dan

On Fri, Jun 3, 2016 at 2:23 PM, William Markito <wm...@pivotal.io> wrote:

> Guys,
>
> What do you think about using something like Bats [1] to test shell scripts
> that will be available as part of the examples ?
>
> Not sure if we would have any conflicts or problems with their license [2]
> but it doesn't seem the case...
>
> Thanks
>
> [1] https://github.com/sstephenson/bats
> [2] https://github.com/sstephenson/bats/blob/master/LICENSE
>
> --
>
> ~/William
>

Re: Framework for testing example shell scripts

Posted by William Markito <wm...@pivotal.io>.
The tests would be very simple, here is an example:

Given a script as below:

#! /bin/bash
set -e

# start a locator
gfsh start locator --name=locator1 --mcast-port=0

# start 2 servers on a random available port
for N in {1..2}
do
 gfsh start server --locators=localhost[10334] --name=server$N
 --server-port=0 --mcast-port=0
done

------------------------------------

The bats script looks like this:

#!/usr/bin/env bats

@test "gfsh is available" {
    command -v gfsh
}
@test "starting geode locator and servers" {
  run ./startAll.sh
  [ $status -eq 0 ]
}

--------------------------------------
With the output:

 ./test.sh
 ✓ gfsh is available
 ✓ starting geode locator and servers

It can also generate a TAP-compliant [1] output and should be fairly easy
to integrate that into any build tool.  It can assert based on output or
status, etc...

I'll say that I have no problem on going the JUnit route with the only
drawback being dealing with system calls (ProcessBuilder or
getRuntime.exec)...  If that's the preferred approach, I'm ok with it.


[1] https://en.wikipedia.org/wiki/Test_Anything_Protocol








On Fri, Jun 3, 2016 at 3:03 PM, Dan Smith <ds...@pivotal.io> wrote:

> Also, how easy would it be to integrate this into our existing gradle
> builds and jenkins output, etc?
>
> It seems like it might be easier to write a few lines of java code to just
> invoke a shell script and assert on the error code and output. Then you
> could just do this within junit tests - where maybe you want to make other
> assertions about the state of the system anyway?
>
> -Dan
>
> On Fri, Jun 3, 2016 at 2:23 PM, William Markito <wm...@pivotal.io>
> wrote:
>
> > Guys,
> >
> > What do you think about using something like Bats [1] to test shell
> scripts
> > that will be available as part of the examples ?
> >
> > Not sure if we would have any conflicts or problems with their license
> [2]
> > but it doesn't seem the case...
> >
> > Thanks
> >
> > [1] https://github.com/sstephenson/bats
> > [2] https://github.com/sstephenson/bats/blob/master/LICENSE
> >
> > --
> >
> > ~/William
> >
>



-- 

~/William

Re: Framework for testing example shell scripts

Posted by Dan Smith <ds...@pivotal.io>.
Also, how easy would it be to integrate this into our existing gradle
builds and jenkins output, etc?

It seems like it might be easier to write a few lines of java code to just
invoke a shell script and assert on the error code and output. Then you
could just do this within junit tests - where maybe you want to make other
assertions about the state of the system anyway?

-Dan

On Fri, Jun 3, 2016 at 2:23 PM, William Markito <wm...@pivotal.io> wrote:

> Guys,
>
> What do you think about using something like Bats [1] to test shell scripts
> that will be available as part of the examples ?
>
> Not sure if we would have any conflicts or problems with their license [2]
> but it doesn't seem the case...
>
> Thanks
>
> [1] https://github.com/sstephenson/bats
> [2] https://github.com/sstephenson/bats/blob/master/LICENSE
>
> --
>
> ~/William
>