Merge pull request #50 from dart-lang/master

Merge null_safety branch into master
diff --git a/.travis.yml b/.travis.yml
index 55deef0..c667a40 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,16 +2,37 @@
 
 dart:
   - dev
-  - 2.1.0
 
-dart_task:
+jobs:
+  include:
+    - stage: analyze_and_format
+      name: "Analyze"
+      dart: dev
+      os: linux
+      script: dartanalyzer --enable-experiment=non-nullable --fatal-warnings --fatal-infos .
+    - stage: analyze_and_format
+      name: "Format"
+      dart: dev
+      os: linux
+      script: dartfmt -n --set-exit-if-changed .
+    - stage: test
+      name: "Vm Tests"
+      dart: dev
+      os: linux
+      script: pub run --enable-experiment=non-nullable test -p vm
+    - stage: test
+      name: "Web Tests"
+      dart: dev
+      os: linux
+      script: pub run --enable-experiment=non-nullable test -p chrome
+
+stages:
+  - analyze_and_format
   - test
-  - dartfmt
-  - dartanalyzer: --fatal-infos --fatal-warnings .
 
 # Only building master means that we don't run two builds for each pull request.
 branches:
-  only: [master]
+  only: [master, null_safety]
 
 cache:
   directories:
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 9f8005b..508ea81 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -3,6 +3,8 @@
 analyzer:
   strong-mode:
     implicit-casts: false
+  enable-experiment:
+    - non-nullable
 
 linter:
   rules:
diff --git a/example/DeltaBlue.dart b/example/DeltaBlue.dart
index c676748..02fb696 100644
--- a/example/DeltaBlue.dart
+++ b/example/DeltaBlue.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // Copyright 2011 Google Inc. All Rights Reserved.
 // Copyright 1996 John Maloney and Mario Wolczko
 //
diff --git a/example/FluidMotion/dart/FluidMotion.dart b/example/FluidMotion/dart/FluidMotion.dart
index 1031b42..e580713 100644
--- a/example/FluidMotion/dart/FluidMotion.dart
+++ b/example/FluidMotion/dart/FluidMotion.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 import 'dart:html';
 
 /// Copyright 2013 the V8 project authors. All rights reserved.
diff --git a/example/Richards.dart b/example/Richards.dart
index 79487a6..247709a 100644
--- a/example/Richards.dart
+++ b/example/Richards.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
diff --git a/example/Template.dart b/example/Template.dart
index 3f569b4..879732d 100644
--- a/example/Template.dart
+++ b/example/Template.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // Copyright 2012 Google Inc. All Rights Reserved.
 
 // Import BenchmarkBase class.
diff --git a/example/Tracer/dart/Tracer.dart b/example/Tracer/dart/Tracer.dart
index fa4a308..d3c02b2 100644
--- a/example/Tracer/dart/Tracer.dart
+++ b/example/Tracer/dart/Tracer.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // The ray tracer code in this file is written by Adam Burmister. It
 // is available in its original form from:
 //
diff --git a/example/Tracer/dart/app.dart b/example/Tracer/dart/app.dart
index 08d5ca3..7c6c359 100644
--- a/example/Tracer/dart/app.dart
+++ b/example/Tracer/dart/app.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 library ray_trace;
 
 import 'dart:html';
diff --git a/example/Tracer/dart/color.dart b/example/Tracer/dart/color.dart
index ecf8e10..5892ce8 100644
--- a/example/Tracer/dart/color.dart
+++ b/example/Tracer/dart/color.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // The ray tracer code in this file is written by Adam Burmister. It
 // is available in its original form from:
 //
diff --git a/example/Tracer/dart/engine.dart b/example/Tracer/dart/engine.dart
index 5d710e8..03aaacb 100644
--- a/example/Tracer/dart/engine.dart
+++ b/example/Tracer/dart/engine.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // The ray tracer code in this file is written by Adam Burmister. It
 // is available in its original form from:
 //
diff --git a/example/Tracer/dart/materials.dart b/example/Tracer/dart/materials.dart
index e12aeb3..de2e0dc 100644
--- a/example/Tracer/dart/materials.dart
+++ b/example/Tracer/dart/materials.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // The ray tracer code in this file is written by Adam Burmister. It
 // is available in its original form from:
 //
diff --git a/example/Tracer/dart/renderscene.dart b/example/Tracer/dart/renderscene.dart
index 5e87f41..4a25738 100644
--- a/example/Tracer/dart/renderscene.dart
+++ b/example/Tracer/dart/renderscene.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // The ray tracer code in this file is written by Adam Burmister. It
 // is available in its original form from:
 //
diff --git a/example/Tracer/dart/scene.dart b/example/Tracer/dart/scene.dart
index 3de2f09..9465ac9 100644
--- a/example/Tracer/dart/scene.dart
+++ b/example/Tracer/dart/scene.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // The ray tracer code in this file is written by Adam Burmister. It
 // is available in its original form from:
 //
