Example #1
0
            public static void Load(DataLayer.Test test, UUTTestMode mode)
#endif
            {
                if (test == null)
                {
                    throw new ArgumentNullException("test", "A valid Test must be provided.");
                }
                if ((string.IsNullOrEmpty(test.Name) || manager.activeTests.ContainsKey(test.Name)))
                {
                    throw new ArgumentNullException("Test.Name", "An ActiveTest must have a unique name.");
                }

#if UUT_TEST == false
                manager.activeTests.Add(test.Name, new ActiveTest(test));
#else
                manager.activeTests.Add(test.Name, new ActiveTest(test, mode));
#endif
                manager.activeTests[test.Name].Start(manager.priority++);

                ActiveTest aTest = manager.activeTests[test.Name];
                while ((!aTest.IsInState(aTest.m_StateEnded)) && (!aTest.IsInState(aTest.m_StateLoaded)))
                {
                    System.Threading.Thread.Sleep(1);
                }
            }
Example #2
0
 public ActiveTest(DataLayer.Test test, UUTTestMode mode)
     : base()
 {
     Initialize(test);
     Mode = mode;
 }
Example #3
0
 public ActiveUUT(string uutName, string responseFilePath, DataLayer.Test test, UUTTestMode mode)
     : this(uutName, responseFilePath, null, test, mode)
 {
 }
Example #4
0
        //private string[] responses = { "ESN: " + "\r\n" +
        //                              "GBE_CTLR:     NOT INSTALLED            " + "\r\n" +
        //                              "GBE_LNA:      NOT INSTALLED            " + "\r\n" +
        //                              "GBE:          NOT INSTALLED            " + "\r\n" +
        //                              "GBE CUST ESN: NOT INSTALLED            " + "\r\n" +
        //                              "LMU:          06162200D010082006501DA6 " + "\r\n" +
        //                              "GPS RCVR:     06162200D010082006501DA6 " + "\r\n" +
        //                              "RECEIVER:     06163900B0100820070403C2 " + "\r\n" +
        //                              "BDC:          06164000C11008200704063B " + "\r\n" +
        //                              "PSUPPLY:      06163400G0100820064300C1 " + "\r\n" +
        //                              "CP/DSP:       06164100B1100820064700C2 " + "\r\n" +
        //                              "DCARD:        06160301B010082006440005 " + "\r\n" +
        //                              "EBOARD:       NOT INSTALLED            " + "\r\n" +
        //                              "CUSTESN:      TRULMU5207872AE          " + "\r\n" +
        //                              "TEMPERATURES: recvr 31 bdc 28 power supply 35" + "\r\n" +
        //                              "TPESN:        06630000D010082007050130" + "\r\n" +
        //                              "LMU>\r\n"};

        public ActiveUUT(string uutName, string responseFilePath, string testCollectionName, DataLayer.Test test, UUTTestMode mode)
            : base(test, mode)
        {
            Name             = uutName;
            TestSetName      = testCollectionName;
            ResponseFilePath = responseFilePath;

            qf4net.QF.Instance.Subscribe(this, (int)QFSignal.TestStep);
            qf4net.QF.Instance.Subscribe(this, (int)QFSignal.TestResult);
        }
Example #5
0
            public static void Load(string uutName, string responseFilePath, DataLayer.Test test, UUTTestMode mode)
            {
                if (test == null)
                {
                    throw new ArgumentNullException("test", "A valid Test must be provided.");
                }
                if ((string.IsNullOrEmpty(uutName) || manager.activeUUTs.ContainsKey(uutName)))
                {
                    throw new ArgumentNullException("Test.Name", "An ActiveUUT must have a unique name.");
                }

                manager.activeUUTs.Add(uutName, new ActiveUUT(uutName, responseFilePath, test, mode));
                manager.activeUUTs[uutName].Start(manager.priority++);

                ActiveUUT aUUT = manager.activeUUTs[uutName];

                while ((!aUUT.IsInState(aUUT.m_StateEnded)) && (!aUUT.IsInState(aUUT.m_StateLoaded)))
                {
                    System.Threading.Thread.Sleep(1);
                }
            }
Example #6
0
        public static void Run(DataLayer.Test test, IHandlerTarget handlerTarget, string configPath, string binaryPath, UUTTestMode mode)
#endif
        {
            if (test == null)
            {
                throw new ArgumentNullException("test", "A valid test must be provided.");
            }
            if ((test.Steps == null) || (test.Steps.Count == 0))
            {
                throw new ArgumentNullException("test.Steps", "A test must contain one or more Steps.");
            }

            IEnumerable <Actor> actors = test.Steps.Distinct(new StepComparer()).Select(s => s.Actor);

            if (actors == null)
            {
                throw new InvalidOperationException("Test " + test.Name + " yielded no meaningful actions.");
            }

            lock (thisLock)
            {
#if UUT_TEST == false
                Load(test, actors, handlerTarget, configPath);
#else
                Load(test, actors, handlerTarget, configPath, mode);
#endif
                Bind(test, binaryPath);
                Substitute(test);
                Run(test, actors);
                ThreadPool.RegisterWaitForSingleObject(testComplete,
                                                       (state, timedOut) =>
                {
                    Unload(test, actors);
                },
                                                       null, -1, true);
            }
        }
