Merge pull request #25 from caffinatedmonkey/hop_support

Added support for using the Hop, updated package version constraints
diff --git a/pubspec.yaml b/pubspec.yaml
index 5936ee6..b76be7a 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -4,6 +4,8 @@
 description: The official Dart project benchmark harness.
 homepage: http://www.dartlang.org
 dependencies:
-  browser: any
+  browser: ">=0.10.0+2 <0.11.0"
 dev_dependencies:
-  unittest: any
+  unittest: ">=0.10.0 <0.11.0"
+  hop: ">=0.30.3 <0.31.0"
+  path: ">=1.1.0 <2.0.0"
diff --git a/test/all.dart b/test/all.dart
deleted file mode 100644
index 1c7afe6..0000000
--- a/test/all.dart
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) 2014, Google Inc. 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 all_test;
-
-import 'benchmark_harness_test.dart' as benchmark_harness_test;
-import 'result_emitter_test.dart' as result_emitter_test;
-
-void main() {
-  benchmark_harness_test.main();
-  result_emitter_test.main();
-}
diff --git a/test/drone.sh b/test/drone.sh
index 011d231..2568f38 100755
--- a/test/drone.sh
+++ b/test/drone.sh
@@ -2,10 +2,7 @@
 pub install
 
 # analyze the code
-dartanalyzer example/Template.dart
-dartanalyzer lib/benchmark_harness.dart
-dartanalyzer test/all.dart
-dartanalyzer test/benchmark_harness_test.dart
+dart tool/hop_runner.dart analyze_all
 
 # run the tests
-dart test/all.dart
+dart tool/hop_runner.dart test
diff --git a/tool/hop_runner.dart b/tool/hop_runner.dart
new file mode 100755
index 0000000..3f7b7c8
--- /dev/null
+++ b/tool/hop_runner.dart
@@ -0,0 +1,37 @@
+#!/usr/bin/env dart
+library hop_runner;
+
+import 'dart:io';
+import 'dart:async';
+
+import 'package:hop/hop.dart';
+import 'package:hop/hop_tasks.dart';
+
+import 'package:path/path.dart' as path;
+
+import '../test/benchmark_harness_test.dart' as benchmark_harness_test;
+import '../test/result_emitter_test.dart' as result_emitter_test;
+
+void main(List<String> args) {
+  addTask('analyze_libs', createAnalyzerTask(_getDartFiles('lib')));
+  addTask('analyze_examples', createAnalyzerTask(_getDartFiles('example')));
+  addTask('analyze_tests', createAnalyzerTask(_getDartFiles('test')));
+
+  addChainedTask('analyze_all',
+      ['analyze_libs', 'analyze_examples', 'analyze_tests']);
+
+  addTask('test', createUnitTestTask((){
+    benchmark_harness_test.main();
+    result_emitter_test.main();
+  }));
+
+  runHop(args);
+}
+
+Future<List<String>> _getDartFiles(String directory) =>
+  new Directory(directory)
+    .list()
+    .where((FileSystemEntity fse) => fse is File)
+    .map((File file) => file.path)
+    .where((String filePath) => path.extension(filePath) == '.dart')
+    .toList();