diff --git a/example/Tracer/dart/shapes.dart b/example/Tracer/dart/shapes.dart
index 6fb33d4..c7d1ff6 100644
--- a/example/Tracer/dart/shapes.dart
+++ b/example/Tracer/dart/shapes.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // The ray tracer code in this file is written by Adam Burmister. It
 // is available in its original form from:
 //
diff --git a/example/Tracer/dart/vector.dart b/example/Tracer/dart/vector.dart
index 1694922..d8d7ad6 100644
--- a/example/Tracer/dart/vector.dart
+++ b/example/Tracer/dart/vector.dart
@@ -1,3 +1,4 @@
+// @dart=2.8
 // The ray tracer code in this file is written by Adam Burmister. It
 // is available in its original form from:
 //
diff --git a/pubspec.yaml b/pubspec.yaml
index 271c025..c0df645 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -5,12 +5,98 @@
 homepage: https://github.com/dart-lang/benchmark_harness
 
 environment:
-  sdk: ">=2.1.0 <3.0.0"
+  sdk: ">=2.9.0-1 <3.0.0"
 
 dev_dependencies:
   build_runner: ^1.1.0
   build_web_compilers: '>=1.0.0 <3.0.0'
-  mockito: ^4.0.0
   path: ^1.1.0
   pedantic: ^1.4.0
   test: ^1.0.0
+
+dependency_overrides:
+  test:
+    git:
+      url: git://github.com/dart-lang/test.git
+      ref: null_safety
+      path: pkgs/test
+  test_api:
+    git:
+      url: git://github.com/dart-lang/test.git
+      ref: null_safety
+      path: pkgs/test_api
+  test_core:
+    git:
+      url: git://github.com/dart-lang/test.git
+      ref: null_safety
+      path: pkgs/test_core
+  async:
+    git:
+      url: git://github.com/dart-lang/async.git
+      ref: null_safety
+  boolean_selector:
+    git:
+      url: git://github.com/dart-lang/boolean_selector.git
+      ref: null_safety
+  charcode:
+    git:
+      url: git://github.com/dart-lang/charcode.git
+      ref: null_safety
+  collection:
+    git:
+      url: git://github.com/dart-lang/collection.git
+      ref: null_safety
+  js:
+    git:
+      url: git://github.com/dart-lang/sdk.git
+      ref: null_safety-pkgs
+      path: pkg/js
+  matcher:
+    git:
+      url: git://github.com/dart-lang/matcher.git
+      ref: null_safety
+  meta:
+    git:
+      url: git://github.com/dart-lang/sdk.git
+      ref: null_safety-pkgs
+      path: pkg/meta
+  path:
+    git:
+      url: git://github.com/dart-lang/path.git
+      ref: null_safety
+  pedantic:
+    git:
+      url: git://github.com/dart-lang/pedantic.git
+      ref: null_safety
+  pool:
+    git:
+      url: git://github.com/dart-lang/pool.git
+      ref: null_safety
+  source_maps:
+    git:
+      url: git://github.com/dart-lang/source_maps.git
+      ref: null_safety
+  source_map_stack_trace:
+    git:
+      url: git://github.com/dart-lang/source_map_stack_trace.git
+      ref: null_safety
+  source_span:
+    git:
+      url: git://github.com/dart-lang/source_span.git
+      ref: null_safety
+  stack_trace:
+    git:
+      url: git://github.com/dart-lang/stack_trace.git
+      ref: null_safety
+  stream_channel:
+    git:
+      url: git://github.com/dart-lang/stream_channel.git
+      ref: null_safety
+  string_scanner:
+    git:
+      url: git://github.com/dart-lang/string_scanner.git
+      ref: null_safety
+  term_glyph:
+    git:
+      url: git://github.com/dart-lang/term_glyph.git
+      ref: null_safety
diff --git a/test/result_emitter_test.dart b/test/result_emitter_test.dart
index 0205163..540175b 100644
--- a/test/result_emitter_test.dart
+++ b/test/result_emitter_test.dart
@@ -1,7 +1,6 @@
 library result_emitter_test;
 
 import 'package:benchmark_harness/benchmark_harness.dart';
-import 'package:mockito/mockito.dart';
 
 import 'package:test/test.dart';
 
@@ -9,7 +8,14 @@
   benchmarkHarnessTest();
 }
 
-class MockResultEmitter extends Mock implements ScoreEmitter {}
+class MockResultEmitter extends ScoreEmitter {
+  int emitCount = 0;
+
+  @override
+  void emit(String name, double value) {
+    emitCount++;
+  }
+}
 
 // Create a new benchmark which has an emitter.
 class BenchmarkWithResultEmitter extends BenchmarkBase {
@@ -38,7 +44,7 @@
       var testBenchmark = BenchmarkWithResultEmitter(emitter);
       testBenchmark.report();
 
-      verify(emitter.emit(any, any)).called(1);
+      expect(emitter.emitCount, equals(1));
     });
   });
 }