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); |