| Index: test/global/run/fails_if_sdk_constraint_is_unmet_test.dart | 
| diff --git a/test/global/run/recompiles_if_sdk_is_out_of_date_test.dart b/test/global/run/fails_if_sdk_constraint_is_unmet_test.dart | 
| similarity index 54% | 
| copy from test/global/run/recompiles_if_sdk_is_out_of_date_test.dart | 
| copy to test/global/run/fails_if_sdk_constraint_is_unmet_test.dart | 
| index c0c9bacd672860f9e3acf1d3defa1976ecc0b92c..2170513feed8a6dc850006e5bcc44fc22c9d4b5d 100644 | 
| --- a/test/global/run/recompiles_if_sdk_is_out_of_date_test.dart | 
| +++ b/test/global/run/fails_if_sdk_constraint_is_unmet_test.dart | 
| @@ -2,14 +2,14 @@ | 
| // 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. | 
|  | 
| -import 'package:scheduled_test/scheduled_stream.dart'; | 
| +import 'package:pub/src/exit_codes.dart' as exit_codes; | 
| import 'package:scheduled_test/scheduled_test.dart'; | 
|  | 
| import '../../descriptor.dart' as d; | 
| import '../../test_pub.dart'; | 
|  | 
| main() { | 
| -  integration('recompiles a script if the SDK version is out-of-date', () { | 
| +  integration("fails if the current SDK doesn't match the constraint", () { | 
| servePackages((builder) { | 
| builder.serve("foo", "1.0.0", contents: [ | 
| d.dir("bin", [ | 
| @@ -20,29 +20,26 @@ main() { | 
|  | 
| schedulePub(args: ["global", "activate", "foo"]); | 
|  | 
| -    d.dir(cachePath, [ | 
| -      d.dir('global_packages', [ | 
| -        d.dir('foo', [ | 
| -          d.dir('bin', [d.outOfDateSnapshot('script.dart.snapshot')]) | 
| -        ]) | 
| +    d.hostedCache([ | 
| +      d.dir("foo-1.0.0", [ | 
| +        d.libPubspec("foo", "1.0.0", sdk: "0.5.6") | 
| ]) | 
| ]).create(); | 
|  | 
| -    var pub = pubRun(global: true, args: ["foo:script"]); | 
| -    // In the real world this would just print "hello!", but since we collect | 
| -    // all output we see the precompilation messages as well. | 
| -    pub.stdout.expect("Precompiling executables..."); | 
| -    pub.stdout.expect(consumeThrough("ok")); | 
| -    pub.shouldExit(); | 
| - | 
| +    // Make the snapshot out-of-date, too, so that we load the pubspec with the | 
| +    // SDK constraint in the first place. In practice, the VM snapshot | 
| +    // invalidation logic is based on the version anyway, so this is a safe | 
| +    // assumption. | 
| d.dir(cachePath, [ | 
| d.dir('global_packages', [ | 
| d.dir('foo', [ | 
| -          d.dir('bin', [ | 
| -            d.matcherFile('script.dart.snapshot', contains('ok')) | 
| -          ]) | 
| +          d.dir('bin', [d.outOfDateSnapshot('script.dart.snapshot')]) | 
| ]) | 
| ]) | 
| -    ]).validate(); | 
| +    ]).create(); | 
| + | 
| +    schedulePub(args: ["global", "run", "foo:script"], | 
| +        error: contains("foo 1.0.0 doesn't support Dart 0.1.2+3."), | 
| +        exitCode: exit_codes.DATA); | 
| }); | 
| } | 
|  |