Android distribution of pm-qa test assets are in a read-only filesystem folder that causes tests to fail

Bug #1156610 reported by Basil Eljuse
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro PMWG QA
Fix Released
High
sanjay singh rawat

Bug Description

pm-qa test assets are by default distributed in android configuration under /system/xbin/pm-qa

Based on results we obtain by running this suite it is evident that /system/xbin/pm-qa is read-only and this causes a number of test steps to fail during execution and moreover the execution logs of the test runs are lost.

Also there are failures thrown by the scripts when it queries for user id and uses that info in the script
(./cpuidle_02.sh[35]: [: gid=1007(log): unexpected operator/operand)

on an ubuntu shell:
root@localhost:~# id -u
root@localhost:~# 0

on an android shell:
root@android:/root # id -u
uid=0(root) gid=1007(log)

Need to ensure that the scripts do handle this info appropriately

Related branches

Revision history for this message
Basil Eljuse (basil-eljuse) wrote :

An example failure log can be seen below:
cpuidle_01.10/cpu4: checking 'time' exists...
     pass
cpuidle_01.11/cpu4: checking 'usage' exists...
     pass
./cpuidle_02.sh
./cpuidle_02.sh[35]: [: gid=1007(log): unexpected operator/operand
cpuidle_02.0: checking cpuidle program runs successfully (120 secs)...
     jiffies are : 10000 usecs
found 5 cpu(s)
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us

Test duration exceeded
fail
./cpuidle_03.sh
./cpuidle_03.sh[35]: [: gid=1007(log): unexpected operator/operand
./cpuidle_03.sh[55]: [: gid=1007(log): unexpected operator/operand
cpuidle_03.0/cpu0: skipping cpu0...
     skip
[ 515.150257] [sched_delayed] process 3454 (cpuidle_killer) no longer
affine to cpu1
[ 515.157914] CPU1: shutdown
cpuidle_03.0/cpu1: checking cpuidle program runs successfully (120
secs)... jiffies are : 10000 usecs
found 5 cpu(s)
cpu1 is offline, ignoring
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us
Test duration exceeded
fail
[ 640.264465] arm_big_little: CPU 3 initialized
[ 640.327904] CPU2: shutdown
cpuidle_03.0/cpu2: checking cpuidle program runs successfully (120
secs)... jiffies are : 10000 usecs
found 5 cpu(s)
cpu1 is offline, ignoring
cpu2 is offline, ignoring
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us
duration: 120 secs, #sleep: 1200, delay: 100000 us
Test duration exceeded
fail

Amit Kucheria (amitk)
Changed in linaro-power-qa:
assignee: nobody → Hongbo Zhang (hongbo-zhang)
importance: Undecided → High
Amit Kucheria (amitk)
Changed in linaro-power-qa:
assignee: Hongbo Zhang (hongbo-zhang) → sanjay singh rawat (sanjay-rawat)
Fathi Boudra (fboudra)
Changed in linaro-power-qa:
status: New → In Progress
Changed in linaro-power-qa:
status: In Progress → Fix Committed
Revision history for this message
sanjay singh rawat (sanjay-rawat) wrote :

Now the logs will be like this:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
### cpufreq_01:
### test the cpufreq framework is available for frequency
### https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/QA/Scripts#cpufreq_01
###
cpufreq_01.0/cpu0: checking 'scaling_available_frequencies' exists... Ok
cpufreq_01.1/cpu0: checking 'scaling_cur_freq' exists... Ok
cpufreq_01.2/cpu0: checking 'scaling_setspeed' exists... Ok
cpufreq_01.0/cpu1: checking 'scaling_available_frequencies' exists... Ok
cpufreq_01.1/cpu1: checking 'scaling_cur_freq' exists... Ok
cpufreq_01.2/cpu1: checking 'scaling_setspeed' exists... Ok
cpufreq_01.0/cpu2: checking 'scaling_available_frequencies' exists... Ok
cpufreq_01.1/cpu2: checking 'scaling_cur_freq' exists... Ok
cpufreq_01.2/cpu2: checking 'scaling_setspeed' exists... Ok
cpufreq_01.0/cpu3: checking 'scaling_available_frequencies' exists... Ok
cpufreq_01.1/cpu3: checking 'scaling_cur_freq' exists... Ok
cpufreq_01.2/cpu3: checking 'scaling_setspeed' exists... Ok
-------- total = 12
-------- pass = 12

###
### cpuhotplug_01:
### test the sysfs files are present
### https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/QA/Scripts#cpuhotplug_01
###
cpuhotplug_01.0: checking 'online' exists... Ok
cpuhotplug_01.1: checking 'offline' exists... Ok
cpuhotplug_01.2: checking 'possible' exists... Ok
cpuhotplug_01.3: checking 'present' exists... Ok
cpuhotplug_01.0/cpu0: checking 'online' exists... Err
cpuhotplug_01.0/cpu1: checking 'online' exists... Ok
cpuhotplug_01.0/cpu2: checking 'online' exists... Ok
cpuhotplug_01.0/cpu3: checking 'online' exists... Ok
-------- total = 8
-------- pass = 7
-------- fail = 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

- As you noticed, "fail" status case will appear only when there is a failure

Changed in linaro-power-qa:
status: Fix Committed → Fix Released
Revision history for this message
sanjay singh rawat (sanjay-rawat) wrote :

fyi. Dependency on change in lava script(change posted, in merge progress)

file: pm-qa.sh
change: /system/xbin/pm-qa -> /data/benchmark/pm-qa

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.