diff options
author | Matthias Sohn <matthias.sohn@sap.com> | 2012-03-23 00:30:46 +0100 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2012-03-23 00:30:46 +0100 |
commit | 9dd6e6cd297ae9c0d912ecfa07a148a29e6f4eee (patch) | |
tree | fa901526a945d6f5c78992feccb5f427d5b0550d /org.eclipse.jgit.pgm.test/src/org | |
parent | 473139bbf6c8b5a5603d3f59ca968de5aeaa1887 (diff) | |
download | jgit-9dd6e6cd297ae9c0d912ecfa07a148a29e6f4eee.tar.gz jgit-9dd6e6cd297ae9c0d912ecfa07a148a29e6f4eee.zip |
Revert "Allow to write tests with CLI syntax"
This reverts commit bf845c126d53f07de103e03b68ddb7f24014cee5 since this
change needs to go through a formal IP review and Chris missed to file a
CQ for that.
Change-Id: I303515d78116f0591a2911dbfb9f857738f086a9
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit.pgm.test/src/org')
-rw-r--r-- | org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/lib/CLIRepositoryTestCase.java | 82 | ||||
-rw-r--r-- | org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/pgm/CLIGitCommand.java | 159 |
2 files changed, 0 insertions, 241 deletions
diff --git a/org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/lib/CLIRepositoryTestCase.java b/org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/lib/CLIRepositoryTestCase.java deleted file mode 100644 index 7d0acd76c4..0000000000 --- a/org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/lib/CLIRepositoryTestCase.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2012, IBM Corporation and others. - * and other copyright owners as documented in the project's IP log. - * - * This program and the accompanying materials are made available - * under the terms of the Eclipse Distribution License v1.0 which - * accompanies this distribution, is reproduced below, and is - * available at http://www.eclipse.org/org/documents/edl-v10.php - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * - Neither the name of the Eclipse Foundation, Inc. nor the - * names of its contributors may be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package org.eclipse.jgit.lib; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jgit.junit.JGitTestUtil; -import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; -import org.eclipse.jgit.pgm.CLIGitCommand; -import org.eclipse.jgit.storage.file.FileRepository; -import org.junit.Before; - -public class CLIRepositoryTestCase extends LocalDiskRepositoryTestCase { - /** Test repository, initialized for this test case. */ - protected FileRepository db; - - /** Working directory of {@link #db}. */ - protected File trash; - - @Override - @Before - public void setUp() throws Exception { - super.setUp(); - db = createWorkRepository(); - trash = db.getWorkTree(); - } - - protected String[] execute(String... cmds) throws Exception { - List<String> result = new ArrayList<String>(cmds.length); - for (String cmd : cmds) - result.addAll(CLIGitCommand.execute(cmd, db)); - return result.toArray(new String[0]); - } - - protected File writeTrashFile(final String name, final String data) - throws IOException { - return JGitTestUtil.writeTrashFile(db, name, data); - } -} diff --git a/org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/pgm/CLIGitCommand.java b/org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/pgm/CLIGitCommand.java deleted file mode 100644 index 18abc82618..0000000000 --- a/org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/pgm/CLIGitCommand.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (C) 2011-2012, IBM Corporation and others. - * and other copyright owners as documented in the project's IP log. - * - * This program and the accompanying materials are made available - * under the terms of the Eclipse Distribution License v1.0 which - * accompanies this distribution, is reproduced below, and is - * available at http://www.eclipse.org/org/documents/edl-v10.php - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * - Neither the name of the Eclipse Foundation, Inc. nor the - * names of its contributors may be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package org.eclipse.jgit.pgm; - -import java.io.BufferedWriter; -import java.io.ByteArrayOutputStream; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jgit.lib.Repository; -import org.eclipse.jgit.pgm.opt.CmdLineParser; -import org.eclipse.jgit.pgm.opt.SubcommandHandler; -import org.eclipse.jgit.util.IO; -import org.kohsuke.args4j.Argument; - -public class CLIGitCommand { - @Argument(index = 0, metaVar = "metaVar_command", required = true, handler = SubcommandHandler.class) - private TextBuiltin subcommand; - - @Argument(index = 1, metaVar = "metaVar_arg") - private List<String> arguments = new ArrayList<String>(); - - public TextBuiltin getSubcommand() { - return subcommand; - } - - public List<String> getArguments() { - return arguments; - } - - public static List<String> execute(String str, Repository db) - throws Exception { - String[] args = split(str); - if (!args[0].equalsIgnoreCase("git") || args.length < 2) - throw new IllegalArgumentException( - "Expected 'git <command> [<args>]', was:" + str); - String[] argv = new String[args.length - 1]; - System.arraycopy(args, 1, argv, 0, args.length - 1); - - CLIGitCommand bean = new CLIGitCommand(); - final CmdLineParser clp = new CmdLineParser(bean); - clp.parseArgument(argv); - - final TextBuiltin cmd = bean.getSubcommand(); - if (cmd.requiresRepository()) - cmd.init(db, null); - else - cmd.init(null, null); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - cmd.out = new PrintWriter(new BufferedWriter(new OutputStreamWriter( - baos))); - try { - cmd.execute(bean.getArguments().toArray( - new String[bean.getArguments().size()])); - } finally { - if (cmd.out != null) - cmd.out.flush(); - } - return IO.readLines(baos.toString()); - } - - /** - * Split a command line into a string array. - * - * A copy of Gerrit's - * com.google.gerrit.sshd.CommandFactoryProvider#split(String) - * - * @param commandLine - * a command line - * @return the array - */ - static String[] split(String commandLine) { - final List<String> list = new ArrayList<String>(); - boolean inquote = false; - boolean inDblQuote = false; - StringBuilder r = new StringBuilder(); - for (int ip = 0; ip < commandLine.length();) { - final char b = commandLine.charAt(ip++); - switch (b) { - case '\t': - case ' ': - if (inquote || inDblQuote) - r.append(b); - else if (r.length() > 0) { - list.add(r.toString()); - r = new StringBuilder(); - } - continue; - case '\"': - if (inquote) - r.append(b); - else - inDblQuote = !inDblQuote; - continue; - case '\'': - if (inDblQuote) - r.append(b); - else - inquote = !inquote; - continue; - case '\\': - if (inquote || ip == commandLine.length()) - r.append(b); // literal within a quote - else - r.append(commandLine.charAt(ip++)); - continue; - default: - r.append(b); - continue; - } - } - if (r.length() > 0) - list.add(r.toString()); - return list.toArray(new String[list.size()]); - } - -} |