|
6 | 6 | from test.support import warnings_helper
|
7 | 7 | from test.support.script_helper import assert_python_ok
|
8 | 8 |
|
| 9 | +import copy |
9 | 10 | import errno
|
10 | 11 | import sys
|
11 | 12 | import signal
|
12 | 13 | import time
|
13 | 14 | import os
|
14 | 15 | import platform
|
| 16 | +import pickle |
15 | 17 | import stat
|
16 | 18 | import tempfile
|
17 | 19 | import unittest
|
@@ -1317,6 +1319,25 @@ def test_get_and_set_scheduler_and_param(self):
|
1317 | 1319 | param = posix.sched_param(sched_priority=-large)
|
1318 | 1320 | self.assertRaises(OverflowError, posix.sched_setparam, 0, param)
|
1319 | 1321 |
|
| 1322 | + @requires_sched |
| 1323 | + def test_sched_param(self): |
| 1324 | + param = posix.sched_param(1) |
| 1325 | + for proto in range(pickle.HIGHEST_PROTOCOL+1): |
| 1326 | + newparam = pickle.loads(pickle.dumps(param, proto)) |
| 1327 | + self.assertEqual(newparam, param) |
| 1328 | + newparam = copy.copy(param) |
| 1329 | + self.assertIsNot(newparam, param) |
| 1330 | + self.assertEqual(newparam, param) |
| 1331 | + newparam = copy.deepcopy(param) |
| 1332 | + self.assertIsNot(newparam, param) |
| 1333 | + self.assertEqual(newparam, param) |
| 1334 | + newparam = copy.replace(param) |
| 1335 | + self.assertIsNot(newparam, param) |
| 1336 | + self.assertEqual(newparam, param) |
| 1337 | + newparam = copy.replace(param, sched_priority=0) |
| 1338 | + self.assertNotEqual(newparam, param) |
| 1339 | + self.assertEqual(newparam.sched_priority, 0) |
| 1340 | + |
1320 | 1341 | @unittest.skipUnless(hasattr(posix, "sched_rr_get_interval"), "no function")
|
1321 | 1342 | def test_sched_rr_get_interval(self):
|
1322 | 1343 | try:
|
|
0 commit comments