Example #7
0
 public static void Run(DataLayer.Test test, IHandlerTarget handlerTarget, string configPath, UUTTestMode mode)
 {
     Run(test, handlerTarget, configPath, string.Empty, mode);
 }
Example #8
0
 public static void Run(DataLayer.Test test, UUTTestMode mode)
 {
     Run(test, null, mode);
 }
Example #9
0
        private static void Load(DataLayer.Test test, IEnumerable <Actor> actors, IHandlerTarget handlerTarget, string configPath, UUTTestMode mode)
#endif
        {
            if (!string.IsNullOrEmpty(configPath))
            {
                ConfigManager.SetLocation(configPath);
            }

            foreach (Actor actor in actors)
            {
                switch (actor.Type)
                {
                case ActorType.Port:
                    QFManager.Port.Create((PortType)Enum.Parse(typeof(PortType), actor.SubType), ConfigManager.ReadStream(actor.Name));
                    QFManager.Port.Receive(actor.Name, PortDataReceived);
                    QFManager.Port.Error(actor.Name, PortError);
                    QFManager.Port.ReceiveTimeout(actor.Name, PortReceiveTimeoutExpired);
                    if (handlerTarget != null)
                    {
                        QFManager.Port.Receive(actor.Name, handlerTarget.PortReceive);
                        QFManager.Port.ReceiveTimeout(actor.Name, handlerTarget.PortTimeout);
                        QFManager.Port.Error(actor.Name, handlerTarget.PortError);
                    }
                    break;

                case ActorType.Process:
                    QFManager.Process.Create(ConfigManager.ReadStream(actor.Name));
                    QFManager.Process.Launched(actor.Name, ProcessLaunched);
                    QFManager.Process.Killed(actor.Name, ProcessKilled);
                    QFManager.Process.Timeout(actor.Name, ProcessTimeout);
                    QFManager.Process.Error(actor.Name, ProcessError);
                    if (handlerTarget != null)
                    {
                        QFManager.Process.Launched(actor.Name, handlerTarget.ProcessLaunched);
                        QFManager.Process.Killed(actor.Name, handlerTarget.ProcessKilled);
                        QFManager.Process.Timeout(actor.Name, handlerTarget.ProcessTimeout);
                        QFManager.Process.Error(actor.Name, handlerTarget.ProcessError);
                    }
                    break;

                case ActorType.Prompt:
                    QFManager.Prompt.Create(actor.Name);
                    QFManager.Prompt.Showing(actor.Name, PromptShowing);
                    QFManager.Prompt.Closed(actor.Name, PromptClosed);
                    QFManager.Prompt.Error(actor.Name, PromptError);
                    if (handlerTarget != null)
                    {
                        QFManager.Prompt.Showing(actor.Name, handlerTarget.PromptShowing);
                        QFManager.Prompt.Closed(actor.Name, handlerTarget.PromptClosed);
                        QFManager.Prompt.Error(actor.Name, handlerTarget.PromptError);
                    }
                    break;

                case ActorType.Recorder:
                    QFManager.Recorder.Create(RecorderType.File, actor.Name);
                    QFManager.Recorder.Opening(actor.Name, RecorderOpening);
                    QFManager.Recorder.Opened(actor.Name, RecorderOpened);
                    QFManager.Recorder.Recording(actor.Name, RecorderRecording);
                    QFManager.Recorder.Closed(actor.Name, RecorderClosed);
                    QFManager.Recorder.Error(actor.Name, RecorderError);
                    if (handlerTarget != null)
                    {
                        QFManager.Recorder.Opened(actor.Name, handlerTarget.RecorderOpened);
                        QFManager.Recorder.Recording(actor.Name, handlerTarget.RecorderRecording);
                        QFManager.Recorder.Closed(actor.Name, handlerTarget.RecorderClosed);
                        QFManager.Recorder.Error(actor.Name, handlerTarget.RecorderError);
                    }
                    break;

                default:
                    throw new NotImplementedException();
                }
            }

#if UUT_TEST == false
            QFManager.Test.Load(test);
#else
            QFManager.Test.Load(test, mode);
#endif

            QFManager.Test.Stepping(test.Name, TestStepping);
            QFManager.Test.Error(test.Name, TestError);
            QFManager.Test.Stepped(test.Name, TestStepped);
            QFManager.Test.Passed(test.Name, TestPassed);
            QFManager.Test.Failed(test.Name, TestFailed);
            QFManager.Test.Aborted(test.Name, TestAborted);
            if (handlerTarget != null)
            {
                QFManager.Test.Stepping(test.Name, handlerTarget.TestStepping);
                QFManager.Test.Error(test.Name, handlerTarget.TestError);
                QFManager.Test.Stepped(test.Name, handlerTarget.TestStepped);
                QFManager.Test.Aborted(test.Name, handlerTarget.TestAborted);
                QFManager.Test.Passed(test.Name, handlerTarget.TestPassed);
                QFManager.Test.Failed(test.Name, handlerTarget.TestFailed);
                if (TestUnloaded == null)
                {
                    TestUnloaded += handlerTarget.TestUnloaded;
                }
            }
        }