diff options
Diffstat (limited to 'android/scripts/libc-bench.sh')
-rwxr-xr-x | android/scripts/libc-bench.sh | 60 |
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 "$@" |