blob: 75f1a22deb60cca6c8f7b249078755d36c0fbc4c [file] [log] [blame]
// Copyright (c) 2012, 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 pub_tests;
import 'dart:io';
import 'package:path/path.dart' as path;
import 'package:scheduled_test/scheduled_process.dart';
import 'package:scheduled_test/scheduled_test.dart';
import '../lib/src/exit_codes.dart' as exit_codes;
import '../lib/src/sdk.dart' as sdk;
import 'test_pub.dart';
main() {
initConfig();
// This test is a bit funny.
//
// Pub parses the "version" file that gets generated and shipped with the SDK.
// We want to make sure that the actual version file that gets created is
// also one pub can parse. If this test fails, it means the version file's
// format has changed in a way pub didn't expect.
//
// Note that this test expects to be invoked from a Dart executable that is
// in the built SDK's "bin" directory. Note also that this invokes pub from
// the built SDK directory, and not the live pub code directly in the repo.
integration('parse the real SDK "version" file', () {
// Get the path to the pub binary in the SDK.
var pubPath = path.join(sdk.rootDirectory, 'bin',
Platform.operatingSystem == "windows" ? "pub.bat" : "pub");
var pub = new ScheduledProcess.start(pubPath, ['version']);
expect(pub.nextLine(), completion(startsWith("Pub")));
pub.shouldExit(exit_codes.SUCCESS);
});
}