@Test public void testLong() throws Throwable { final String LINE = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASDSSSSSSSSSSSSSSSSSSSSSSSDDDDDD"; final int NUM = 10000; final int FACTOR = 5; StringBuilder longText = new StringBuilder(); for (int i = 0; i < NUM / FACTOR; i++) { longText.append(LINE).append("\n"); } List<String> expect = new LinkedList<String>(); expect.add("start"); for (int i = 0; i < NUM; i++) { expect.add(LINE); } List<String> send = new LinkedList<String>(); for (int i = 0; i < NUM; i++) { if (i % (NUM / FACTOR) == 0) { send.add(longText.toString()); } else { send.add(null); } } Sink sink = new Sink(expect.toArray(new String[0]), send.toArray(new String[0])); _sshdialog.connect(); _sshdialog.authenticate(); _sshdialog.executeCommand(sink, "echo start && sleep 4 && cat", null); sink.exception(); }
@Test(expected = TimeLimitExceededException.class) public void testTimeout() throws Throwable { Sink sink = new Sink(new String[] {"start"}, new String[] {}); _sshdialog.setSoftTimeout(1 * 1000); _sshdialog.connect(); _sshdialog.authenticate(); _sshdialog.executeCommand(sink, "cat", null); sink.exception(); }
@Test(expected = RuntimeException.class) public void testStderr() throws Throwable { try (final InputStream start = new ByteArrayInputStream("start\n".getBytes("UTF-8"))) { Sink sink = new Sink(new String[] {"start", "text1", "text2"}, new String[] {"text1", "text2"}); _sshdialog.connect(); _sshdialog.authenticate(); _sshdialog.executeCommand(sink, "echo message >&2 && cat", new InputStream[] {start}); sink.exception(); } }
@Test public void testSimple() throws Throwable { try (final InputStream start = new ByteArrayInputStream("start\n".getBytes("UTF-8"))) { Sink sink = new Sink(new String[] {"start", "text1", "text2"}, new String[] {"text1", "text2"}); _sshdialog.connect(); _sshdialog.authenticate(); _sshdialog.executeCommand(sink, "cat", new InputStream[] {start}); sink.exception(); } }