public MFTestResults WeakRef1_Test()
        {
            /// <summary>
            ///  1. Create an object with strong ref
            ///  2. Create a short weak ref to the onject
            ///  3. Allow for GC
            ///  4. Verify & Remove Strong reference
            ///  5. Allow for GC
            ///  6. If weak ref surivived verify its data
            /// </summary>
            ///
            bool testResult = true;
            Log.Comment("Create an object with strong ref");
            WeakRefClass WRC1 = new WeakRefClass();

            Log.Comment("Create a short weak ref to the onject");
            WeakReference wr = new WeakReference(WRC1);
            wr.Target = WRC1;

            Log.Comment("Allow for GC");
            SPOT.Debug.GC(true);
            int sleepTime = 1000;
            int slept = 0;
            while (!hasFinalized1 && slept < sleepTime)
            {
                System.Threading.Thread.Sleep(10);
                slept += 10;
            }
            Log.Comment("GC took " + slept);

            testResult &= (!hasFinalized1);

            Log.Comment("Verify & Remove Strong reference");
            testResult &= (((WeakRefClass)wr.Target).data == 5);
            WRC1 = null;
            if (WRC1 == null)
            {
                Log.Comment("After setting WRC1 to null: WRC1 is null.");
            }
            else
            {
                testResult = false;
            }

            Log.Comment("Allow for GC");
            SPOT.Debug.GC(true);
            sleepTime = 1000;
            slept = 0;
            while (!hasFinalized1 && slept < sleepTime)
            {
                System.Threading.Thread.Sleep(10);
                slept += 10;
            }
            Log.Comment("GC took " + slept);
            testResult &= (hasFinalized1);
            testResult &= (WRC1 == null);

            if (wr.IsAlive)
            {
                testResult &= (((WeakRefClass)wr.Target).data == 5);
                Log.Comment("Weak Reference survived.");
            }
            else 
            {
                Log.Comment("Weak Reference has been collected");
            }
            return (testResult ? MFTestResults.Pass : MFTestResults.Fail);
        }
        public MFTestResults WeakRef1_Test()
        {
            /// <summary>
            ///  1. Create an object with strong ref
            ///  2. Create a short weak ref to the onject
            ///  3. Allow for GC
            ///  4. Verify & Remove Strong reference
            ///  5. Allow for GC
            ///  6. If weak ref surivived verify its data
            /// </summary>
            ///
            bool testResult = true;

            Log.Comment("Create an object with strong ref");
            WeakRefClass WRC1 = new WeakRefClass();

            Log.Comment("Create a short weak ref to the onject");
            WeakReference wr = new WeakReference(WRC1);

            wr.Target = WRC1;

            Log.Comment("Allow for GC");
            SPOT.Debug.GC(true);
            int sleepTime = 1000;
            int slept     = 0;

            while (!hasFinalized1 && slept < sleepTime)
            {
                System.Threading.Thread.Sleep(10);
                slept += 10;
            }
            Log.Comment("GC took " + slept);

            testResult &= (!hasFinalized1);

            Log.Comment("Verify & Remove Strong reference");
            testResult &= (((WeakRefClass)wr.Target).data == 5);
            WRC1        = null;
            if (WRC1 == null)
            {
                Log.Comment("After setting WRC1 to null: WRC1 is null.");
            }
            else
            {
                testResult = false;
            }

            Log.Comment("Allow for GC");
            SPOT.Debug.GC(true);
            sleepTime = 1000;
            slept     = 0;
            while (!hasFinalized1 && slept < sleepTime)
            {
                System.Threading.Thread.Sleep(10);
                slept += 10;
            }
            Log.Comment("GC took " + slept);
            testResult &= (hasFinalized1);
            testResult &= (WRC1 == null);

            if (wr.IsAlive)
            {
                testResult &= (((WeakRefClass)wr.Target).data == 5);
                Log.Comment("Weak Reference survived.");
            }
            else
            {
                Log.Comment("Weak Reference has been collected");
            }
            return(testResult ? MFTestResults.Pass : MFTestResults.Fail);
        }