20faaa5d94
Change-Id: Ib18f554c1076f27a3f7c0df5a36410da41a1f467 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148784 Reviewed-by: Paul Berry <paulberry@google.com> Reviewed-by: Sigmund Cherem <sigmund@google.com>
97 lines
2.2 KiB
Dart
97 lines
2.2 KiB
Dart
// Copyright (c) 2014, 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.
|
|
|
|
// @dart = 2.7
|
|
|
|
import 'package:expect/expect.dart';
|
|
import 'package:compiler/src/helpers/helpers.dart';
|
|
|
|
class CollectingOutput implements StatsOutput {
|
|
final StringBuffer sb = new StringBuffer();
|
|
|
|
@override
|
|
void println(String text) {
|
|
sb.write('$text\n');
|
|
}
|
|
|
|
@override
|
|
String toString() => sb.toString();
|
|
}
|
|
|
|
void main() {
|
|
testRecordElement();
|
|
testRecordFrequency();
|
|
testRecordCounter();
|
|
}
|
|
|
|
void testRecordElement() {
|
|
test((Stats stats) {
|
|
stats.recordElement('foo', 'a', data: 'first-a-data');
|
|
stats.recordElement('foo', 'a', data: 'second-a-data');
|
|
stats.recordElement('foo', 'b');
|
|
stats.recordElement('bar', 'a', data: 'third-a-data');
|
|
stats.recordElement('bar', 'c');
|
|
}, r'''
|
|
foo: 2
|
|
value=a data=second-a-data
|
|
b
|
|
bar: 2
|
|
value=a data=third-a-data
|
|
c
|
|
''');
|
|
}
|
|
|
|
void testRecordFrequency() {
|
|
test((Stats stats) {
|
|
stats.recordFrequency('foo', 'a', 'first-a-data');
|
|
stats.recordFrequency('foo', 'a', 'second-a-data');
|
|
stats.recordFrequency('bar', 'b', 'first-b-data');
|
|
stats.recordFrequency('foo', 'c');
|
|
stats.recordFrequency('bar', 'b');
|
|
}, r'''
|
|
foo:
|
|
a: 2
|
|
first-a-data
|
|
second-a-data
|
|
c: 1
|
|
bar:
|
|
b: 2
|
|
first-b-data
|
|
''');
|
|
}
|
|
|
|
void testRecordCounter() {
|
|
test((Stats stats) {
|
|
stats.recordCounter('foo', 'a');
|
|
stats.recordCounter('foo', 'a');
|
|
stats.recordCounter('foo', 'b');
|
|
stats.recordCounter('bar', 'c', 'first-c-data');
|
|
stats.recordCounter('bar', 'c', 'second-c-data');
|
|
stats.recordCounter('bar', 'd');
|
|
stats.recordCounter('bar', 'd');
|
|
stats.recordCounter('baz');
|
|
stats.recordCounter('baz');
|
|
}, r'''
|
|
foo: 3
|
|
count=2 example=a
|
|
count=1 example=b
|
|
bar: 4
|
|
count=2 examples=2
|
|
c:
|
|
first-c-data
|
|
second-c-data
|
|
d
|
|
baz: 2
|
|
''');
|
|
}
|
|
|
|
void test(f(Stats stats), expectedDump) {
|
|
CollectingOutput output = new CollectingOutput();
|
|
Stats stats = new ActiveStats(new ConsolePrinter(output: output));
|
|
f(stats);
|
|
stats.dumpStats();
|
|
print(output.toString());
|
|
Expect.equals(expectedDump, output.toString());
|
|
}
|