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