diff options
author | Yongqin Liu <yongqin.liu@linaro.org> | 2014-12-15 20:15:19 +0800 |
---|---|---|
committer | Milosz Wasilewski <milosz.wasilewski@linaro.org> | 2015-01-14 12:16:07 +0000 |
commit | 2581c5a66a96104cce42831a695848098d578b66 (patch) | |
tree | 644431cd8d57f1a182335f8a5b5ca21b0ccfd6fb /android | |
parent | 8b957cf992813dbda9a4d17b72dde599a7b8f436 (diff) |
add bootchart test to collect the bootchart test data as attachment
Change-Id: Id74a254513466d4b4dbce157de9ab3fa5e76f354
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
Diffstat (limited to 'android')
-rw-r--r-- | android/bootchart.yaml | 24 | ||||
-rwxr-xr-x | android/scripts/bootchart.sh | 98 |
2 files changed, 122 insertions, 0 deletions
diff --git a/android/bootchart.yaml b/android/bootchart.yaml new file mode 100644 index 0000000..a5b16d7 --- /dev/null +++ b/android/bootchart.yaml @@ -0,0 +1,24 @@ +metadata: + name: bootchart + format: "Lava-Test-Shell Test Definition 1.0" + description: "collect the bootchart data and try to analyse" + maintainer: + - yongqin.liu@linaro.org + os: + - android + scope: + - functional + devices: + - juno + +params: + OPERATION: "stop" + BOOTCHART_TIME: "120" + +run: + steps: + - ./android/scripts/bootchart.sh $OPERATION $BOOTCHART_TIME + - lava-test-run-attach /data/local/tmp/bootchart.tgz application/x-gzip + +parse: + pattern: "(?P<test_case_id>\\w+):\\s+(?P<result>(pass|fail))" diff --git a/android/scripts/bootchart.sh b/android/scripts/bootchart.sh new file mode 100755 index 0000000..183dc46 --- /dev/null +++ b/android/scripts/bootchart.sh @@ -0,0 +1,98 @@ +#!/system/bin/sh +# +# script to start and stop bootchart test. +# +# Copyright (C) 2014, Linaro Limited. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. +# +# owner: yongqin.liu@linaro.org +# +############################################################################### + +LOGROOT="/data/bootchart" +start_f="${LOGROOT}/start" +stop_f="${LOGROOT}/stop" +TARBALL="/data/local/tmp/bootchart.tgz" + +start_bootchart(){ + echo "${BOOTCHART_TIME}" > ${start_f} + if [ $? -ne 0 ]; then + echo "start_bootchart: fail" + else + echo "start_bootchart: pass" + fi +} + +stop_bootchart(){ + echo 1 > ${stop_f} + if [ $? -ne 0 ]; then + echo "stop_bootchart: fail" + else + echo "stop_bootchart: pass" + fi + rm ${start_f} + if [ $? -ne 0 ]; then + echo "rm_start_file: fail" + else + echo "rm_start_file: pass" + fi +} + +collect_data(){ + FILES="header proc_stat.log proc_ps.log proc_diskstats.log kernel_pacct" + if [ ! -d "${LOGROOT}" ]; then + echo "There is no ${LOGROOT} directory!" + return + fi + cd ${LOGROOT} + tar -czvf ${TARBALL} ${FILES} + if [ $? -ne 0 ]; then + echo "bootchart_collect_data: fail" + else + echo "bootchart_collect_data: pass" + fi + rm -fr ${FILES} +} + +main(){ + OPERATION="${1}" + if [ "X${OPERATION}" = "X" ]; then + OPERATION="stop" + fi + BOOTCHART_TIME="${2}" + if [ "X${BOOTCHART_TIME}" = "X" ]; then + BOOTCHART_TIME=120 + fi + export BOOTCHART_TIME + + case "X${OPERATION}" in + "Xstart") + start_bootchart + ;; + "Xstop") + stop_bootchart + #wait the file to be sync disk completely + sleep 5 + collect_data + ;; + *) + echo "bootchart: fail" + ;; + esac +} + +main "$@" |