Exemple #1
0
        public string Discover(AutoEvaluation eval, out double points, out int time, out int count)
        {
            //Get Perl
            IExternalTool perl = ExternalToolFactory.GetInstance().CreateExternalTool("Perl",
                "5.0", ExternalToolFactory.VersionCompare.ATLEAST);
            if (perl == null)
                throw new JUnitToolException(
                    "Unable to find Perl v5.0 or later. Please check the installation or contact the administrator");

            //Get all files on the disk
            string tpath = ExportToTemp(eval);

            //Run disco program
            perl.Arguments = "jdisco.pl i";
            perl.Execute(tpath);
            Directory.Delete(tpath, true);

            //Validate XML
            string xmltests = perl.Output;
            XmlWizard xmlwiz = new XmlWizard();
            if (!xmlwiz.ValidateXml(xmltests, Path.Combine(Globals.WWWDirectory, "Xml/testsuite.xsd")))
                throw new JUnitToolException("Invalid JUnit Test Suite. Check to make sure the test suite conforms to FrontDesk standards");

            //Write XML
            FileSystem fs = new FileSystem(Globals.CurrentIdentity);
            CFile zone = fs.GetFile(eval.ZoneID);
            string tspath = Path.Combine(zone.FullPath, "__testsuite.xml");
            CFile xmldesc = fs.GetFile(tspath);
            if (xmldesc == null)
                xmldesc = fs.CreateFile(tspath, false, null);
            xmldesc.Data = xmltests.ToCharArray();
            fs.Edit(xmldesc);
            fs.Save(xmldesc);

            //Copy disco program over
            CFile.FileList dfiles = new CFile.FileList();
            dfiles.Add(fs.GetFile(@"c:\system\junit\jdisco.pl"));
            dfiles.Add(fs.GetFile(@"c:\system\junit\JUnitDiscover.class"));
            dfiles.Add(fs.GetFile(@"c:\system\junit\JUnitDiscover$ClassFileFilter.class"));
            fs.CopyFiles(zone, dfiles, true);

            //Get suite metadata
            GetSuiteInfo(xmltests, out points, out time, out count);

            //Punt all previous results
            RemoveResults(eval);

            return xmltests;
        }
        protected bool cmdPaste_ButtonClick(object sender, EventArgs ea)
        {
            TreeNode destnode;
            ClipBoard cb;
            FileSystem fs;

            cb = (ClipBoard) ViewState["clipboard"];
            if (cb == null) {
                DisplayMessage("Clipboard empty. You must cut/copy files before pasting has an effect");
                return true;
            }

            fs = new FileSystem(Globals.CurrentIdentity);
            destnode = tvFiles.GetNodeFromIndex(tvFiles.SelectedNodeIndex);
            CFile dest = fs.GetFile((string)ViewState["gridpath"]);

            try {
                if (cb.Move)
                    fs.MoveFiles(dest, cb.Files, false);
                else
                    fs.CopyFiles(dest, cb.Files, false);
            }
            catch (FileOperationException e) {
                DisplayMessage(e.Message);
                return false;
            }

            UpdateTreeNode(destnode, true);
            BindFileGrid();
            ViewState["clipboard"] = null;
            BindClipBoard();

            return true;
        }