// Copyright 2000, CERN, Geneva, Switzerland. package org.freehep.util.commandline.test; import org.freehep.util.commandline.CommandLine; import org.freehep.util.commandline.CommandLineException; /** * Test class to the test the CommandLine class in its different forms * * * @author Mark Donszelmann * @version $Id: CommandLineTest.java 8584 2006-08-10 23:06:37Z duns $ */ public class CommandLineTest { public static void main(String[] args) { String[][] test = {{"-version"}, {"--version"}, {"-verbose","parameter1","parameter2","parameter3"}, {"-x-y","parameter1","parameter2","parameter3"}, {"-cp","classpath","parameter1","parameter2","parameter3","optional1","optional2"}, {"-verbose:gc","parameter1","parameter2","parameter3","optional1"}, {"-startup=now","classpath","parameter1","parameter2","parameter3"}, {"-unknownflag","parameter1","parameter2","parameter3"}, {"-unknownoption","somevalue","parameter1","parameter2","parameter3"}, {"-help"}, {"-h"}, {"-verbose","too","few parameters"}, {"-cp"}, {"-Iincludedir1", "par1", "par2", "par3"}, {"-Iincludedir1", "-Iincludedir2", "par1", "par2", "par3"}, {"-Dvar1=value1","-Dvar2=value2","classpath","parameter1","parameter2","parameter3"}, // {"\"double 'and single' quoted\""}, // {"-path=D:\\duns\\wrk\\wired\\"}, // {"-path=\"D:\\duns\\wrk\\wired\\\""}, }; String cmd = "Fake Java Virtual Machine (version 0.9)"; for (int i=0; i<test.length; i++) { CommandLine cl = new CommandLine("java", cmd, 3); cl.addOption("classpath","cp", "path", "set search path for application classes"); cl.addBailOutOption("help", "h", "show help on command"); cl.addOption("notSetFlag", "nsf", "never used"); cl.addOption("notSetOption", "nso", "dummy", "not used"); cl.addOption("notSetQualifiedFlag", null, new String[] {"dummy"},"not used"); cl.addOption("startup", "st", "startup time", "specify startup time"); cl.addOption("verbose", "v", new String[] {"class","gc","jni"}, "enable verbose output"); cl.addBailOutOption("version", null, "print product version"); cl.addOption("x", null, "option x"); cl.addOption("y", null, "option y"); cl.addMultiOption("I", "includedir", "add includedir to search path"); cl.addMultiOption("D", "key=value", "define a property"); cl.addParameter("class1", "first classfile"); cl.addParameter("class2", "second classfile"); cl.addParameter("class3", "third classfile"); cl.addParameter("optionalfile", "optional classfile"); cl.addParameter("args...", "further arguments"); try { for (int j=0; j<test[i].length; j++) { System.out.print(test[i][j]+" "); } System.out.println(); if (!cl.parse(test[i])) { if (cl.hasOption("help")) { System.out.println(cl.getHelp()); // System.exit(1); } else if (cl.hasOption("version")) { System.out.println(cmd); // System.exit(1); } else { System.out.println("Command Bailed Out: "+cl); } } else { System.out.println("Command OK: "+cl); } } catch (CommandLineException cle) { System.out.println(cle); System.out.println(cl); } System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); } } }