Amazing!

I'm reading it...


BR
Botao Sun

On Fri, Apr 13, 2012 at 12:45 AM, Zach Pfeffer <zach.pfef...@linaro.org>wrote:

> Awesome YongQin.
>
> Put this email in a Wiki:
>
> https://wiki.linaro.org/Platform/Android/IntegrateATestIntoLava
>
> On 12 April 2012 05:51, YongQin Liu <yongqin....@linaro.org> wrote:
> > Hi, All
> >
> > LAVA is an automated validation architecture, and it now has a test
> > framework for running android test tools and parsing the test output.
> > Please NOTE that lava-android-test is just used for running the test
> tools,
> > parsing the test output, and formatting the test result.
> >
> > Here I will describe how to write and add a test wrapper script for
> > lava-android-test, and how to integrate the test into LAVA.
> >
> > 1. checkout the lava-android-test to your local machine
> >     bzr branch lp:lava-android-test
> >
> > 2. if the test tools are just command that can be run on android system,
> and
> > the output is well formatted,
> >     then congratulations, you can go directly to step 6.
> >     You don't need to wrapper script again.
> >
> > 3. If the test tools has already been build into the android image or in
> the
> > host image(normal Ubuntu image),
> >     then you won't need to define some scripts for organizing the test
> > tools, you can skip this step,
> >     Otherwise, put the actual test tools in some place, normally they
> are in
> > a sub directory of test_definitions, like the busybox test:
> >     the actual test tool is busybox_test.sh, and it is put in
> > the lava_android_test/test_definitions/busybox directory
> >
> > 4. add a test wrapper script for your test into the test_definitions
> > directory. like busybox.py:
> >     The content of the wrapper script should be something like below:
> >           Normally, you just need to redefine the red and bold part in
> the
> > above.
> >
> >
> ###############################################################################################
> >
> > import os
> >
> > import lava_android_test.testdef
> >
> > test_name = 'test_sample'
> >
> > #linux commands that will be run on the host
> before INSTALL_STEPS_ADB_PRE"
> > INSTALL_STEPS_HOST_PRE = []
> > #adb commands that will be run before install apk file into android
> > INSTALL_STEPS_ADB_PRE = []
> > #APK file path list that will be intalled into android
> > APKS= []
> > #adb commands that will be run before install apk file into android
> > INSTALL_STEPS_ADB_POST = []
> > #linux commands that will be run on the host after INSTALL_STEPS_ADB_POST
> > INSTALL_STEPS_HOST_POST = []
> >
> > #linux commands that will be run on the host before RUN_STEPS_ADB_PRE
> > RUN_STEPS_HOST_PRE = []
> > #adb commands that will be run before install apk file into android
> > RUN_STEPS_ADB_PRE = []
> > #commands that will be run on android
> > ADB_SHELL_STEPS = []
> > #adb commands that will be run before install apk file into android
> > RUN_STEPS_ADB_POST = []
> > #linux commands that will be run on the host after RUN_STEPS_ADB_POST
> > RUN_STEPS_HOST_POST = []
> >
> > #pattern to parse the command output to generate the test result.
> > PATTERN = "^\s*(?P<test_case_id>\w+)=(?P<result>\w+)\s*$"
> >
> > inst =
> >
> lava_android_test.testdef.AndroidTestInstaller(steps_host_pre=INSTALL_STEPS_HOST_PRE,
> >
> >  steps_adb_pre=INSTALL_STEPS_ADB_PRE,
> >
> >  apks=APKS,
> >
> >  steps_adb_post=INSTALL_STEPS_ADB_POST,
> >
> >  steps_host_post=INSTALL_STEPS_HOST_POST)
> >
> > run =
> >
> lava_android_test.testdef.AndroidTestRunner(steps_host_pre=RUN_STEPS_HOST_PRE,
> >
> >   steps_adb_pre=RUN_STEPS_ADB_PRE,
> >
> >   adbshell_steps=ADB_SHELL_STEPS,
> >
> >   steps_adb_post=RUN_STEPS_ADB_POST,
> >
> >   steps_host_post=RUN_STEPS_HOST_POST)
> >
> > parser = lava_android_test.testdef.AndroidTestParser(PATTERN)
> > testobj = lava_android_test.testdef.AndroidTest(testname=test_name,
> >                                     installer=inst,
> >                                     runner=run,
> >                                     parser=parser)
> >
> >
> >
> ###############################################################################################
> >
> > And in the command part, you can use
> >
> > "$(SERIAL)" to represent the device serial number, like:
> > RUN_STEPS_HOST_POST = [ 'python
> > %s/android-0xbenchmark/android_0xbenchmark_wait.py $(SERIAL)' % curdir]
> >
> > and
> >
> > "$(OPTIONS)" to represent the option string passed from command line.
> Like
> > INSTALL_STEPS_HOST_PRE = [ 'echo $(OPTION)'],
> > RUN_STEPS_HOST_PRE = [ 'echo $(OPTION)'],
> >
> > then you can run lava-android-test install -o "install options string"
> > or lava-android-test run -O "run options string"
> >
> >
> >     Note:
> >           Because lava-android-test will be run on lava-lab, and there
> will
> > be multiple devices connected simultaneously,
> >           So we should consider to pass the device serial number for each
> > test tools.
> >           If the test tools is defined
> > for steps_adb_pre/adbshell_steps/steps_adb_post,
> >           then there is no need to pass the device serial
> > number, lava-android-test will do this for you.
> >
> > 5. you can
> >     use "lava-android-test list-tests" to check if the test wrapper
> created
> > can be recognized,
> >     use "lava-android-test install ${test_name}" to install the test,
> >     use "lava-android-test run ${test_name}" to execute the test,
> >     use "lava-android-test show ${result_id}" to show the output
> > the test executed,
> >     use "lava-android-test parse ${result_id}" to to generate the result
> > bundle for the test executed.
> >
> >     And here is a blog about install/test lava-android-test that you can
> > reference:
> >
> >
> http://www.linaro.org/linaro-blog/2011/12/01/local-lava-testing-of-android-ics/
> >
> > 6. When you have done the above steps and verified your test that works
> > well, then you can integrate it in LAVA with the android-build.
> >     Here is a description about that.
> >
> https://wiki.linaro.org/Platform/Android/AndroidBuild-LavaIntegration
> >
> >
> > If you have any questions, please contact me.
> > Also I have copied it to google docs,
> >
> https://docs.google.com/a/linaro.org/document/d/1kVyuFZtnMsganZaszQZhgX3QPOF5KXhKvefCUq4Xh3A/edit
> > you can comment directly there.
> >
> >
> > Thanks,
> > Yongqin Liu
> > ---------------------------------
> > Mail:  yongqin....@linaro.org.
> > IRC Nickname: liuyq
> >
> > _______________________________________________
> > linaro-dev mailing list
> > linaro-dev@lists.linaro.org
> > http://lists.linaro.org/mailman/listinfo/linaro-dev
> >
>
>
>
> --
> Zach Pfeffer
> Android Platform Team Lead, Linaro Platform Teams
> Linaro.org | Open source software for ARM SoCs
> Follow Linaro: http://www.facebook.com/pages/Linaro
> http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog
>
> _______________________________________________
> linaro-dev mailing list
> linaro-dev@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-dev
>
_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to