[sl4f][performance] Add a simple e2e test for the sl4f performance facade
TEST=
fx set core.arm64 --with-base=//src/tests/end_to_end/sl4f:test && fx build && [set environment for Target IP and Key] && fx run-host-tests sl4f_test
Change-Id: I1a3ccc7abbb53d0e30bdf19e77d6a9fa3bd62849
diff --git a/src/tests/end_to_end/sl4f/BUILD.gn b/src/tests/end_to_end/sl4f/BUILD.gn
index 9e3fc65..2042cfe 100644
--- a/src/tests/end_to_end/sl4f/BUILD.gn
+++ b/src/tests/end_to_end/sl4f/BUILD.gn
@@ -9,6 +9,7 @@
sources = [
"dump_test.dart",
"file_facade_test.dart",
+ "performance_test.dart",
]
deps = [
diff --git a/src/tests/end_to_end/sl4f/test/performance_test.dart b/src/tests/end_to_end/sl4f/test/performance_test.dart
new file mode 100644
index 0000000..04fd698
--- /dev/null
+++ b/src/tests/end_to_end/sl4f/test/performance_test.dart
@@ -0,0 +1,50 @@
+// Copyright 2019 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 'package:sl4f/sl4f.dart' as sl4f;
+
+const _timeout = Duration(seconds: 60);
+
+void main() {
+ sl4f.Sl4f sl4fDriver;
+ sl4f.Dump dump;
+ Directory dumpDir;
+ sl4f.Performance performance;
+
+ setUp(() async {
+ sl4fDriver = sl4f.Sl4f.fromEnvironment();
+ await sl4fDriver.startServer();
+ dumpDir = await Directory.systemTemp.createTemp('temp-dump');
+ dump = sl4f.Dump(dumpDir.path);
+
+ performance = sl4f.Performance(sl4fDriver, dump);
+ });
+
+ tearDown(() async {
+ dumpDir.deleteSync(recursive: true);
+
+ await sl4fDriver.stopServer();
+ sl4fDriver.close();
+ });
+
+ group(sl4f.Sl4f, () {
+ test('trace and download', () async {
+ expect(
+ await performance.trace(
+ duration: Duration(seconds: 2), traceName: 'test-trace'),
+ equals(true));
+
+ await performance.downloadTraceFile('test-trace');
+
+ expect(
+ dumpDir.listSync().map((f) => f.path.split('/').last),
+ unorderedMatches([
+ matches(RegExp(r'-test-trace-trace.json$')),
+ ]));
+ });
+ }, timeout: Timeout(_timeout));
+}