summaryrefslogtreecommitdiff
path: root/android/scripts/libc-bench.sh
diff options
context:
space:
mode:
Diffstat (limited to 'android/scripts/libc-bench.sh')
-rwxr-xr-xandroid/scripts/libc-bench.sh60
1 files changed, 60 insertions, 0 deletions
diff --git a/android/scripts/libc-bench.sh b/android/scripts/libc-bench.sh
new file mode 100755
index 0000000..961a743
--- /dev/null
+++ b/android/scripts/libc-bench.sh
@@ -0,0 +1,60 @@
+#!/system/bin/sh
+
+local_file_path="$0"
+local_file_parent=$(cd $(dirname ${local_file_path}); pwd)
+. ${local_file_parent}/common.sh
+
+test_stringbench(){
+ local cmd=$1 && shift
+ local prefix=$1 && shift
+ if [ -z "${cmd}" ]; then
+ return
+ fi
+ if [ ! -x "${cmd}" ]; then
+ return
+ fi
+ if [ -n "$prefix" ]; then
+ prefix="${prefix}_"
+ fi
+
+ local oldkey=""
+ local newkey=""
+ local value_line=""=
+ for res_line in $(${cmd} |tr -d ' '); do
+ if echo "${res_line}"|grep -q '^b_'; then
+ if [ -n "${oldkey}" ] && [ -n "${value_line}" ]; then
+ local time_value=$(echo ${value_line}|cut -d, -f1|cut -d: -f2)
+ local virt_value=$(echo ${value_line}|cut -d, -f2|cut -d: -f2)
+ local res_value=$(echo ${value_line}|cut -d, -f3|cut -d: -f2)
+ local dirty_value=$(echo ${value_line}|cut -d, -f4|cut -d: -f2)
+ output_test_result "${prefix}${oldkey}_time" "pass" "${time_value}" "seconds"
+ output_test_result "${prefix}${oldkey}_virt" "pass" "${virt_value}" "kB"
+ output_test_result "${prefix}${oldkey}_res" "pass" "${res_value}" "kB"
+ output_test_result "${prefix}${oldkey}_dirty" "pass" "${dirty_value}" "kB"
+ fi
+ newkey=$(echo $res_line|tr -c '[:alnum:]' '_'|tr -s '_' |sed 's/_$//')
+ value_line=""
+ oldkey=${newkey}
+ continue
+ fi
+
+ if echo "${res_line}"|grep -q '^time:'; then
+ value_line="${res_line}"
+ continue
+ fi
+ done
+}
+
+test_func(){
+ stringbench="/system/xbin/libcbench"
+ stringbench64="/system/xbin/libcbench64"
+ test_stringbench "${stringbench}" "32Bit"
+ test_stringbench "${stringbench64}" "64Bit"
+}
+
+main(){
+ var_test_func="test_func"
+ run_test "$@"
+}
+
+main "$@"