// Copyright (c) 2013, 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.

library testrunner_test;

import 'package:unittest/unittest.dart';

foo(bool x) => x;

main() {
  group('group1', () {
    test('test1', () {
      expect(true, isFalse);
    });
  });
  group('group2', () {
    test('test2', () {
      foo(3);
      expect(true, isTrue);
    });
  });
}

