Skip to content

Bayou Binary 1.0.x Release Criteria

Matt Barnett edited this page Aug 11, 2017 · 1 revision

Binary Checks

B.1: Verify that the release binary file name is bayou-1.0.0.zip

Ensure expected file name.

B.2: Verify binary structure

Ensure that top level directory contents are as expected.

Method

$ unzip bayou-1.0.0.zip
$ rm bayou-1.0.0.zip
$ find . -maxdepth 1 -name bayou-1.0.0.jar -o -name example_inputs -o -name install_dependencies_apt.sh -o -name install_dependencies_mac.sh -o -name python -o -name resources -o -name start_bayou.sh -o -name synthesize.sh | wc -l

Assert value is 8.

$ ls | wc -l

Assert value is 8.

B.3: Verify dependency install

Ensure dependency scripts install required packages on both Linux and Mac.

Linux

Method

sudo ./install_dependencies_apt.sh

Assert no error messages displayed.

Mac

sudo ./install_dependencies_mac.sh

Assert no error messages displayed.

B.4: Verify startup

Ensure Bayou can launch as a background process.

Method

$ ./start_bayou.sh &

Assert output concludes with

===================================
            Bayou Ready            
===================================

B.5: Verify default synthesis results

Ensure no-arg synthesize.sh invocation produces non-empty result.

Method

$  ./synthesize.sh

Assert displayed result contains at least one program.

B.6: Verify example_inputs synthesis results

Ensure each example input program ./synthesis invocation produces non-empty result.

Method

$  ./synthesize.sh example_inputs/TestBluetooth.java

Assert displayed result contains at least one program.

$  ./synthesize.sh example_inputs/TestCamera.java

Assert displayed result contains at least one program.

$  ./synthesize.sh example_inputs/TestDialog.java

Assert displayed result contains at least one program.

$  ./synthesize.sh example_inputs/TestIO.java

Assert displayed result contains at least one program.

$  ./synthesize.sh example_inputs/TestSpeech.java

Assert displayed result contains at least one program.

$  ./synthesize.sh example_inputs/TestWifi.java

Assert displayed result contains at least one program.

B.7: Verify synthesize.sh help message

Ensure ./sythnesize.sh --help produces the correct output

Method

$ ./synthesize.sh --help

Assert output is:

usage: synthesize.sh [OPTION]... [FILE]
-help,--help              print this message
-p,--num_programs <arg>   the maximum number of programs to return
-s,--num_samples <arg>    the number of asts to sample from the model

B.8: Verify logs created

Ensure Java and Python processes writing to log files.

Method

$ grep INFO ./logs/ApiSynthesisServer.log 

Assert result is non-empty.

$ grep INFO ./logs/ast_server.log

Assert result is non-empty.

B.8: Verify Bayou shutdown

Ensure Bayou can be stopped.

Method

$ fg
./start_bayou.sh
$ ^C
<output>
$ ps aux | grep python

Assert ast_server Python process not running.

 $ ps aux | grep java

Assert ApiSynthesisServer Java process not running.