| Index: test/logging_test.dart
|
| diff --git a/test/logging_test.dart b/test/logging_test.dart
|
| index 94696d8dc894e702d9ef5fe5d6313370f354bcae..e27ee2f3b047ae09e678c7ddea85742c96eb792f 100644
|
| --- a/test/logging_test.dart
|
| +++ b/test/logging_test.dart
|
| @@ -520,4 +520,54 @@ void main() {
|
| equals(['INFO: 5', 'INFO: false', 'INFO: [1, 2, 3]', 'INFO: 10',]));
|
| });
|
| });
|
| +
|
| + group('recordStackTraceAtLevel', () {
|
| + var root = Logger.root;
|
| + tearDown(() {
|
| + recordStackTraceAtLevel = Level.OFF;
|
| + root.clearListeners();
|
| + });
|
| +
|
| + test('no stack trace by default', () {
|
| + var records = new List<LogRecord>();
|
| + root.onRecord.listen(records.add);
|
| + root.severe('hello');
|
| + root.warning('hello');
|
| + root.info('hello');
|
| + expect(records, hasLength(3));
|
| + expect(records[0].stackTrace, isNull);
|
| + expect(records[1].stackTrace, isNull);
|
| + expect(records[2].stackTrace, isNull);
|
| + });
|
| +
|
| + test('trace recorded only on requested levels', () {
|
| + var records = new List<LogRecord>();
|
| + recordStackTraceAtLevel = Level.WARNING;
|
| + root.onRecord.listen(records.add);
|
| + root.severe('hello');
|
| + root.warning('hello');
|
| + root.info('hello');
|
| + expect(records, hasLength(3));
|
| + expect(records[0].stackTrace, isNotNull);
|
| + expect(records[1].stackTrace, isNotNull);
|
| + expect(records[2].stackTrace, isNull);
|
| + });
|
| +
|
| + test('provided trace is used if given', () {
|
| + var trace;
|
| + try {
|
| + throw 'trace';
|
| + } catch(e, t) {
|
| + trace = t;
|
| + }
|
| + var records = new List<LogRecord>();
|
| + recordStackTraceAtLevel = Level.WARNING;
|
| + root.onRecord.listen(records.add);
|
| + root.severe('hello');
|
| + root.warning('hello', 'a', trace);
|
| + expect(records, hasLength(2));
|
| + expect(records[0].stackTrace, isNot(equals(trace)));
|
| + expect(records[1].stackTrace, trace);
|
| + });
|
| + });
|
| }
|
|
|