@@ -855,7 +855,7 @@ def test_mkfifo_dir_fd(self):
855855
856856 requires_sched_h = unittest .skipUnless (hasattr (posix , 'sched_yield' ),
857857 "don't have scheduling support" )
858- requires_sched_affinity = unittest .skipUnless (hasattr (posix , 'cpu_set ' ),
858+ requires_sched_affinity = unittest .skipUnless (hasattr (posix , 'sched_setaffinity ' ),
859859 "don't have sched affinity support" )
860860
861861 @requires_sched_h
@@ -936,83 +936,28 @@ def test_sched_rr_get_interval(self):
936936 self .assertLess (interval , 1. )
937937
938938 @requires_sched_affinity
939- def test_sched_affinity (self ):
940- mask = posix .sched_getaffinity (0 , 1024 )
941- self .assertGreaterEqual (mask .count (), 1 )
942- self .assertIsInstance (mask , posix .cpu_set )
943- self .assertRaises (OSError , posix .sched_getaffinity , - 1 , 1024 )
944- empty = posix .cpu_set (10 )
945- posix .sched_setaffinity (0 , mask )
946- self .assertRaises (OSError , posix .sched_setaffinity , 0 , empty )
947- self .assertRaises (OSError , posix .sched_setaffinity , - 1 , mask )
948-
949- @requires_sched_affinity
950- def test_cpu_set_basic (self ):
951- s = posix .cpu_set (10 )
952- self .assertEqual (len (s ), 10 )
953- self .assertEqual (s .count (), 0 )
954- s .set (0 )
955- s .set (9 )
956- self .assertTrue (s .isset (0 ))
957- self .assertTrue (s .isset (9 ))
958- self .assertFalse (s .isset (5 ))
959- self .assertEqual (s .count (), 2 )
960- s .clear (0 )
961- self .assertFalse (s .isset (0 ))
962- self .assertEqual (s .count (), 1 )
963- s .zero ()
964- self .assertFalse (s .isset (0 ))
965- self .assertFalse (s .isset (9 ))
966- self .assertEqual (s .count (), 0 )
967- self .assertRaises (ValueError , s .set , - 1 )
968- self .assertRaises (ValueError , s .set , 10 )
969- self .assertRaises (ValueError , s .clear , - 1 )
970- self .assertRaises (ValueError , s .clear , 10 )
971- self .assertRaises (ValueError , s .isset , - 1 )
972- self .assertRaises (ValueError , s .isset , 10 )
973-
974- @requires_sched_affinity
975- def test_cpu_set_cmp (self ):
976- self .assertNotEqual (posix .cpu_set (11 ), posix .cpu_set (12 ))
977- l = posix .cpu_set (10 )
978- r = posix .cpu_set (10 )
979- self .assertEqual (l , r )
980- l .set (1 )
981- self .assertNotEqual (l , r )
982- r .set (1 )
983- self .assertEqual (l , r )
984-
985- @requires_sched_affinity
986- def test_cpu_set_bitwise (self ):
987- l = posix .cpu_set (5 )
988- l .set (0 )
989- l .set (1 )
990- r = posix .cpu_set (5 )
991- r .set (1 )
992- r .set (2 )
993- b = l & r
994- self .assertEqual (b .count (), 1 )
995- self .assertTrue (b .isset (1 ))
996- b = l | r
997- self .assertEqual (b .count (), 3 )
998- self .assertTrue (b .isset (0 ))
999- self .assertTrue (b .isset (1 ))
1000- self .assertTrue (b .isset (2 ))
1001- b = l ^ r
1002- self .assertEqual (b .count (), 2 )
1003- self .assertTrue (b .isset (0 ))
1004- self .assertFalse (b .isset (1 ))
1005- self .assertTrue (b .isset (2 ))
1006- b = l
1007- b |= r
1008- self .assertIs (b , l )
1009- self .assertEqual (l .count (), 3 )
939+ def test_sched_getaffinity (self ):
940+ mask = posix .sched_getaffinity (0 )
941+ self .assertIsInstance (mask , set )
942+ self .assertGreaterEqual (len (mask ), 1 )
943+ self .assertRaises (OSError , posix .sched_getaffinity , - 1 )
944+ for cpu in mask :
945+ self .assertIsInstance (cpu , int )
946+ self .assertGreaterEqual (cpu , 0 )
947+ self .assertLess (cpu , 1 << 32 )
1010948
1011949 @requires_sched_affinity
1012- @support .cpython_only
1013- def test_cpu_set_sizeof (self ):
1014- self .assertGreater (sys .getsizeof (posix .cpu_set (1000 )),
1015- sys .getsizeof (posix .cpu_set (1 )))
950+ def test_sched_setaffinity (self ):
951+ mask = posix .sched_getaffinity (0 )
952+ if len (mask ) > 1 :
953+ # Empty masks are forbidden
954+ mask .pop ()
955+ posix .sched_setaffinity (0 , mask )
956+ self .assertEqual (posix .sched_getaffinity (0 ), mask )
957+ self .assertRaises (OSError , posix .sched_setaffinity , 0 , [])
958+ self .assertRaises (ValueError , posix .sched_setaffinity , 0 , [- 10 ])
959+ self .assertRaises (OverflowError , posix .sched_setaffinity , 0 , [1 << 128 ])
960+ self .assertRaises (OSError , posix .sched_setaffinity , - 1 , mask )
1016961
1017962 def test_rtld_constants (self ):
1018963 # check presence of major RTLD_* constants
0 commit comments