2323import java .util .Map ;
2424import java .util .Set ;
2525
26+ import com .cloud .utils .StringUtils ;
2627import org .apache .xmlrpc .XmlRpcException ;
2728import org .junit .Assert ;
2829import org .junit .Before ;
5152import com .xensource .xenapi .SR ;
5253import com .xensource .xenapi .Types .XenAPIException ;
5354
55+ import static com .cloud .hypervisor .xenserver .resource .CitrixResourceBase .PLATFORM_CORES_PER_SOCKET_KEY ;
56+
5457@ RunWith (PowerMockRunner .class )
5558@ PrepareForTest ({Host .class , Script .class , SR .class })
5659public class CitrixResourceBaseTest {
@@ -72,6 +75,8 @@ protected String getPatchFilePath() {
7275
7376 private String hostUuidMock = "hostUuidMock" ;
7477
78+ private static final String platformString = "device-model:qemu-upstream-compat;vga:std;videoram:8;apic:true;viridian:false;timeoffset:0;pae:true;acpi:1;hpet:true;secureboot:false;nx:true" ;
79+
7580 @ Before
7681 public void beforeTest () throws XenAPIException , XmlRpcException {
7782 citrixResourceBase ._host .setUuid (hostUuidMock );
@@ -369,4 +374,32 @@ public void initializeLocalSrTest() throws XenAPIException, XmlRpcException {
369374
370375 Assert .assertEquals (1 , startUpCommandsForLocalStorage .size ());
371376 }
377+
378+ @ Test
379+ public void syncPlatformAndCoresPerSocketSettingsEmptyCoresPerSocket () {
380+ String coresPerSocket = null ;
381+ Map <String , String > platform = Mockito .mock (Map .class );
382+ citrixResourceBase .syncPlatformAndCoresPerSocketSettings (coresPerSocket , platform );
383+ Mockito .verify (platform , Mockito .never ()).put (Mockito .any (), Mockito .any ());
384+ Mockito .verify (platform , Mockito .never ()).remove (Mockito .any ());
385+ }
386+
387+ @ Test
388+ public void syncPlatformAndCoresPerSocketSettingsEmptyCoresPerSocketOnPlatform () {
389+ String coresPerSocket = "2" ;
390+ Map <String , String > platform = StringUtils .stringToMap (platformString );
391+ citrixResourceBase .syncPlatformAndCoresPerSocketSettings (coresPerSocket , platform );
392+ Assert .assertTrue (platform .containsKey (PLATFORM_CORES_PER_SOCKET_KEY ));
393+ Assert .assertEquals (coresPerSocket , platform .get (PLATFORM_CORES_PER_SOCKET_KEY ));
394+ }
395+
396+ @ Test
397+ public void syncPlatformAndCoresPerSocketSettingsUpdateCoresPerSocketOnPlatform () {
398+ String coresPerSocket = "2" ;
399+ String platformStr = platformString + "," + PLATFORM_CORES_PER_SOCKET_KEY + ":3" ;
400+ Map <String , String > platform = StringUtils .stringToMap (platformStr );
401+ citrixResourceBase .syncPlatformAndCoresPerSocketSettings (coresPerSocket , platform );
402+ Assert .assertTrue (platform .containsKey (PLATFORM_CORES_PER_SOCKET_KEY ));
403+ Assert .assertEquals (coresPerSocket , platform .get (PLATFORM_CORES_PER_SOCKET_KEY ));
404+ }
372405}
0 commit comments