| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 // | 4 // | 
| 5 // Process test program to test process communication. | 5 // Process test program to test process communication. | 
| 6 // | 6 // | 
| 7 // VMOptions= | 7 // VMOptions= | 
| 8 // VMOptions=--short_socket_read | 8 // VMOptions=--short_socket_read | 
| 9 // VMOptions=--short_socket_write | 9 // VMOptions=--short_socket_write | 
| 10 // VMOptions=--short_socket_read --short_socket_write | 10 // VMOptions=--short_socket_read --short_socket_write | 
| 11 | 11 | 
| 12 #library("ProcessStdoutTest"); | 12 #library("ProcessStdoutTest"); | 
| 13 #source("ProcessTestUtil.dart"); | 13 #source("ProcessTestUtil.dart"); | 
| 14 | 14 | 
| 15 void test(Process process) { | 15 void test(Process process, int expectedExitCode) { | 
| 16   // Wait for the process to start and then interact with it. | 16   // Wait for the process to start and then interact with it. | 
| 17   process.startHandler = () { | 17   process.startHandler = () { | 
| 18     List<int> data = "ABCDEFGHI\n".charCodes(); | 18     List<int> data = "ABCDEFGHI\n".charCodes(); | 
| 19     final int dataSize = data.length; | 19     final int dataSize = data.length; | 
| 20 | 20 | 
| 21     InputStream input = process.stdout; | 21     InputStream input = process.stdout; | 
| 22     OutputStream output = process.stdin; | 22     OutputStream output = process.stdin; | 
| 23 | 23 | 
| 24     int received = 0; | 24     int received = 0; | 
| 25     List<int> buffer = []; | 25     List<int> buffer = []; | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 42         } else if (received === dataSize) { | 42         } else if (received === dataSize) { | 
| 43           process.close(); | 43           process.close(); | 
| 44         } | 44         } | 
| 45       } | 45       } | 
| 46     } | 46     } | 
| 47 | 47 | 
| 48     output.write(data); | 48     output.write(data); | 
| 49     output.close(); | 49     output.close(); | 
| 50     input.dataHandler = readData; | 50     input.dataHandler = readData; | 
| 51   }; | 51   }; | 
|  | 52 | 
|  | 53   process.exitHandler = (exitCode) { | 
|  | 54     Expect.equals(expectedExitCode, exitCode); | 
|  | 55   }; | 
| 52 } | 56 } | 
| 53 | 57 | 
| 54 main() { | 58 main() { | 
| 55   // Run the test using the process_test binary. | 59   // Run the test using the process_test binary. | 
| 56   test(new Process.start(getProcessTestFileName(), | 60   test(new Process.start(getProcessTestFileName(), | 
| 57                          const ["0", "1", "99", "0"])); | 61                          const ["0", "1", "99", "0"]), 99); | 
| 58 | 62 | 
| 59   // Run the test using the dart binary with an echo script. | 63   // Run the test using the dart binary with an echo script. | 
| 60   // The test runner can be run from either the root or from runtime. | 64   // The test runner can be run from either the root or from runtime. | 
| 61   var scriptFile = new File("tests/standalone/src/ProcessStdIOScript.dart"); | 65   var scriptFile = new File("tests/standalone/src/ProcessStdIOScript.dart"); | 
| 62   if (!scriptFile.existsSync()) { | 66   if (!scriptFile.existsSync()) { | 
| 63     scriptFile = new File("../tests/standalone/src/ProcessStdIOScript.dart"); | 67     scriptFile = new File("../tests/standalone/src/ProcessStdIOScript.dart"); | 
| 64   } | 68   } | 
| 65   Expect.isTrue(scriptFile.existsSync()); | 69   Expect.isTrue(scriptFile.existsSync()); | 
| 66   test(new Process.start(getDartFileName(), [scriptFile.name, "0"])); | 70   test(new Process.start(getDartFileName(), [scriptFile.name, "0"]), 0); | 
| 67 } | 71 } | 
| OLD | NEW | 
|---|