Files
sdk/tests/standalone/io/process_working_directory_test.dart
T
Jonas Termansen 3433d8cfc3 [nnbd] Migrate standalone/io to NNBD.
The tests are also now dartfmt.

Bug: https://github.com/dart-lang/sdk/issues/40040
Change-Id: I8dece8097b37b70d47a5374dae2f3fadb0fc4b90
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134338
Commit-Queue: Jonas Termansen <sortie@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2020-02-07 14:41:36 +00:00

62 lines
1.9 KiB
Dart

// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// Process working directory test.
library ProcessWorkingDirectoryTest;
import "dart:io";
import "package:expect/expect.dart";
import "process_test_util.dart";
class ProcessWorkingDirectoryTest {
static String get fullTestFilePath {
// Extract full path, since we run processes from another directory.
File path = new File(getProcessTestFileName());
Expect.isTrue(path.existsSync());
return path.resolveSymbolicLinksSync();
}
static void testValidDirectory() {
Directory directory =
Directory.systemTemp.createTempSync('dart_process_working_directory');
Expect.isTrue(directory.existsSync());
Process.start(fullTestFilePath, const ["0", "0", "99", "0"],
workingDirectory: directory.path)
.then((process) {
process.exitCode.then((int exitCode) {
Expect.equals(exitCode, 99);
directory.deleteSync();
});
process.stdout.listen((_) {});
process.stderr.listen((_) {});
}).catchError((error) {
directory.deleteSync();
Expect.fail("Couldn't start process");
});
}
static void testInvalidDirectory() {
Directory directory =
Directory.systemTemp.createTempSync('dart_process_working_directory');
Expect.isTrue(directory.existsSync());
Process.start(fullTestFilePath, const ["0", "0", "99", "0"],
workingDirectory: directory.path + "/subPath")
.then((process) {
Expect.fail("bad process completed");
directory.deleteSync();
}).catchError((e) {
Expect.isNotNull(e);
directory.deleteSync();
});
}
}
main() {
ProcessWorkingDirectoryTest.testValidDirectory();
ProcessWorkingDirectoryTest.testInvalidDirectory();
}