kerneltest/e32test/dma/t_dma.cpp
changeset 11 329ab0095843
parent 9 96e5fb8b040d
child 21 e7d2d738d3c2
equal deleted inserted replaced
10:36bfc973b146 11:329ab0095843
   894 		{
   894 		{
   895 		User::SetCritical(User::ESystemCritical);
   895 		User::SetCritical(User::ESystemCritical);
   896 		User::SetProcessCritical(User::ESystemCritical);
   896 		User::SetProcessCritical(User::ESystemCritical);
   897 		}
   897 		}
   898 
   898 
       
   899 
   899 	TInt r;
   900 	TInt r;
   900 #if defined(__DMASIM__) && defined(__WINS__)
   901 #if defined(__DMASIM__) && defined(__WINS__)
   901 	test.Next(_L("Loading DMA simulator"));
   902 	test.Next(_L("Loading DMA simulator"));
   902 	r = User::LoadLogicalDevice(_L("DMASIM.DLL"));
   903 	r = User::LoadLogicalDevice(_L("DMASIM.DLL"));
   903 	test(r == KErrNone || r == KErrAlreadyExists);
   904 	test(r == KErrNone || r == KErrAlreadyExists);
   904 #endif
   905 #endif
   905 
   906 
   906 	test.Next(_L("Loading test LDD"));
   907 	test.Next(_L("Loading test LDD"));
   907 #ifdef __DMASIM__
   908 #ifdef __DMASIM__
   908 	r = User::LoadLogicalDevice(_L("D_DMASIM"));
   909 	r = User::LoadLogicalDevice(_L("D_DMASIM"));
       
   910 	test(r == KErrNone || r == KErrAlreadyExists);
   909 #else
   911 #else
   910 	r = User::LoadLogicalDevice(_L("D_DMA"));
   912 	//load either the original test ldd, d_dma.ldd,
   911 	if (r == KErrNotFound)
   913 	//or d_dma_compat.ldd - an ldd providing the same interface
   912 		{
   914 	//but linked against the new MHA dma framework
   913 		test.Printf(_L("DMA not supported - test skipped\n"));
   915 	_LIT(KDma, "D_DMA.LDD");
       
   916 	r = User::LoadLogicalDevice(KDma);
       
   917 	const TBool dmaPresent = (r == KErrNone || r == KErrAlreadyExists);
       
   918 
       
   919 	_LIT(KDmaCompat, "D_DMA_COMPAT.LDD");
       
   920 	r = User::LoadLogicalDevice(KDmaCompat);
       
   921 	const TBool dmaCompatPresent = (r == KErrNone || r == KErrAlreadyExists);
       
   922 
       
   923 	if (!(dmaPresent || dmaCompatPresent))
       
   924 		{
       
   925 		test.Printf(_L("DMA test driver not found - test skipped\n"));
   914 		return 0;
   926 		return 0;
   915 		}
   927 		}
       
   928 	else if (dmaPresent && !dmaCompatPresent)
       
   929 		{
       
   930 		test.Printf(_L("Loaded %S\n"), &KDma);
       
   931 		}
       
   932 	else if (!dmaPresent && dmaCompatPresent)
       
   933 		{
       
   934 		test.Printf(_L("Loaded %S\n"), &KDmaCompat);
       
   935 		}
       
   936 	else
       
   937 		{
       
   938 		test.Printf(_L("The ROM contains %S and %S - only one should be present\n"), &KDma, &KDmaCompat);
       
   939 		test(EFalse);
       
   940 		}
   916 #endif
   941 #endif
   917 	test(r == KErrNone || r == KErrAlreadyExists);
       
   918 
   942 
   919 	// Turn off evil lazy dll unloading
   943 	// Turn off evil lazy dll unloading
   920 	RLoader l;
   944 	RLoader l;
   921 	test(l.Connect()==KErrNone);
   945 	test(l.Connect()==KErrNone);
   922 	test(l.CancelLazyDllUnload()==KErrNone);
   946 	test(l.CancelLazyDllUnload()==KErrNone);