[Piglit] [PATCH 10/20] unittests: fix dmesg test that could not work on non-posix platforms

Dylan Baker dylan at pnwbakers.com
Wed Jun 1 23:50:17 UTC 2016


The test would try to initialize a linuxDmesg even on windows, which
obviously wouldn't work, since there is not /dev/kmesg on windows. The
test is a little hacky anyways, and better tested using appveyor for
windows testing. The updated test just tests that the currently platform
returns the right thing.

Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
 unittests/dmesg_tests.py | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/unittests/dmesg_tests.py b/unittests/dmesg_tests.py
index 0b0490d..18fa361 100644
--- a/unittests/dmesg_tests.py
+++ b/unittests/dmesg_tests.py
@@ -29,6 +29,7 @@ from __future__ import (
     absolute_import, division, print_function, unicode_literals
 )
 import re
+import sys
 import warnings
 
 try:
@@ -37,7 +38,6 @@ except ImportError:
     import mock
 
 import nose.tools as nt
-import six
 
 from . import utils
 from framework import dmesg, status, results, exceptions
@@ -280,24 +280,15 @@ def test_dummydmesg_update_result():
     nt.eq_(result.result, mock.sentinel.result)
 
 
- at utils.nose.generator
+ at utils.nose.Skip(sys.platform.startswith('win32') or sys.platform.startswith('linux'),
+                 'Dmesg support unimplemented for platfor {}'.format(sys.platform))
 def test_get_dmesg():
-    """Generate tests for get_dmesg."""
-    tests = [
-        ('linux', dmesg.LinuxDmesg),
-        # There is no dmesg on windows, thus it will always get the dummy
-        ('win32', dmesg.DummyDmesg),
-    ]
-    description = 'dmesg.get_dmesg: returns correct class when platform is {}'
-
-    def test(platform, class_):
-        with mock.patch('framework.dmesg.sys.platform', platform):
-            ret = dmesg.get_dmesg()
-        nt.assert_is_instance(ret, class_)
-
-    for platform, class_ in tests:
-        test.description = description.format(platform)
-        yield test, platform, class_
+    """dmesg.get_dmesg: Returns correct class for platform"""
+    ret = dmesg.get_dmesg()
+    if sys.platform.startswith('win32'):
+        nt.ok_(ret is dmesg.DummyDmesg)
+    elif sys.platform.startswith('linux'):
+        nt.ok_(ret is dmesg.LinuxDmesg)
 
 
 def test_get_dmesg_dummy():
-- 
2.8.3



More information about the Piglit mailing list