summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorYongqin Liu <yongqin.liu@linaro.org>2014-12-15 20:15:19 +0800
committerMilosz Wasilewski <milosz.wasilewski@linaro.org>2015-01-14 12:16:07 +0000
commit2581c5a66a96104cce42831a695848098d578b66 (patch)
tree644431cd8d57f1a182335f8a5b5ca21b0ccfd6fb /android
parent8b957cf992813dbda9a4d17b72dde599a7b8f436 (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.yaml24
-rwxr-xr-xandroid/scripts/bootchart.sh98
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 "$@"