memory_qual: Add new control file for moblab

moblab can't run 10K suspend loops as test will fail because
moblab can't SSH in to the DUT.

Before this we use moblab control file editing feature to manually
change loop count to 2 but this feature is dropped.

This CL fixes that by add new control file to run this test in moblab.

BUG=b:74078789, chromium:823334
TEST=None

Change-Id: I29fef7d8338aa8cf69f4b0f9e91eeda409cc5b78
Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/944254
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
(cherry picked from commit afe70ae426b949a5df9ddedd179159409cceb562)
Reviewed-on: https://chromium-review.googlesource.com/969222
Reviewed-by: Sida Liu <sidal@chromium.org>
Commit-Queue: Sida Liu <sidal@chromium.org>
Tested-by: Sida Liu <sidal@chromium.org>
diff --git a/server/site_tests/sequences/control.memory_qual_moblab b/server/site_tests/sequences/control.memory_qual_moblab
new file mode 100644
index 0000000..56cf1b2
--- /dev/null
+++ b/server/site_tests/sequences/control.memory_qual_moblab
@@ -0,0 +1,69 @@
+# Copyright (c) 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = "puthik"
+NAME = "MemoryQual.moblab"
+ATTRIBUTES = "suite:memory_qual"
+TIME = "LENGTHY"
+TEST_CATEGORY = "Stress"
+TEST_CLASS = "suite"
+TEST_TYPE = "server"
+
+DOC = """
+Sequence for qualification new memory part to AVL.
+"""
+
+HOUR_IN_SECS=60*60
+
+CLIENT_TESTS= [
+    ('platform_MemCheck', {}),
+    ('hardware_RamFio', {
+        'requirements': [('ram_suite', [])]}),
+    ('hardware_MemoryThroughput', {
+        'tag': 'memory_qual', 'test': 'bcopy', 'warmup': 100,
+        'num_iterations': 100, 'parallel': 2,
+        'sizes' : [ 1024, 2048, 4096, 8192,
+                    15360, 16384, 24576,
+                    30720, 32768, 33792,
+                    49152, 65536, 98304,
+                    130048, 131072, 256000,
+                    262144, 393216, 524288,
+                    1048576, 1468006, 1572864,
+                    1966080, 2097152, 2228224,
+                    2621440, 3072000, 3145728,
+                    3276800, 4194304, 8388608,
+                    16777216, 33554432, 67108864]}),
+    ('hardware_MemoryLatency', {
+        'sample_size_kb': [ int(2), int(192), int(1024)]}),
+    ('hardware_Memtester', {
+        'tag' : 'memory_qual', 'loop' : 100}),
+    ('hardware_SAT', {
+        'tag' : 'memory_qual', 'seconds' : 8 * HOUR_IN_SECS}),
+    ('power_MemorySuspend', {
+        'tag' : 'memory_qual', 'num_suspends' : 2}),
+]
+
+SERVER_TESTS= [
+    ('hardware_MemoryIntegrity', {
+        'tag' : 'idle', 'seconds' : HOUR_IN_SECS, 'suspend': False}),
+    ('hardware_MemoryIntegrity', {
+        'tag' : 'suspend', 'seconds' : HOUR_IN_SECS, 'suspend': True}),
+]
+
+def run_client_test(machine):
+    client = hosts.create_host(machine)
+    client_at = autotest.Autotest(client)
+    for test, argv in CLIENT_TESTS:
+        client.reboot()
+        client_at.run_test(test, **argv)
+
+def run_server_test(machine):
+    client = hosts.create_host(machine)
+    for test, argv in SERVER_TESTS:
+        client.reboot()
+        job.run_test(test, client_ip=machine, **argv)
+
+
+job.parallel_on_machines(run_client_test, machines)
+parallel_simple(run_server_test, machines)