diff options
author | Jonathan Nieder <jrn@google.com> | 2012-11-16 15:16:18 -0800 |
---|---|---|
committer | Jonathan Nieder <jrn@google.com> | 2012-11-16 15:45:52 -0800 |
commit | 789ca39adeb794ee63c7e5b6484f521de5b1f29d (patch) | |
tree | 076f3fe46ba671e8101f1607d5be7dde19d1e2b6 /org.eclipse.jgit.pgm.test/src/org | |
parent | fa5231191d530afb24810080e89990913c8e8054 (diff) | |
download | jgit-789ca39adeb794ee63c7e5b6484f521de5b1f29d.tar.gz jgit-789ca39adeb794ee63c7e5b6484f521de5b1f29d.zip |
Allow commandline tests to use raw output
Introduce a new CLIGitCommand.rawExecute() helper that behaves
just like execute() except that instead of processing its output
it returns it raw.
So now you can do
final byte[] expect = { 0, 1, 2, 3 };
final byte[] actual = CLIGitCommand.rawExecute(
"git show HEAD:goo.raw", db);
assertArrayEquals(expect, actual);
to test the output from "git show HEAD:goo.raw" without being
distracted by encoding issues.
Noticed while writing tests for a new "jgit archive" command that
writes its output in ZIP format.
Change-Id: I2fe6020a537975d0ccf414b7125d85d6cd86898c
Diffstat (limited to 'org.eclipse.jgit.pgm.test/src/org')
-rw-r--r-- | org.eclipse.jgit.pgm.test/src/org/eclipse/jgit/pgm/CLIGitCommand.java | 15 |
1 files changed, 11 insertions, 4 deletions
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 index 982aa95216..78706da314 100644 --- 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 @@ -70,6 +70,16 @@ public class CLIGitCommand { public static List<String> execute(String str, Repository db) throws Exception { + try { + return IO.readLines(new String(rawExecute(str, db))); + } catch (Die e) { + return IO.readLines(MessageFormat.format(CLIText.get().fatalError, + e.getMessage())); + } + } + + public static byte[] rawExecute(String str, Repository db) + throws Exception { String[] args = split(str); if (!args[0].equalsIgnoreCase("git") || args.length < 2) throw new IllegalArgumentException( @@ -91,14 +101,11 @@ public class CLIGitCommand { try { cmd.execute(bean.getArguments().toArray( new String[bean.getArguments().size()])); - } catch (Die e) { - return IO.readLines(MessageFormat.format(CLIText.get().fatalError, - e.getMessage())); } finally { if (cmd.outw != null) cmd.outw.flush(); } - return IO.readLines(baos.toString()); + return baos.toByteArray(); } /** |