blob: adb0f751f1749ff0a194ecdf011704216ff2d551 [file] [log] [blame]
// Copyright (c) 2023, 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:developer';
import 'package:logging/logging.dart';
import 'package:test/test.dart';
import 'package:vm_service/vm_service.dart';
import 'common/service_test_common.dart';
import 'common/test_helper.dart';
// AUTOGENERATED START
//
// Update these constants by running:
//
// dart pkg/vm_service/test/update_line_numbers.dart <test.dart>
//
const LINE_A = 41;
const LINE_B = 43;
// AUTOGENERATED END
void init() {
Logger.root.level = Level.ALL;
Logger.root.onRecord.listen((logRecord) {
log(
logRecord.message,
time: logRecord.time,
sequenceNumber: logRecord.sequenceNumber,
level: logRecord.level.value,
name: logRecord.loggerName,
zone: null,
error: logRecord.error,
stackTrace: logRecord.stackTrace,
);
});
}
void run() {
debugger(); // LINE_A
Logger.root.fine('Hey Buddy!');
debugger(); // LINE_B
Logger.root.info('YES');
}
final tests = <IsolateTest>[
hasStoppedAtBreakpoint,
stoppedAtLine(LINE_A),
resumeIsolateAndAwaitEvent(EventStreams.kLogging, (event) {
expect(event.kind, EventKind.kLogging);
expect(event.logRecord!.sequenceNumber, 0);
expect(event.logRecord!.message!.valueAsString, 'Hey Buddy!');
expect(event.logRecord!.level, Level.FINE.value);
expect(event.logRecord!.time, isNotNull);
}),
hasStoppedAtBreakpoint,
stoppedAtLine(LINE_B),
resumeIsolateAndAwaitEvent(EventStreams.kLogging, (event) {
expect(event.kind, EventKind.kLogging);
expect(event.logRecord!.sequenceNumber, 1);
expect(event.logRecord!.message!.valueAsString, 'YES');
expect(event.logRecord!.level, Level.INFO.value);
expect(event.logRecord!.time, isNotNull);
}),
];
void main([args = const <String>[]]) => runIsolateTests(
args,
tests,
'logging_test.dart',
testeeBefore: init,
testeeConcurrent: run,
);