diff -r 04a1b74efd48 -r d32f34975bbf kerneltest/e32test/math/t_vfp.cpp --- a/kerneltest/e32test/math/t_vfp.cpp Mon Feb 01 19:40:00 2010 +0100 +++ b/kerneltest/e32test/math/t_vfp.cpp Mon Feb 01 19:49:38 2010 +0100 @@ -251,6 +251,7 @@ TInt TestBounceCtxThread1(TAny*) { + UserSvr::HalFunction(EHalGroupKernel, EKernelHalLockThreadToCpu, (TAny*)Max(CPUs-1, 0), 0); for(TInt iter=0; iter 1) + { + test.Next(_L("Test SMP Thread Migration")); + TInt inc = 1; + RThread t[8]; + TRequestStatus s[8]; + TInt count; + for (count = 0; count < CPUs + 1; count++) + { + TInt r = t[count].Create(KNullDesC, &TestThreadMigration, 0x1000, NULL, (TAny*)(inc++)); + test(r==KErrNone); + t[count].Logon(s[count]); + } + for (count = 0; count < CPUs + 1; count++) + { + t[count].Resume(); + } + User::After(10*1000*1000); + for (count = 0; count < CPUs + 1; count++) + { + t[count].Kill(0); + } + for (count = 0; count < CPUs + 1; count++) + { + User::WaitForAnyRequest(); + } + for (count = 0; count < CPUs + 1; count++) + { + TInt xt = t[count].ExitType(); + TInt xr = t[count].ExitReason(); + test(xt == EExitKill && xr == KErrNone); + } + for (count = 0; count < CPUs + 1; count++) + { + CLOSE_AND_WAIT(t[count]); + } + } + test.End(); return 0; }