summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3-psutil/0001-fix-failure-test-cases.patch
blob: 99bfccca3f647d55a4d746b91667fc4322ec720d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
From 8b4e38958ff8bdbb3ece4796bfa2d3b6f7536f71 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Wed, 23 Feb 2022 11:54:40 +0800
Subject: [PATCH] fix failure test cases

The test cases is not robust enough. skip some cases that is
not suitable for all conditions.

* test_io_counters failed when kernel config CONFIG_TASKSTATS
  and CONFIG_TASK_IO_ACCOUNTING are not enable in OE 
* test_setup_script failed since oe don't install setup.py
* test_used failed since oe use git source for free, so the version
  is 3.3.17-dirty
* test_weird_environ failed since gcc not installed
* test_debug failed since it is designed to run when PSUTIL_DEBUG is set
* test_against_findmnt/test_comparisons/test_disk_partitions_mocked/
  test_disk_partitions is not suitable for Linux nfs boot

Upstream-Status: Submitted [https://github.com/giampaolo/psutil/pull/2097]

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 psutil/tests/test_contracts.py | 1 +
 psutil/tests/test_linux.py     | 8 ++++++--
 psutil/tests/test_misc.py      | 4 ++++
 psutil/tests/test_process.py   | 5 +++++
 psutil/tests/test_system.py    | 1 +
 psutil/tests/test_unicode.py   | 4 +++-
 6 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/psutil/tests/test_contracts.py b/psutil/tests/test_contracts.py
index 7401cc1..bf0fca0 100755
--- a/psutil/tests/test_contracts.py
+++ b/psutil/tests/test_contracts.py
@@ -172,6 +172,7 @@ class TestAvailProcessAPIs(PsutilTestCase):
     def test_rlimit(self):
         self.assertEqual(hasattr(psutil.Process, "rlimit"), LINUX or FREEBSD)
 
+    @unittest.skip("broken on OE since kernel config maye not be enabled")
     def test_io_counters(self):
         hasit = hasattr(psutil.Process, "io_counters")
         self.assertEqual(hasit, False if MACOS or SUNOS else True)
diff --git a/psutil/tests/test_linux.py b/psutil/tests/test_linux.py
index 20e28d2..66b6dda 100755
--- a/psutil/tests/test_linux.py
+++ b/psutil/tests/test_linux.py
@@ -196,8 +196,9 @@ def get_free_version_info():
     out = sh(["free", "-V"]).strip()
     if 'UNKNOWN' in out:
         raise unittest.SkipTest("can't determine free version")
-    return tuple(map(int, out.split()[-1].split('.')))
-
+    vlist = out.split()[-1].split('.')
+    vlist[:] = [n.split('-')[0] for n in vlist]
+    return tuple(map(int, vlist))
 
 @contextlib.contextmanager
 def mock_open_content(for_path, content):
@@ -1289,6 +1290,7 @@ class TestRootFsDeviceFinder(PsutilTestCase):
         finder.ask_sys_class_block()
 
     @unittest.skipIf(GITHUB_ACTIONS, "unsupported on GITHUB_ACTIONS")
+    @unittest.skip("Broken for oe")
     def test_comparisons(self):
         finder = RootFsDeviceFinder()
         self.assertIsNotNone(finder.find())
@@ -1311,11 +1313,13 @@ class TestRootFsDeviceFinder(PsutilTestCase):
 
     @unittest.skipIf(not which("findmnt"), "findmnt utility not available")
     @unittest.skipIf(GITHUB_ACTIONS, "unsupported on GITHUB_ACTIONS")
+    @unittest.skip("Broken for oe")
     def test_against_findmnt(self):
         psutil_value = RootFsDeviceFinder().find()
         findmnt_value = sh("findmnt -o SOURCE -rn /")
         self.assertEqual(psutil_value, findmnt_value)
 
+    @unittest.skip("Broken for oe")
     def test_disk_partitions_mocked(self):
         with mock.patch(
                 'psutil._pslinux.cext.disk_partitions',
diff --git a/psutil/tests/test_misc.py b/psutil/tests/test_misc.py
index d946eb6..121004a 100755
--- a/psutil/tests/test_misc.py
+++ b/psutil/tests/test_misc.py
@@ -54,6 +54,8 @@ from psutil.tests import unittest
 # ===================================================================
 
 
+PSUTIL_DEBUG = bool(os.getenv('PSUTIL_DEBUG', 0))
+
 class TestMisc(PsutilTestCase):
 
     def test_process__repr__(self, func=repr):
@@ -368,6 +370,7 @@ class TestMisc(PsutilTestCase):
 
     # XXX: https://github.com/pypa/setuptools/pull/2896
     @unittest.skipIf(APPVEYOR, "temporarily disabled due to setuptools bug")
+    @unittest.skip("OE run this test outof source tree")
     def test_setup_script(self):
         setup_py = os.path.join(ROOT_DIR, 'setup.py')
         if CI_TESTING and not os.path.exists(setup_py):
@@ -401,6 +404,7 @@ class TestMisc(PsutilTestCase):
                 reload_module(psutil)
             self.assertIn("version conflict", str(cm.exception).lower())
 
+    @unittest.skipIf(not PSUTIL_DEBUG, "env PSUTIL_DEBUG not set")
     def test_debug(self):
         if PY3:
             from io import StringIO
diff --git a/psutil/tests/test_process.py b/psutil/tests/test_process.py
index c9059e3..a34ba3d 100755
--- a/psutil/tests/test_process.py
+++ b/psutil/tests/test_process.py
@@ -36,6 +36,7 @@ from psutil._compat import PY3
 from psutil._compat import FileNotFoundError
 from psutil._compat import long
 from psutil._compat import super
+from psutil._compat import which
 from psutil.tests import APPVEYOR
 from psutil.tests import CI_TESTING
 from psutil.tests import GITHUB_ACTIONS
@@ -726,6 +727,7 @@ class TestProcess(PsutilTestCase):
             self.assertEqual(' '.join(p.cmdline()), ' '.join(cmdline))
 
     @unittest.skipIf(PYPY, "broken on PYPY")
+    @unittest.skipIf(not which("gcc"), "gcc not installed")
     def test_long_cmdline(self):
         testfn = self.get_testfn()
         create_exe(testfn)
@@ -740,6 +742,7 @@ class TestProcess(PsutilTestCase):
         assert pyexe.startswith(name), (pyexe, name)
 
     @unittest.skipIf(PYPY, "unreliable on PYPY")
+    @unittest.skipIf(not which("gcc"), "gcc not installed")
     def test_long_name(self):
         testfn = self.get_testfn(suffix="0123456789" * 2)
         create_exe(testfn)
@@ -750,6 +753,7 @@ class TestProcess(PsutilTestCase):
     @unittest.skipIf(SUNOS, "broken on SUNOS")
     @unittest.skipIf(AIX, "broken on AIX")
     @unittest.skipIf(PYPY, "broken on PYPY")
+    @unittest.skipIf(not which("gcc"), "gcc not installed")
     def test_prog_w_funky_name(self):
         # Test that name(), exe() and cmdline() correctly handle programs
         # with funky chars such as spaces and ")", see:
@@ -1408,6 +1412,7 @@ class TestProcess(PsutilTestCase):
 
     @unittest.skipIf(not HAS_ENVIRON, "not supported")
     @unittest.skipIf(not POSIX, "POSIX only")
+    @unittest.skipIf(not which("gcc"), "gcc not installed")
     def test_weird_environ(self):
         # environment variables can contain values without an equals sign
         code = textwrap.dedent("""
diff --git a/psutil/tests/test_system.py b/psutil/tests/test_system.py
index db2cb34..5ee519f 100755
--- a/psutil/tests/test_system.py
+++ b/psutil/tests/test_system.py
@@ -580,6 +580,7 @@ class TestDiskAPIs(PsutilTestCase):
     def test_disk_usage_bytes(self):
         psutil.disk_usage(b'.')
 
+    @unittest.skip("Broken for oe")
     def test_disk_partitions(self):
         def check_ntuple(nt):
             self.assertIsInstance(nt.device, str)
diff --git a/psutil/tests/test_unicode.py b/psutil/tests/test_unicode.py
index e635726..7ba5b0f 100755
--- a/psutil/tests/test_unicode.py
+++ b/psutil/tests/test_unicode.py
@@ -86,6 +86,7 @@ from psutil import POSIX
 from psutil import WINDOWS
 from psutil._compat import PY3
 from psutil._compat import u
+from psutil._compat import which
 from psutil.tests import APPVEYOR
 from psutil.tests import ASCII_FS
 from psutil.tests import CI_TESTING
@@ -156,7 +157,7 @@ def try_unicode(suffix):
 # FS APIs
 # ===================================================================
 
-
+@unittest.skipIf(not which("gcc"), "gcc not installed")
 class BaseUnicodeTest(PsutilTestCase):
     funky_suffix = None
 
@@ -169,6 +170,7 @@ class BaseUnicodeTest(PsutilTestCase):
 @serialrun
 @unittest.skipIf(ASCII_FS, "ASCII fs")
 @unittest.skipIf(PYPY and not PY3, "too much trouble on PYPY2")
+@unittest.skipIf(not which("gcc"), "gcc not installed")
 class TestFSAPIs(BaseUnicodeTest):
     """Test FS APIs with a funky, valid, UTF8 path name."""
 
-- 
2.25.1