blob: 5b9767f9da2a9f04c84cb9120e522c9b6b34d5cf [file] [log] [blame]
// Copyright 2014 The Flutter 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:async';
import 'package:flutter_devicelab/framework/runner.dart';
import 'package:flutter_devicelab/framework/task_result.dart';
import '../common.dart';
void main() {
final isolateParams = <String, String>{'runFlutterConfig': 'false', 'timeoutInMinutes': '1'};
test('runs build and test when no args are passed', () async {
final TaskResult result = await runTask(
'smoke_test_build_test',
deviceId: 'FAKE_SUCCESS',
isolateParams: isolateParams,
);
expect(result.data!['benchmark'], 'data');
});
test('runs build only when build arg is given', () async {
final TaskResult result = await runTask(
'smoke_test_build_test',
taskArgs: <String>['--build'],
deviceId: 'FAKE_SUCCESS',
isolateParams: isolateParams,
);
expect(result.message, 'No tests run');
});
test('runs test only when test arg is given', () async {
final TaskResult result = await runTask(
'smoke_test_build_test',
taskArgs: <String>['--test'],
deviceId: 'FAKE_SUCCESS',
isolateParams: isolateParams,
);
expect(result.data!['benchmark'], 'data');
});
test('sets environment', () async {
final capturedPrintLines = StringBuffer();
await runZoned<Future<void>>(
() async {
await runTask(
'smoke_test_build_test',
taskArgs: <String>['--test'],
deviceId: 'FAKE_SUCCESS',
isolateParams: isolateParams,
);
},
zoneSpecification: ZoneSpecification(
// Intercept printing from the task.
print: (Zone self, ZoneDelegate parent, Zone zone, String line) async {
capturedPrintLines.writeln(line);
},
),
);
final capturedPrint = capturedPrintLines.toString();
expect(
capturedPrint,
allOf(
contains('with environment {'),
contains('FLUTTER_DEVICELAB_DEVICEID: FAKE_SUCCESS'),
contains('BOT: true'),
),
);
expect(capturedPrint, contains('Process terminated with exit code 0.'));
});
test('throws exception when build and test arg are given', () async {
final TaskResult result = await runTask(
'smoke_test_build_test',
taskArgs: <String>['--build', '--test'],
deviceId: 'FAKE_SUCCESS',
isolateParams: isolateParams,
);
expect(
result.message,
'Task failed: Exception: Both build and test should not be passed. Pass only one.',
);
});
test('copies artifacts when build and application binary arg are given', () async {
final TaskResult result = await runTask(
'smoke_test_build_test',
taskArgs: <String>['--build', '--application-binary-path=test'],
deviceId: 'FAKE_SUCCESS',
isolateParams: isolateParams,
);
expect(result.message, 'No tests run');
});
}