tree 2992b99288f7398c3e66700679b0e677b9aedde9
parent 60b56a7ea3d7c689648357e0c5f444c4f17a573d
author Charlie Mooney <charliemooney@chromium.org> 1481580613 -0800
committer chrome-bot <chrome-bot@chromium.org> 1481596470 -0800

Reduce the number of Noise Test Frequencies

Previously the noise test scanned through frequencies from 0-1Mhz at
400Hz step.  This took a very long time, but wasn't a big issue because
the test was automated and could run overnight unattended.  However,
as Allion has taken over the testing and is running it on many many more
devices than before the one-test-per-day restriction has become a
limiting factor on getting devices tested.

After discussing with the HW team, we decided that we could safely
shrink the number of tests dramatically by reducing the range and
resolution of the frequencies tested.  This CL changes the noise test
to scan from 0-500Khz at 500Hz steps, which should reduce the test
time by more than half.  The justification is that most of the noise
that would be detected in the upper half of that range would simply be
harmoics of a scanning frequency in the lower half.  That failure would
have probably been caught in the lower half anyway, so testing for
that high-frequency harmonic is likely redundant.

We'll see how this goes and adjust accordingly if we start missing
noise issues.

BUG=none
TEST=the python list works just great, there were no other functional
changes made.

Change-Id: I61574420d6361780bd3224e237924a9fc9bc5862
Signed-off-by: Charlie Mooney <charliemooney@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/419064
Reviewed-by: Shyh-In Hwang <josephsih@chromium.org>
