Hi, All

Here just some thought about the implementation of  black-box test.
If you have any ideas, or something I missed, please give a comment.
Anything will be appreciated.

------------------------------------------------------------
Glue between lava and android
In android there is  a directory /data/blackbox_tesxt/, under it are TODO, TESTING, DONE 3 direcories.
About the entry format,  will use JSON or just key/value pair. but need to have the following two features
1. one item to indicate the command to run
2. other items used for pass information between android test tool and lava job

Black-box test framework on Android
On android, a test framework will check the entries in TODO, and run the command indicated in the entry.
Before the test is start to run, the framework will put the entry to TESTING, and after test finished will put the entry to DONE.
when run the test command, this framework will run the command and pass the entry file as parameter.

The black-box test framework in android mainly do:
1. invoked after boot up and home screen is displayed.
    also charge for prepare the test environment like unlock screen, disable suspend
2. charging for invoking test command and changing the status of the each test

Framework on LAVA
Will have 2 actions
1. install_black-box_test
2. wait_black_test_finish
    will loop to check until there is no entry in TODO and TESTING
    also will check if the test framework is running, if it is not in ps and there are still test to be run, will invoke it to run.
    show the output of the running test
3. collect_test_result
    parse and upload to lava
------------------------------------------------------------

Related BPs
1. lava side: https://blueprints.launchpad.net/lava-dispatcher/+spec/black-box-test-actions
2. android-side: https://blueprints.launchpad.net/linaro-android/+spec/support-blackbox-test

Thanks,
Yongqin Liu