提交 812637e6 编写于 作者: A Alex Crichton

test: Fix tests for crate_id removal

This involved removing some tests whose functionality was removed such as many
of the crateresolve tests
上级 cc3c8bbf
......@@ -8,8 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="crateresolve1#0.1"]
// compile-flags:-C extra-filename=-1
#![crate_name = "crateresolve1"]
#![crate_type = "lib"]
pub fn f() -> int { 10 }
......@@ -8,8 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="crateresolve1#0.2"]
// compile-flags:-C extra-filename=-2
#![crate_name = "crateresolve1"]
#![crate_type = "lib"]
pub fn f() -> int { 20 }
......@@ -8,8 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="crateresolve1#0.3"]
// compile-flags:-C extra-filename=-3
#![crate_name = "crateresolve1"]
#![crate_type = "lib"]
pub fn f() -> int { 30 }
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="crateresolve2#0.1"]
#![crate_type = "lib"]
pub fn f() -> int { 10 }
......@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="externcallback#0.1"]
#![crate_name="externcallback"]
#![crate_type = "lib"]
extern crate libc;
......
......@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
extern crate foo = ""; //~ ERROR: malformed crate id
extern crate bar = "#a"; //~ ERROR: malformed crate id
extern crate foo = ""; //~ ERROR: crate name must not be empty
fn main() {}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
......@@ -8,8 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="crateresolve2#0.2"]
extern crate bar = "#a"; //~ ERROR: invalid character in crate name: `#`
#![crate_type = "lib"]
fn main() {}
pub fn f() -> int { 20 }
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:crateresolve2-1.rs
// aux-build:crateresolve2-2.rs
// aux-build:crateresolve2-3.rs
// error-pattern:using multiple versions of crate `crateresolve2`
extern crate crateresolve2 = "crateresolve2#0.1";
mod m {
pub extern crate crateresolve2 = "crateresolve2#0.2";
}
fn main() {
let x: int = false;
}
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:crateresolve5-1.rs
// aux-build:crateresolve5-2.rs
extern crate cr5_1 = "crateresolve5#0.1";
extern crate cr5_2 = "crateresolve5#0.2";
fn main() {
// Nominal types from two multiple versions of a crate are different types
assert!(cr5_1::nominal() == cr5_2::nominal()); //~ ERROR mismatched types: expected
}
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:issue-11908-1.rs
// ignore-android this test is incompatible with the android test runner
// error-pattern: multiple dylib candidates for `url` found
// This test ensures that if you have the same rlib or dylib at two locations
// in the same path that you don't hit an assertion in the compiler.
//
// Note that this relies on `liburl` to be in the path somewhere else,
// and then our aux-built libraries will collide with liburl (they have
// the same version listed)
extern crate url;
fn main() {}
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:issue-11908-2.rs
// no-prefer-dynamic
// ignore-android this test is incompatible with the android test runner
// error-pattern: multiple rlib candidates for `url` found
// see comments in issue-11908-1 for what's going on here
extern crate url;
fn main() {}
......@@ -6,7 +6,6 @@ TARGET_RPATH_DIR:=$(TARGET_RPATH_DIR):$(TMPDIR)
all:
$(RUSTC) lib.rs
ln -nsf $(call DYLIB,boot-*) $(call DYLIB,boot)
$(CC) main.c -o $(call RUN_BINFILE,main) $(call RPATH_LINK_SEARCH,$(HOST_LIB_DIR)) -lboot
$(call RUN,main)
$(call REMOVE_DYLIBS,boot)
......
......@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="boot#0.1"]
#![crate_name="boot"]
#![crate_type="dylib"]
extern crate rustuv;
......
......@@ -6,7 +6,6 @@ TARGET_RPATH_DIR:=$(TARGET_RPATH_DIR):$(TMPDIR)
all:
$(RUSTC) lib.rs
ln -nsf $(call DYLIB,boot-*) $(call DYLIB,boot)
$(CC) main.c -o $(call RUN_BINFILE,main) $(call RPATH_LINK_SEARCH,$(HOST_LIB_DIR)) -lboot
$(call RUN,main)
$(call REMOVE_DYLIBS,boot)
......
......@@ -4,7 +4,6 @@ HOST_LIB_DIR=$(TMPDIR)/../../../stage$(RUST_BUILD_STAGE)/lib
all:
$(RUSTC) foo.rs
ln -s $(call DYLIB,foo-*) $(call DYLIB,foo)
$(CC) bar.c -lfoo -o $(call RUN_BINFILE,bar) $(call RPATH_LINK_SEARCH,$(HOST_LIB_DIR)) -Wl,-rpath,$(TMPDIR)
$(call RUN,bar)
$(call REMOVE_DYLIBS,foo)
......
......@@ -10,7 +10,6 @@ endif
ifneq ($(shell uname),FreeBSD)
all:
$(RUSTC) foo.rs
ln -s $(call STATICLIB,foo-*) $(call STATICLIB,foo)
$(CC) bar.c -lfoo -o $(call RUN_BINFILE,bar) $(EXTRAFLAGS) -lstdc++
$(call RUN,bar)
rm $(call STATICLIB,foo*)
......
-include ../tools.mk
all:
[ `$(RUSTC) --crate-id crate.rs` = "foo#0.11.0" ]
[ `$(RUSTC) --crate-name crate.rs` = "foo" ]
[ `$(RUSTC) --crate-file-name crate.rs` = "foo" ]
[ `$(RUSTC) --crate-file-name --crate-type=lib --test crate.rs` = "foo" ]
......
......@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id = "foo#0.11.0"]
#![crate_name = "foo"]
// Querying about the crate metadata should *not* parse the entire crate, it
// only needs the crate attributes (which are guaranteed to be at the top) be
......
......@@ -8,5 +8,5 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id = "mylib"]
#![crate_name = "mylib"]
#![crate_type = "lib"]
......@@ -8,5 +8,5 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id = "mylib"]
#![crate_name = "mylib"]
#![crate_type = "rlib"]
......@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="foo#0.1"]
#![crate_name = "foo"]
pub mod foo;
pub mod bar;
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_name = "a"]
#![crate_type = "rlib"]
......
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_name = "b"]
#![crate_type = "rlib"]
......
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_name = "c"]
#![crate_type = "rlib"]
......
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#[cfg(before)] extern crate a;
extern crate b;
extern crate c;
......
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
extern crate bar;
fn main() {}
# This test ensures that if you have the same rlib or dylib at two locations
# in the same path that you don't hit an assertion in the compiler.
#
# Note that this relies on `liburl` to be in the path somewhere else,
# and then our aux-built libraries will collide with liburl (they have
# the same version listed)
-include ../tools.mk
all:
mkdir $(TMPDIR)/other
$(RUSTC) foo.rs --crate-type=dylib
$(RUSTC) foo.rs --crate-type=dylib -o $(TMPDIR)/other/libfoo.so
$(RUSTC) bar.rs -L $(TMPDIR)/other 2>&1 | \
grep "multiple dylib candidates"
rm -rf $(TMPDIR)
mkdir -p $(TMPDIR)/other
$(RUSTC) foo.rs --crate-type=rlib
$(RUSTC) foo.rs --crate-type=rlib -o $(TMPDIR)/other/libfoo.rlib
$(RUSTC) bar.rs -L $(TMPDIR)/other 2>&1 | \
grep "multiple rlib candidates"
......@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// no-prefer-dynamic
extern crate foo;
#![crate_id = "url#0.11.0"]
#![crate_type = "rlib"]
fn main() {}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
......@@ -8,6 +8,4 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// error-pattern:can't find crate for `std`
extern crate std = "std#bogus";
#![crate_name = "foo"]
......@@ -5,6 +5,5 @@ CC := $(CC:-g=)
all:
$(RUSTC) foo.rs -Z lto
ln -s $(call STATICLIB,foo-*) $(call STATICLIB,foo)
$(CC) bar.c -lfoo -o $(call RUN_BINFILE,bar) $(EXTRACFLAGS) -lstdc++
$(call RUN,bar)
......@@ -8,4 +8,4 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#[crate_type = "rlib"];
#![crate_type = "rlib"]
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
extern crate foo1;
extern crate foo2;
......
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_name = "foo"]
#![crate_type = "rlib"]
......
-include ../tools.mk
all:
$(RUSTC) foo.rs -C metadata=a -C extra-filename=-1 --crate-type=rlib
$(RUSTC) foo.rs -C metadata=b -C extra-filename=-2 --crate-type=rlib
$(RUSTC) bar.rs \
--extern foo1=$(TMPDIR)/libfoo-1.rlib \
--extern foo2=$(TMPDIR)/libfoo-2.rlib \
2>&1 | grep "using multiple versions of crate .foo."
......@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// no-prefer-dynamic
extern crate foo1;
extern crate foo2;
#![crate_id = "url#0.11.0"]
#![crate_type = "dylib"]
fn main() {}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
......@@ -8,8 +8,4 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id="crateresolve2#0.3"]
#![crate_type = "lib"]
pub fn f() -> int { 30 }
pub fn foo() {}
......@@ -8,6 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![crate_id = "bar"]
#![crate_name = "bar"]
fn main() {}
-include ../tools.mk
all:
$(RUSTC) foo.rs -o $(TMPDIR)/.foo
rm $(TMPDIR)/.foo
$(RUSTC) foo.rs -o $(TMPDIR)/.foo.bar
rm $(TMPDIR)/.foo.bar
$(RUSTC) foo.rs -o $(TMPDIR)/+foo+bar
rm $(TMPDIR)/$(call BIN,+foo+bar)
$(RUSTC) foo.rs -o $(TMPDIR)/.foo 2>&1 \
| grep "invalid character in crate name:"
$(RUSTC) foo.rs -o $(TMPDIR)/.foo.bar 2>&1 \
| grep "invalid character in crate name:"
$(RUSTC) foo.rs -o $(TMPDIR)/+foo+bar 2>&1 \
| grep "invalid character in crate name:"
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:crateresolve1-1.rs
// aux-build:crateresolve1-2.rs
// aux-build:crateresolve1-3.rs
extern crate crateresolve1 = "crateresolve1#0.2";
pub fn main() {
assert_eq!(crateresolve1::f(), 20);
}
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:crateresolve2-1.rs
// aux-build:crateresolve2-2.rs
// aux-build:crateresolve2-3.rs
mod a {
extern crate crateresolve2 = "crateresolve2#0.1";
pub fn f() { assert!(crateresolve2::f() == 10); }
}
mod b {
extern crate crateresolve2 = "crateresolve2#0.2";
pub fn f() { assert!(crateresolve2::f() == 20); }
}
mod c {
extern crate crateresolve2 = "crateresolve2#0.3";
pub fn f() { assert!(crateresolve2::f() == 30); }
}
pub fn main() {
a::f();
b::f();
c::f();
}
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:crateresolve3-1.rs
// aux-build:crateresolve3-2.rs
// verify able to link with crates with same name but different versions
// as long as no name collision on invoked functions.
mod a {
extern crate crateresolve3 = "crateresolve3#0.1";
pub fn f() { assert!(crateresolve3::f() == 10); }
}
mod b {
extern crate crateresolve3 = "crateresolve3#0.2";
pub fn f() { assert!(crateresolve3::g() == 20); }
}
pub fn main() {
a::f();
b::f();
}
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:crateresolve4a-1.rs
// aux-build:crateresolve4a-2.rs
// aux-build:crateresolve4b-1.rs
// aux-build:crateresolve4b-2.rs
pub mod a {
extern crate crateresolve4b = "crateresolve4b#0.1";
pub fn f() { assert!(crateresolve4b::f() == 20); }
}
pub mod b {
extern crate crateresolve4b = "crateresolve4b#0.2";
pub fn f() { assert!(crateresolve4b::g() == 10); }
}
pub fn main() {
a::f();
b::f();
}
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:crateresolve5-1.rs
// aux-build:crateresolve5-2.rs
extern crate cr5_1 = "crateresolve5#0.1";
extern crate cr5_2 = "crateresolve5#0.2";
pub fn main() {
// Structural types can be used between two versions of the same crate
assert!(cr5_1::struct_nameval().name == cr5_2::struct_nameval().name);
assert!(cr5_1::struct_nameval().val == cr5_2::struct_nameval().val);
// Make sure these are actually two different crates
assert!(cr5_1::f() == 10 && cr5_2::f() == 20);
}
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:crateresolve8-1.rs
#![crate_id="crateresolve8#0.1"]
extern crate crateresolve8 = "crateresolve8#0.1";
//extern crate crateresolve8(vers = "0.1");
pub fn main() {
assert_eq!(crateresolve8::f(), 20);
}
......@@ -10,7 +10,7 @@
//aux-build:extern-crosscrate-source.rs
extern crate externcallback = "externcallback#0.1";
extern crate externcallback;
fn fact(n: uint) -> uint {
unsafe {
......
......@@ -15,13 +15,11 @@
#![no_std]
extern crate std;
extern crate zed = "std";
extern crate bar = "std#0.11.0";
use std::str;
use x = zed::str;
mod baz {
pub use bar::str;
pub use x = std::str;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册