package org.eclipse.dltk.tcl.core.tests.launching;
import org.eclipse.core.runtime.Path;
import org.eclipse.dltk.core.environment.EnvironmentManager;
import org.eclipse.dltk.core.environment.IFileHandle;
import org.eclipse.dltk.core.tests.model.AbstractModelTests;
import org.eclipse.dltk.launching.EnvironmentVariable;
import org.eclipse.dltk.launching.IInterpreterInstall;
import org.eclipse.dltk.launching.IInterpreterInstallType;
import org.eclipse.dltk.launching.ScriptRuntime;
import org.eclipse.dltk.tcl.core.TclNature;
import junit.framework.Test;
public class TclPackagesTests extends AbstractModelTests {
public TclPackagesTests(String name) {
super("org.eclipse.dltk.tcl.core.tests", name);
}
public TclPackagesTests(String testProjectName, String name) {
super(testProjectName, name);
}
public static Test suite() {
return new Suite(TclPackagesTests.class);
}
protected String getNatureId() {
return TclNature.NATURE_ID;
}
protected IInterpreterInstall createInstall(String path, String id,
IInterpreterInstallType type) {
IFileHandle file = EnvironmentManager.getLocalEnvironment().getFile(
new Path(path));
if (!file.exists()) {
return null;
}
IInterpreterInstall install = type.findInterpreterInstall(id);
if (install == null)
install = type.createInterpreterInstall(id);
install.setName("");
install.setInstallLocation(file);
install.setLibraryLocations(null);
install.setEnvironmentVariables(null);
return install;
}
protected IInterpreterInstall createNewInterpreter() throws Exception {
String atsRootPath = "/Develop/cisco/ats5.0.0/";
IInterpreterInstallType[] installTypes = ScriptRuntime
.getInterpreterInstallTypes(TclNature.NATURE_ID);
int id = 0;
for (int i = 0; i < installTypes.length; i++) {
String installId = getNatureId() + "_";
IInterpreterInstall install = createInstall(atsRootPath
+ "bin/tclsh", installId + Integer.toString(++id),
installTypes[i]);
if (install != null) {
EnvironmentVariable[] vars = {
new EnvironmentVariable("AUTOTEST", atsRootPath),
new EnvironmentVariable("ATS_EASY", atsRootPath
+ "ats_easy") };
install.setEnvironmentVariables(vars);
return install;
}
}
throw new Exception("Failed to create appropriate install");
}
public void testPackages001() throws Exception {
// IEnvironment environment = EnvironmentManager.getLocalEnvironment();
// IExecutionEnvironment executionEnvironment = (IExecutionEnvironment)
// environment
// .getAdapter(IExecutionEnvironment.class);
// IInterpreterInstall install = createNewInterpreter();
// String[] pkgs = new String[] { "smtp", "crc32", "bench", "dom",
// "page::util::norm::peg", "widget::scrolledwindow",
// "page::parse::pegser", "$urlparts(scheme)::geturl",
// "grammar::me::tcl", "transfer::data::destination", "TnmEther",
// "Seclib", "logger::appender", "SOAP::http", "tile::theme::*",
// "tcllib", "$args", "Test", "time", "choosefont", "SOAP::beep",
// "doctools::idx", "Thread", "TclSimicsClient", "app-$command",
// "textutil::expander", "$pkg_name_title",
// "page::compiler::peg::mecpu", "style::as", "Tk",
// "page::util::flow", "Csccon", "log", "vfs", "beepcore::peer",
// "Diagrams", "Expect", "Autoeasy", "ldap", "domtext",
// "page::parse::lemon", "textutil::repeat", "Easy",
// "beepcore::mixer", "pluginmgr", "pref", "TkinedCommand",
// "Parser", "term::ansi::code::ctrl", "aereport", "optcsv",
// "snackogg", "mk4vfs", "math::fuzzy", "XOTcl",
// "page::gen::peg::ser", "treeql", "SASL::NTLM", "sha1",
// "ripemd160", "jlib", "img::bmp", "base32::core", "meta",
// "$urlparts(scheme)", "md5cryptc", "xpath", "Control",
// "textutil::string", "grammar::me::cpu::gasm", "Tablelist_tile",
// "logger", "tclDES", "struct::stack", "Ibmcon", "comm",
// "Winico", "Tclx", "pref::devkit", "dom::tclgeneric", "dns",
// "dom::generic", "snack", "math", "Async",
// "xotcl::comm::httpAccess", "xslt", "Img", "tile", "md5",
// "xotcl::wafecompat", "md4", "vfs::${type}", "interp", "uevent",
// "page::util::norm::lemon", "xotcl::comm::ftp", "AtsAuto",
// "docstrip", "fileutil::multi::op", "TkinedTool",
// "page::pluginmgr", "Cisco", "htmlparse", "Power_Cycler",
// "doctools", "muc", "browse", "Wincon", "pda", "askleo",
// "soapinterop::B", "TnmSnmp", "soapinterop::C",
// "widget::menuentry", "otp", "picoirc", "beepcore::log",
// "TkinedDialog", "control", "math::interpolate",
// "term::receive", "mutl", "grammar::fa::op", "iou",
// "struct::pool", "SOAP", "xml", "nntp", "Parallel", "uri",
// "TnmScriptMib", "chatwidget", "term::send", "sound",
// "doctools::changelog", "ftp", "as::style", "stooop",
// "TclUtils", "ctext", "Atslog", "dde", "fileutil",
// "term::ansi::code", "widget::toolbar", "Rsrcm",
// "math::bigfloat", "ipMorec", "TkinedEditor", "Diagcon",
// "Plotchart", "bibtex", "pas", "xotcl::trace", "struct",
// "tablelist::common", "Itk", "TkinedObjects",
// "fileutil::magic::cgen", "term::ansi::send", "doctools::toc",
// "term::interact::pager", "autoproxy",
// "page::analysis::peg::reachable", "globfind",
// "term::interact::menu", "TnmMib", "topomap", "cmdline",
// "Mk4tcl", "widget::panelframe", "wip", "struct::record",
// "domtree", "struct::matrix", "base64", "$pkg", "irc", "$a",
// "tooltip", "smtpd", "XMLRPC::Domain", "combobox", "Tnm", "tie",
// "dom::libxml2", "BWidget", "struct::set", "TkinedMisc",
// "wrapper", "parse_dashed_args", "struct::graph", "ldapx",
// "TnmTerm", "report", "dom::tcl", "page::plugin", "Tcldot",
// "opt", "nameserv", "$pkg_name", "Memchan", "SOAP::WSDL",
// "transfer::data::source", "math::polynomials",
// "tile::theme::$theme", "math::complexnumbers",
// "struct::skiplist", "xotcl::comm::httpd", "widget::dialog",
// "wsurf", "http", "sgmlparser", "page::util::peg", "asn",
// "mime", "csv", "registry", "md4c", "optchecker", "des",
// "Renicam", "tcltest", "snit", "struct::tree", "tclDESjr",
// "ncgi", "khim", "snacksphere", "SOAP::CGI", "msgcat", "atshm",
// "term::ansi::code::macros", "page::parse::peg", "Tkhtml",
// "autoscroll", "xotcl::xodoc", "mapproj", "Tcl", "sgml",
// "vfs::mkcl", "SOAP::Utils", "Tkined", "switched", "ntext",
// "xotcl::mixinStrategy", "textutil::adjust", "nameserv::common",
// "SOAP::dom", "tls", "term::receive::bind",
// "page::gen::peg::me", "critcl", "tcltestUtils",
// "doctools::__undefined__", "textutil::tabify", "${driver}vfs",
// "idle", "transfer::copy", "xotcl::metadataAnalyzer",
// "Tablelist", "grammar::me::util", "math::special",
// "xotcl::package", "SOAP::xpath",
// "xotcl::staticMetadataAnalyzer", "TnmMap", "starkit",
// "TnmDialog", "textutil", "struct::prioqueue", "textutil::trim",
// "TnmMonitor", "xotcl::comm::mime", "chat", "SASL",
// "tkpiechart", "mbox", "xotcl::comm::pcache", "tools", "Catlib",
// "grammar::peg", "Tktable", "Trf", "rc4c", "textutil::split",
// "struct::queue", "tdom", "page::gen::tree::text",
// "term::ansi::code::attr", "transfer::connect", "XMLRPC",
// "img::jpeg", "Mentry", "TkinedHelp", "Mad", "TkinedEvent",
// "vfs::template", "page::analysis::peg::realizable",
// "SOAP::Domain", "fileutil::magic::rt", "TnmInet", "uri::urn",
// "ftpd", "style::${newstyle}", "grammar::me::cpu::core",
// "dtglue", "dict", "math::statistics", "page::gen::peg::hb",
// "img::png", "term::ansi::ctrl::unix",
// "xotcl::comm::connection", "xotcl::htmllib", "Itcl", "pats",
// "activestate::teapot::link", "PatsCmd", "widget::screenruler",
// "page::gen::peg::mecpu", "trsync", "math::bignum", "SimDev",
// "widget", "rpcvar", "page::gen::peg::cpkg",
// "soapinterop::base", "rssrdr", "page::analysis::peg::emodes",
// "TkinedDiagram", "math::constants", "ip",
// "math::linearalgebra", "struct::list", "xmldefs",
// "page::util::quote", "Iwidgets", "tcllibc",
// "page::gen::peg::canon", "page::parse::peghb" };
// StringBuffer b = new StringBuffer();
// for (int i = 0; i < pkgs.length; i++) {
// if (i != 0) {
// b.append(" " + pkgs[i]);
// } else {
// b.append(pkgs[i]);
// }
// }
// TclPackage[] packages = DLTKTclHelper.getSrcs(executionEnvironment,
// install.getInstallLocation(),
// install.getEnvironmentVariables(), b.toString());
// assertEquals(packages.length, 268);
}
public void testPackages002() throws Exception {
// BufferedReader stream = new BufferedReader(new InputStreamReader(this
// .getClass().getResourceAsStream("packages002.txt")));
// final List output = new ArrayList();
// String line;
// while ((line = stream.readLine()) != null) {
// output.add(line);
// }
// TclPackage[] packagePath = DLTKTclHelper.getPackagePath(output);
// assertEquals(packagePath.length, 31);
// assertEquals(packagePath[5].getName(), "ha");
// assertEquals(packagePath[30].getName(), "tdom");
}
}