@ -57,12 +57,12 @@ import org.junit.Before;
import org.junit.Test ;
import org.junit.Test ;
public class RunExternalScriptTest {
public class RunExternalScriptTest {
private static final String LF = "\n" ;
private ByteArrayOutputStream out ;
private ByteArrayOutputStream out ;
private ByteArrayOutputStream err ;
private ByteArrayOutputStream err ;
private String sep = System . getProperty ( "line.separator" ) ;
@Before
@Before
public void setUp ( ) throws Exception {
public void setUp ( ) throws Exception {
out = new ByteArrayOutputStream ( ) ;
out = new ByteArrayOutputStream ( ) ;
@ -74,7 +74,7 @@ public class RunExternalScriptTest {
String inputStr = "a\nb\rc\r\nd" ;
String inputStr = "a\nb\rc\r\nd" ;
File script = writeTempFile ( "cat -" ) ;
File script = writeTempFile ( "cat -" ) ;
int rc = FS . DETECTED . runProcess (
int rc = FS . DETECTED . runProcess (
new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) ) , out , err ,
new ProcessBuilder ( "sh" , script . getPath ( ) ) , out , err ,
new ByteArrayInputStream ( inputStr . getBytes ( ) ) ) ;
new ByteArrayInputStream ( inputStr . getBytes ( ) ) ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( inputStr , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( inputStr , new String ( out . toByteArray ( ) ) ) ;
@ -85,7 +85,7 @@ public class RunExternalScriptTest {
public void testCopyNullStdIn ( ) throws IOException , InterruptedException {
public void testCopyNullStdIn ( ) throws IOException , InterruptedException {
File script = writeTempFile ( "cat -" ) ;
File script = writeTempFile ( "cat -" ) ;
int rc = FS . DETECTED . runProcess (
int rc = FS . DETECTED . runProcess (
new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) ) , out , err ,
new ProcessBuilder ( "sh" , script . getPath ( ) ) , out , err ,
( InputStream ) null ) ;
( InputStream ) null ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( "" , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( "" , new String ( out . toByteArray ( ) ) ) ;
@ -95,7 +95,8 @@ public class RunExternalScriptTest {
@Test
@Test
public void testArguments ( ) throws IOException , InterruptedException {
public void testArguments ( ) throws IOException , InterruptedException {
File script = writeTempFile ( "echo $#,$1,$2,$3,$4,$5,$6" ) ;
File script = writeTempFile ( "echo $#,$1,$2,$3,$4,$5,$6" ) ;
int rc = FS . DETECTED . runProcess ( new ProcessBuilder ( "/bin/bash" ,
int rc = FS . DETECTED . runProcess (
new ProcessBuilder ( "sh" ,
script . getPath ( ) , "a" , "b" , "c" ) , out , err , ( InputStream ) null ) ;
script . getPath ( ) , "a" , "b" , "c" ) , out , err , ( InputStream ) null ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( "3,a,b,c,,,\n" , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( "3,a,b,c,,,\n" , new String ( out . toByteArray ( ) ) ) ;
@ -106,7 +107,7 @@ public class RunExternalScriptTest {
public void testRc ( ) throws IOException , InterruptedException {
public void testRc ( ) throws IOException , InterruptedException {
File script = writeTempFile ( "exit 3" ) ;
File script = writeTempFile ( "exit 3" ) ;
int rc = FS . DETECTED . runProcess (
int rc = FS . DETECTED . runProcess (
new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) , "a" , "b" , "c" ) ,
new ProcessBuilder ( "sh" , script . getPath ( ) , "a" , "b" , "c" ) ,
out , err , ( InputStream ) null ) ;
out , err , ( InputStream ) null ) ;
assertEquals ( 3 , rc ) ;
assertEquals ( 3 , rc ) ;
assertEquals ( "" , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( "" , new String ( out . toByteArray ( ) ) ) ;
@ -117,7 +118,7 @@ public class RunExternalScriptTest {
public void testNullStdout ( ) throws IOException , InterruptedException {
public void testNullStdout ( ) throws IOException , InterruptedException {
File script = writeTempFile ( "echo hi" ) ;
File script = writeTempFile ( "echo hi" ) ;
int rc = FS . DETECTED . runProcess (
int rc = FS . DETECTED . runProcess (
new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) ) , null , err ,
new ProcessBuilder ( "sh" , script . getPath ( ) ) , null , err ,
( InputStream ) null ) ;
( InputStream ) null ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( "" , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( "" , new String ( out . toByteArray ( ) ) ) ;
@ -128,11 +129,11 @@ public class RunExternalScriptTest {
public void testStdErr ( ) throws IOException , InterruptedException {
public void testStdErr ( ) throws IOException , InterruptedException {
File script = writeTempFile ( "echo hi >&2" ) ;
File script = writeTempFile ( "echo hi >&2" ) ;
int rc = FS . DETECTED . runProcess (
int rc = FS . DETECTED . runProcess (
new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) ) , null , err ,
new ProcessBuilder ( "sh" , script . getPath ( ) ) , null , err ,
( InputStream ) null ) ;
( InputStream ) null ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( 0 , rc ) ;
assertEquals ( "" , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( "" , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( "hi" + sep , new String ( err . toByteArray ( ) ) ) ;
assertEquals ( "hi" + LF , new String ( err . toByteArray ( ) ) ) ;
}
}
@Test
@Test
@ -140,11 +141,11 @@ public class RunExternalScriptTest {
String inputStr = "a\nb\rc\r\nd" ;
String inputStr = "a\nb\rc\r\nd" ;
File script = writeTempFile ( "echo $#,$1,$2,$3,$4,$5,$6 >&2 ; cat -; exit 5" ) ;
File script = writeTempFile ( "echo $#,$1,$2,$3,$4,$5,$6 >&2 ; cat -; exit 5" ) ;
int rc = FS . DETECTED . runProcess (
int rc = FS . DETECTED . runProcess (
new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) , "a" , "b" , "c" ) ,
new ProcessBuilder ( "sh" , script . getPath ( ) , "a" , "b" , "c" ) ,
out , err , new ByteArrayInputStream ( inputStr . getBytes ( ) ) ) ;
out , err , new ByteArrayInputStream ( inputStr . getBytes ( ) ) ) ;
assertEquals ( 5 , rc ) ;
assertEquals ( 5 , rc ) ;
assertEquals ( inputStr , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( inputStr , new String ( out . toByteArray ( ) ) ) ;
assertEquals ( "3,a,b,c,,," + sep , new String ( err . toByteArray ( ) ) ) ;
assertEquals ( "3,a,b,c,,," + LF , new String ( err . toByteArray ( ) ) ) ;
}
}
@Test ( expected = IOException . class )
@Test ( expected = IOException . class )
@ -159,7 +160,7 @@ public class RunExternalScriptTest {
public void testWrongScript ( ) throws IOException , InterruptedException {
public void testWrongScript ( ) throws IOException , InterruptedException {
File script = writeTempFile ( "cat-foo -" ) ;
File script = writeTempFile ( "cat-foo -" ) ;
int rc = FS . DETECTED . runProcess (
int rc = FS . DETECTED . runProcess (
new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) , "a" , "b" , "c" ) ,
new ProcessBuilder ( "sh" , script . getPath ( ) , "a" , "b" , "c" ) ,
out , err , ( InputStream ) null ) ;
out , err , ( InputStream ) null ) ;
assertEquals ( 127 , rc ) ;
assertEquals ( 127 , rc ) ;
}
}
@ -169,7 +170,7 @@ public class RunExternalScriptTest {
throws IOException , InterruptedException {
throws IOException , InterruptedException {
String inputStr = "a\nb\rc\r\nd" ;
String inputStr = "a\nb\rc\r\nd" ;
File script = writeTempFile ( "cat -" ) ;
File script = writeTempFile ( "cat -" ) ;
ProcessBuilder pb = new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) ) ;
ProcessBuilder pb = new ProcessBuilder ( "sh" , script . getPath ( ) ) ;
ExecutionResult res = FS . DETECTED . execute ( pb ,
ExecutionResult res = FS . DETECTED . execute ( pb ,
new ByteArrayInputStream ( inputStr . getBytes ( ) ) ) ;
new ByteArrayInputStream ( inputStr . getBytes ( ) ) ) ;
assertEquals ( 0 , res . getRc ( ) ) ;
assertEquals ( 0 , res . getRc ( ) ) ;
@ -180,11 +181,11 @@ public class RunExternalScriptTest {
@Test
@Test
public void testStdErrExecute ( ) throws IOException , InterruptedException {
public void testStdErrExecute ( ) throws IOException , InterruptedException {
File script = writeTempFile ( "echo hi >&2" ) ;
File script = writeTempFile ( "echo hi >&2" ) ;
ProcessBuilder pb = new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) ) ;
ProcessBuilder pb = new ProcessBuilder ( "sh" , script . getPath ( ) ) ;
ExecutionResult res = FS . DETECTED . execute ( pb , null ) ;
ExecutionResult res = FS . DETECTED . execute ( pb , null ) ;
assertEquals ( 0 , res . getRc ( ) ) ;
assertEquals ( 0 , res . getRc ( ) ) ;
assertEquals ( "" , new String ( res . getStdout ( ) . toByteArray ( ) ) ) ;
assertEquals ( "" , new String ( res . getStdout ( ) . toByteArray ( ) ) ) ;
assertEquals ( "hi" + sep , new String ( res . getStderr ( ) . toByteArray ( ) ) ) ;
assertEquals ( "hi" + LF , new String ( res . getStderr ( ) . toByteArray ( ) ) ) ;
}
}
@Test
@Test
@ -193,13 +194,13 @@ public class RunExternalScriptTest {
String inputStr = "a\nb\rc\r\nd" ;
String inputStr = "a\nb\rc\r\nd" ;
File script = writeTempFile (
File script = writeTempFile (
"echo $#,$1,$2,$3,$4,$5,$6 >&2 ; cat -; exit 5" ) ;
"echo $#,$1,$2,$3,$4,$5,$6 >&2 ; cat -; exit 5" ) ;
ProcessBuilder pb = new ProcessBuilder ( "/bin/ sh" , script . getPath ( ) , "a" ,
ProcessBuilder pb = new ProcessBuilder ( "sh" , script . getPath ( ) , "a" ,
"b" , "c" ) ;
"b" , "c" ) ;
ExecutionResult res = FS . DETECTED . execute ( pb ,
ExecutionResult res = FS . DETECTED . execute ( pb ,
new ByteArrayInputStream ( inputStr . getBytes ( ) ) ) ;
new ByteArrayInputStream ( inputStr . getBytes ( ) ) ) ;
assertEquals ( 5 , res . getRc ( ) ) ;
assertEquals ( 5 , res . getRc ( ) ) ;
assertEquals ( inputStr , new String ( res . getStdout ( ) . toByteArray ( ) ) ) ;
assertEquals ( inputStr , new String ( res . getStdout ( ) . toByteArray ( ) ) ) ;
assertEquals ( "3,a,b,c,,," + sep ,
assertEquals ( "3,a,b,c,,," + LF ,
new String ( res . getStderr ( ) . toByteArray ( ) ) ) ;
new String ( res . getStderr ( ) . toByteArray ( ) ) ) ;
}
}