From: Jonathan Nieder Date: Fri, 16 Nov 2012 23:16:18 +0000 (-0800) Subject: Allow commandline tests to use raw output X-Git-Tag: v2.2.0.201212191850-r~28 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=789ca39adeb794ee63c7e5b6484f521de5b1f29d;p=jgit.git 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 --- 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 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(); } /**