blob: 798159623c13b3aa27cf599714a55eacd7c7aa0a [file] [log] [blame]
// Copyright (c) 2022, 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.
@TestOn('windows')
library;
import 'dart:io';
import 'package:dartdev/src/processes.dart';
import 'package:test/test.dart';
import '../utils.dart';
void main() {
group('process listing', () {
test('windows', () {
var results = ProcessInfo.getProcessInfo();
expect(results, isNotNull);
expect(results, isNotEmpty);
for (var process in results!) {
expect(process.memoryMb, greaterThan(0));
expect(process.cpuPercent, null);
expect(process.elapsedTime, null);
expect(process.commandLine, startsWith('dart.exe'));
}
});
test('ProcessInfo.parseWindows', () {
final testLine = '"dart.exe","12068","Console","1","233,384 K"';
var result = ProcessInfo.parseWindows(testLine);
expect(result, isNotNull);
expect(result!.command, 'dart.exe');
// 233384kb == 227MB
expect(result.memoryMb, 227);
});
}, skip: !Platform.isWindows);
group('info windows', () {
late TestProject p;
test('shows process info', () async {
p = project(mainSrc: 'void main() {}');
final runResult = await p.run(['info']);
expect(runResult.stderr, isEmpty);
expect(runResult.exitCode, 0);
var output = runResult.stdout as String;
expect(output, contains('providing this information'));
expect(output, contains('## Process info'));
expect(output, contains(RegExp(r'\|\s+Memory')));
expect(output, contains(RegExp(r'\|\s+dart.exe ')));
});
}, timeout: longTimeout, skip: !Platform.isWindows);
}