blob: 842853caf8557be97b310ae99805ad4945021575 [file] [log] [blame]
Armelle Laine4c9d64a2024-11-20 04:42:35 +00001#!/bin/bash
2set -euo pipefail
3
4function get_cid {
5 local max_cid
6 max_cid=$(/apex/com.android.virt/bin/vm list | awk 'BEGIN { FS="[:,]" } /cid/ { print $2; }' | sort -n | tail -1)
7
8 # return the value trimmed from whitespaces
9 echo "${max_cid}" | xargs
10}
11
12function wait_for_cid {
13 TIMES=${1:-20}
14 X=0
15 local init_cid
16 init_cid=$(get_cid)
17 while [ "$TIMES" -eq 0 ] || [ "$TIMES" -gt "$X" ]
18 do
19 local cid
20 cid=$(get_cid)
21 echo "wait_for_cid: retry $(( X++ )) / $TIMES : init_cid=$init_cid cid=$cid";
22 if [ "$cid" -gt "$init_cid" ]
23 then
24 break
25 else
26 sleep 2
27 fi
28 done
29 setprop trusty.test_vm.vm_cid "$cid"
30}
31
32# This script is expected to be started before the trusty_test_vm is started
33# wait_for_cid gets the max cid and wait for it to be updated as an indication
34# that the trusty_test_vm has properly started.
35# wait_for_cid polls for the CID change at 2 seconds intervals
36# the input argument is the max number of retries (20 by default)
37wait_for_cid "$@"
38
39echo trusty.test_vm.vm_cid="$(getprop trusty.test_vm.vm_cid)"