@@ -200,13 +200,20 @@ def test_executeJob_wholeNode4(createAndDelete):
200200
201201
202202@pytest .mark .slow
203- def test_executeJob_wholeNode8 (createAndDelete ):
203+ @pytest .mark .parametrize (
204+ "ce_parameters" ,
205+ [
206+ ({"NumberOfProcessors" : 8 }),
207+ ({"NumberOfProcessors" : 8 , "MaxRAM" : 32000 }),
208+ ({"WholeNode" : True , "NumberOfProcessors" : 8 , "MaxRAM" : 32000 }),
209+ ],
210+ )
211+ def test_executeJob_wholeNode8 (createAndDelete , ce_parameters ):
204212 time .sleep (0.5 )
205213 taskIDs = {}
206214
207- ceParameters = {"WholeNode" : True , "NumberOfProcessors" : 8 , "MaxRAM" : 32000 }
208215 ce = PoolComputingElement ("TestPoolCE" )
209- ce .setParameters (ceParameters )
216+ ce .setParameters (ce_parameters )
210217
211218 jobParams = {"mpTag" : True , "numberOfProcessors" : 2 , "maxNumberOfProcessors" : 2 }
212219 result = ce .submitJob ("testPoolCEJob_2.py" , None , ** jobParams )
@@ -217,6 +224,8 @@ def test_executeJob_wholeNode8(createAndDelete):
217224
218225 result = ce .getCEStatus ()
219226 assert result ["UsedProcessors" ] == 2
227+ assert result ["UsedRAM" ] == 0
228+ assert result ["AvailableRAM" ] == ce_parameters .get ("MaxRAM" , 0 )
220229
221230 jobParams = {"mpTag" : True , "numberOfProcessors" : 1 , "maxNumberOfProcessors" : 3 }
222231 result = ce .submitJob ("testPoolCEJob_3.py" , None , ** jobParams )
@@ -228,7 +237,7 @@ def test_executeJob_wholeNode8(createAndDelete):
228237 result = ce .getCEStatus ()
229238 assert result ["UsedProcessors" ] == 5
230239 assert result ["UsedRAM" ] == 0
231- assert result ["AvailableRAM" ] == 32000
240+ assert result ["AvailableRAM" ] == ce_parameters . get ( "MaxRAM" , 0 )
232241
233242 jobParams = {"numberOfProcessors" : 2 , "MinRAM" : 4000 , "MaxRAM" : 8000 } # This is same as asking for SP
234243 result = ce .submitJob ("testPoolCEJob_4.py" , None , ** jobParams )
@@ -240,7 +249,9 @@ def test_executeJob_wholeNode8(createAndDelete):
240249 result = ce .getCEStatus ()
241250 assert result ["UsedProcessors" ] == 6
242251 assert result ["UsedRAM" ] == 8000
243- assert result ["AvailableRAM" ] == 24000
252+ assert result ["AvailableRAM" ] == (
253+ ce_parameters .get ("MaxRAM" ) - result ["UsedRAM" ] if ce_parameters .get ("MaxRAM" ) else 0
254+ )
244255
245256 jobParams = {"MinRAM" : 8000 , "MaxRAM" : 8000 } # This is same as asking for SP
246257 result = ce .submitJob ("testPoolCEJob_5.py" , None , ** jobParams )
@@ -252,19 +263,24 @@ def test_executeJob_wholeNode8(createAndDelete):
252263 result = ce .getCEStatus ()
253264 assert result ["UsedProcessors" ] == 7
254265 assert result ["UsedRAM" ] == 16000
255- assert result ["AvailableRAM" ] == 16000
266+ assert result ["AvailableRAM" ] == (
267+ ce_parameters .get ("MaxRAM" ) - result ["UsedRAM" ] if ce_parameters .get ("MaxRAM" ) else 0
268+ )
256269
257- jobParams = {"MaxRAM" : 24000 } # This will fail
270+ jobParams = {"MaxRAM" : 24000 } # This will fail for the case when the ce have set a RAM
258271 result = ce .submitJob ("testPoolCEJob_6.py" , None , ** jobParams )
259272 assert result ["OK" ] is True
260273 taskID = result ["Value" ]
261274 assert taskID == 4
262- taskIDs [taskID ] = False
275+ if ce_parameters .get ("MaxRAM" ):
276+ assert ce .taskResults [taskID ]["OK" ] is False
263277
264278 result = ce .getCEStatus ()
265- assert result ["UsedProcessors" ] == 7
266- assert result ["UsedRAM" ] == 16000
267- assert result ["AvailableRAM" ] == 16000
279+ assert result ["UsedProcessors" ] == 7 if ce_parameters .get ("MaxRAM" ) else 8
280+ assert result ["UsedRAM" ] == 16000 if ce_parameters .get ("MaxRAM" ) else 40000
281+ assert result ["AvailableRAM" ] == (
282+ ce_parameters .get ("MaxRAM" ) - result ["UsedRAM" ] if ce_parameters .get ("MaxRAM" ) else 0
283+ )
268284
269285 # now trying again would fail
270286 jobParams = {"mpTag" : True , "numberOfProcessors" : 3 }
0 commit comments