Bugfix: Failed executing command: 'free -s 1 -c 10' 05/30105/3
authorchenjiankun <chenjiankun1@huawei.com>
Thu, 9 Mar 2017 02:54:47 +0000 (02:54 +0000)
committerchenjiankun <chenjiankun1@huawei.com>
Thu, 9 Mar 2017 06:44:31 +0000 (06:44 +0000)
JIRA: YARDSTICK-585

In CI when run tc070, there is a error: Failed executing command: 'free -s 1 -c 10'
Here it is the log:
Traceback (most recent call last):
   File
   "/usr/local/lib/python2.7/dist-packages/yardstick/benchmark/runners/duration.py",
   line 69, in _worker_process
   method(data)
   File
   "/usr/local/lib/python2.7/dist-packages/yardstick/benchmark/scenarios/compute/memload.py",
   line 126, in run
   result.update(self._get_mem_usage())
   File
   "/usr/local/lib/python2.7/dist-packages/yardstick/benchmark/scenarios/compute/memload.py",
   line 116, in _get_mem_usage
   result = self._execute_command(cmd)
   File
   "/usr/local/lib/python2.7/dist-packages/yardstick/benchmark/scenarios/compute/memload.py",
   line 70, in _execute_command
   cmd, stderr)
RuntimeError: ('Failed executing command: ', 'free -s 1 -c 10',u"free: seconds argument `1' failed\n")
And it is a bug of free. the -c option should in front of -s, so change the position will solve
this problem.

Also it has another bug:
'KeyError', there no 'cached' keyword, so I change it to 'buff/cache'.

Change-Id: I0ca16e8d8cc11c6a3b2f364cadbdb3ea367eee53
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
tests/unit/benchmark/scenarios/compute/memload_sample_output.txt
tests/unit/benchmark/scenarios/compute/test_memload.py
yardstick/benchmark/scenarios/compute/memload.py

index c23917f..1793e2f 100644 (file)
@@ -1,5 +1,3 @@
-             total       used       free     shared    buffers     cached
+           total        used        free      shared  buff/cache   available
 Mem:     263753976   76737332  187016644       2844     853528   67252400
--/+ buffers/cache:    8631404  255122572
 Swap:    268029948          0  268029948
-
index 76625ef..ede3309 100644 (file)
@@ -74,18 +74,33 @@ class MEMLoadTestCase(unittest.TestCase):
         output = self._read_file("memload_sample_output.txt")
         mock_ssh.SSH().execute.return_value = (0, output, '')
         result = m._get_mem_usage()
-        expected_result = {"max": {"used": 76737332, "cached": 67252400,
-                                   "free": 187016644, "shared": 2844,
-                                   "total": 263753976, "buffers": 853528},
-                           "average": {"used": 76737332, "cached": 67252400,
-                                       "free": 187016644, "shared": 2844,
-                                       "total": 263753976, "buffers": 853528},
-                           "free": {"memory0": {"used": "76737332",
-                                                "cached": "67252400",
-                                                "free": "187016644",
-                                                "shared": "2844",
-                                                "total": "263753976",
-                                                "buffers": "853528"}}}
+        expected_result = {
+            "max": {
+                'shared': 2844,
+                'buff/cache': 853528,
+                'total': 263753976,
+                'free': 187016644,
+                'used': 76737332
+            },
+            "average": {
+                'shared': 2844,
+                'buff/cache': 853528,
+                'total': 263753976,
+                'free': 187016644,
+                'used': 76737332
+            },
+            "free": {
+                "memory0": {
+                    "used": "76737332",
+                    "buff/cache": "853528",
+                    "free": "187016644",
+                    "shared": "2844",
+                    "total": "263753976",
+                    "available": "67252400"
+                }
+            }
+        }
+
         self.assertEqual(result, expected_result)
 
     def _read_file(self, filename):
@@ -94,3 +109,11 @@ class MEMLoadTestCase(unittest.TestCase):
         with open(output) as f:
             sample_output = f.read()
         return sample_output
+
+
+def main():
+    unittest.main()
+
+
+if __name__ == '__main__':
+    main()
index 35528d4..2ef5a63 100644 (file)
@@ -74,10 +74,10 @@ class MEMLoad(base.Scenario):
         fields = []
         free = {}
         ite = 0
-        average = {'total': 0, 'used': 0, 'free': 0, 'cached': 0, 'shared': 0,
-                   'buffers': 0}
-        maximum = {'total': 0, 'used': 0, 'free': 0, 'cached': 0, 'shared': 0,
-                   'buffers': 0}
+        average = {'total': 0, 'used': 0, 'free': 0, 'buff/cache': 0,
+                   'shared': 0}
+        maximum = {'total': 0, 'used': 0, 'free': 0, 'buff/cache': 0,
+                   'shared': 0}
 
         for row in result.split('\n'):
             line = row.split()
@@ -111,7 +111,7 @@ class MEMLoad(base.Scenario):
         interval = options.get("interval", 1)
         count = options.get("count", 1)
 
-        cmd = "free -s %s -c %s" % (interval, count)
+        cmd = "free -c '%s' -s '%s'" % (count, interval)
 
         result = self._execute_command(cmd)
         filtrated_result = self._filtrate_result(result)