diff options
author | Hakan Lindh <hlindh@google.com> | 2017-08-17 16:56:26 -0700 |
---|---|---|
committer | Hakan Lindh <hlindh@google.com> | 2017-08-18 12:40:15 -0700 |
commit | 96ec31350507b777efc0853cc44f405e22330819 (patch) | |
tree | 38076df1a3824d3acbd78d496067c8a30170df1c | |
parent | 3e045413b7da767b7e803ae12d02a68458548653 (diff) | |
download | contrib-96ec31350507b777efc0853cc44f405e22330819.tar.gz |
Fix for Loopback Stress test nullpointer exception
Plugs a nullpointer exception that occurs if an individual test iteration times out.
Also added check to see if result data is good before printing it to CSV file
Bug: 64715529
Change-Id: I4c5aaecd32b24fca3cb684f1a2b8b1adfcdb3287
Fixes: 64715529
Test: tradefed.sh run google/test/framework/media/audio-loopback-stress --iterations 10 -s 84B0115625000809
-rw-r--r-- | src/com/android/media/tests/AudioLoopbackTestHelper.java | 70 |
1 files changed, 45 insertions, 25 deletions
diff --git a/src/com/android/media/tests/AudioLoopbackTestHelper.java b/src/com/android/media/tests/AudioLoopbackTestHelper.java index c9e058a..83e4a30 100644 --- a/src/com/android/media/tests/AudioLoopbackTestHelper.java +++ b/src/com/android/media/tests/AudioLoopbackTestHelper.java @@ -100,10 +100,10 @@ public class AudioLoopbackTestHelper { private String mFailureReason = null; // Optional - private Float mPeriodConfidence = Float.valueOf(0.0f); - private Float mRms = Float.valueOf(0.0f); - private Float mRmsAverage = Float.valueOf(0.0f); - private Integer mBblockSize = Integer.valueOf(0); + private Float mPeriodConfidence = null; + private Float mRms = null; + private Float mRmsAverage = null; + private Integer mBblockSize = null; public float getLatency() { return mLatencyMs.floatValue(); @@ -113,6 +113,10 @@ public class AudioLoopbackTestHelper { this.mLatencyMs = Float.valueOf(latencyMs); } + public boolean hasLatency() { + return mLatencyMs != null; + } + public float getConfidence() { return mLatencyConfidence.floatValue(); } @@ -121,6 +125,10 @@ public class AudioLoopbackTestHelper { this.mLatencyConfidence = Float.valueOf(latencyConfidence); } + public boolean hasConfidence() { + return mLatencyConfidence != null; + } + public float getPeriodConfidence() { return mPeriodConfidence.floatValue(); } @@ -129,6 +137,10 @@ public class AudioLoopbackTestHelper { this.mPeriodConfidence = Float.valueOf(periodConfidence); } + public boolean hasPeriodConfidence() { + return mPeriodConfidence != null; + } + public float getRMS() { return mRms.floatValue(); } @@ -137,6 +149,10 @@ public class AudioLoopbackTestHelper { this.mRms = Float.valueOf(rms); } + public boolean hasRMS() { + return mRms != null; + } + public float getRMSAverage() { return mRmsAverage.floatValue(); } @@ -145,6 +161,10 @@ public class AudioLoopbackTestHelper { this.mRmsAverage = Float.valueOf(rmsAverage); } + public boolean hasRMSAverage() { + return mRmsAverage != null; + } + public int getAudioLevel() { return mAudioLevel.intValue(); } @@ -153,6 +173,10 @@ public class AudioLoopbackTestHelper { this.mAudioLevel = Integer.valueOf(audioLevel); } + public boolean hasAudioLevel() { + return mAudioLevel != null; + } + public int getBlockSize() { return mBblockSize.intValue(); } @@ -161,6 +185,10 @@ public class AudioLoopbackTestHelper { this.mBblockSize = Integer.valueOf(blockSize); } + public boolean hasBlockSize() { + return mBblockSize != null; + } + public int getIteration() { return mIteration.intValue(); } @@ -215,8 +243,8 @@ public class AudioLoopbackTestHelper { public boolean hasBadResults() { return hasTimedOut() || hasNoTestResults() - || hasNoLatencyResult() - || hasNoLatencyConfidence() + || !hasLatency() + || !hasConfidence() || mImageAnalyzerResult == Result.FAIL; } @@ -228,16 +256,8 @@ public class AudioLoopbackTestHelper { return mLogs.containsKey(log); } - public boolean hasNoLatencyResult() { - return mLatencyMs == null; - } - - public boolean hasNoLatencyConfidence() { - return mLatencyConfidence == null; - } - public boolean hasNoTestResults() { - return hasNoLatencyConfidence() && hasNoLatencyResult(); + return !hasConfidence() && !hasLatency(); } public static Comparator<ResultData> latencyComparator = @@ -294,7 +314,7 @@ public class AudioLoopbackTestHelper { mResultDictionaries.add(data.getIteration(), resultDictionary); mAllResults.add(data); - if (useImageAnalyzer) { + if (useImageAnalyzer && data.hasLogFile(LogFileType.GRAPH)) { // Analyze captured screenshot to see if wave form is within reason final String screenshot = data.getLogFile(LogFileType.GRAPH); final Pair<Result, String> result = AudioLoopbackImageAnalyzer.analyzeImage(screenshot); @@ -529,13 +549,13 @@ public class AudioLoopbackTestHelper { sb.append(buildId).append(SEPARATOR); sb.append(serialNumber).append(SEPARATOR); sb.append(data.getIteration()).append(SEPARATOR); - sb.append(data.getLatency()).append(SEPARATOR); - sb.append(data.getConfidence()).append(SEPARATOR); - sb.append(data.getPeriodConfidence()).append(SEPARATOR); - sb.append(data.getBlockSize()).append(SEPARATOR); - sb.append(data.getAudioLevel()).append(SEPARATOR); - sb.append(data.getRMS()).append(SEPARATOR); - sb.append(data.getRMSAverage()).append(SEPARATOR); + sb.append(data.hasLatency() ? data.getLatency() : "").append(SEPARATOR); + sb.append(data.hasConfidence() ? data.getConfidence() : "").append(SEPARATOR); + sb.append(data.hasPeriodConfidence() ? data.getPeriodConfidence() : "").append(SEPARATOR); + sb.append(data.hasBlockSize() ? data.getBlockSize() : "").append(SEPARATOR); + sb.append(data.hasAudioLevel() ? data.getAudioLevel() : "").append(SEPARATOR); + sb.append(data.hasRMS() ? data.getRMS() : "").append(SEPARATOR); + sb.append(data.hasRMSAverage() ? data.getRMSAverage() : "").append(SEPARATOR); sb.append(data.getImageAnalyzerResult().name()).append(SEPARATOR); sb.append(data.getFailureReason()); @@ -566,13 +586,13 @@ public class AudioLoopbackTestHelper { continue; } - if (data.hasNoLatencyResult()) { + if (!data.hasLatency()) { testWithoutLatencyResultCount++; testNoData++; continue; } - if (data.hasNoLatencyConfidence()) { + if (!data.hasConfidence()) { testWithoutConfidenceResultCount++; testNoData++; continue; |