blob: eefc61e1777ef6b332812f3ed599dc02f79461f0 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. 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:io';
import 'package:test/test.dart';
import '../render/ast.dart';
import '../report.pb.dart' as bloaty_report;
import '../testing_util.dart';
import '../types.dart';
import 'crates.dart';
void main() {
Directory testData = locateTestData();
test('libasync-default.so has no crates', () async {
final report = Report.fromBytes(
'libasync',
await File('${testData.path}/libasync-default.so.bloaty_report_pb')
.readAsBytes());
final query = CratesQuery()..addReport(report);
expect(query.toString(), equals('Nothing selected'));
expect(query.distill().export(), equals([Node.plain('Nothing selected')]));
});
test('single crate', () {
final protobufReport = bloaty_report.Report()
..compileUnits.add(bloaty_report.CompileUnit()
..symbols.add(bloaty_report.Symbol.create()
..sizes = (bloaty_report.SizeInfo.create()..fileActual = 42)
..maybeRustCrate = 'foo'));
final report = Report.fromBloaty('test', protobufReport);
final query = CratesQuery()..addReport(report);
expect(query.toString(), equals('foo: 42 B (42), count: 1'));
});
}