blob: b193dc92c189692e301bd14703846d07abfbf1de [file] [log] [blame]
// Copyright (c) 2019, 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.
import 'dart:async';
import 'dart:convert';
import 'dart:developer';
import 'dart:io' as io;
import 'package:observatory/service_io.dart' as S;
import 'package:unittest/unittest.dart';
import 'test_helper.dart';
Future<Null> testeeBefore() async {
print('testee before');
print(await Service.getInfo());
// Start the web server.
ServiceProtocolInfo info = await Service.controlWebServer(enable: true);
expect(info.serverUri, isNotNull);
var httpClient = new io.HttpClient();
// Build the request.
final pathSegments = <String>[]..addAll(info.serverUri.pathSegments);
String method = 'getVM';
if (pathSegments.isNotEmpty) {
pathSegments[pathSegments.length - 1] = method;
} else {
pathSegments.add(method);
}
final requestUri = info.serverUri.replace(pathSegments: pathSegments);
try {
var request = await httpClient.getUrl(requestUri);
Map response = await (await request.close())
.transform(utf8.decoder)
.transform(json.decoder)
.first;
Map result = response['result'];
expect(result['type'], equals('VM'));
expect(result['name'], equals('vm'));
expect(result['architectureBits'], isPositive);
expect(result['targetCPU'], new isInstanceOf<String>());
expect(result['hostCPU'], new isInstanceOf<String>());
expect(result['version'], new isInstanceOf<String>());
expect(result['pid'], new isInstanceOf<int>());
expect(result['startTime'], isPositive);
expect(result['isolates'].length, isPositive);
expect(result['isolates'][0]['type'], equals('@Isolate'));
} catch (e) {
fail('invalid request: $e');
}
}
var tests = <IsolateTest>[
(S.Isolate isolate) async {
await isolate.reload();
// Just getting here means that the testee enabled the service protocol
// web server.
expect(true, true);
}
];