run_test.dart 1.45 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
// Copyright 2016 The Chromium 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 'dart:io';

import 'package:test/test.dart';

void main() {
  group('run.dart script', () {
    Future<int> runScript(List<String> testNames) async {
      List<String> options = <String>['bin/run.dart'];
      for (String testName in testNames) {
        options..addAll(<String>['-t', testName]);
      }
      Process scriptProcess = await Process.start(
        '../../bin/cache/dart-sdk/bin/dart',
        options,
      );
      return scriptProcess.exitCode;
    }

    test('Exits with code 0 when succeeds', () async {
      expect(await runScript(<String>['smoke_test_success']), 0);
    });

    test('Exits with code 1 when task throws', () async {
      expect(await runScript(<String>['smoke_test_throws']), 1);
    });

    test('Exits with code 1 when fails', () async {
      expect(await runScript(<String>['smoke_test_failure']), 1);
    });

    test('Exits with code 1 when fails to connect', () async {
      expect(await runScript(<String>['smoke_test_setup_failure']), 1);
38
    }, skip: true); // https://github.com/flutter/flutter/issues/5901
39 40 41 42 43 44 45 46 47 48 49 50

    test('Exits with code 1 when results are mixed', () async {
      expect(
        await runScript(<String>[
          'smoke_test_failure',
          'smoke_test_success',
        ]),
        1,
      );
    });
  });
}