incr.comp. Add tests for stable span hashing.
This commit is contained in:
parent
e355ec1c6a
commit
8b67ad69a7
7 changed files with 194 additions and 0 deletions
63
src/test/incremental/source_loc_macros.rs
Normal file
63
src/test/incremental/source_loc_macros.rs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
// This test makes sure that different expansions of the file!(), line!(),
|
||||
// column!() macros get picked up by the incr. comp. hash.
|
||||
|
||||
// revisions:rpass1 rpass2
|
||||
|
||||
// compile-flags: -Z query-dep-graph
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
|
||||
#[rustc_clean(label="Hir", cfg="rpass2")]
|
||||
fn line_same() {
|
||||
let _ = line!();
|
||||
}
|
||||
|
||||
#[rustc_clean(label="Hir", cfg="rpass2")]
|
||||
fn col_same() {
|
||||
let _ = column!();
|
||||
}
|
||||
|
||||
#[rustc_clean(label="Hir", cfg="rpass2")]
|
||||
fn file_same() {
|
||||
let _ = file!();
|
||||
}
|
||||
|
||||
#[cfg(rpass1)]
|
||||
fn line_different() {
|
||||
let _ = line!();
|
||||
}
|
||||
|
||||
#[cfg(rpass2)]
|
||||
#[rustc_dirty(label="Hir", cfg="rpass2")]
|
||||
fn line_different() {
|
||||
let _ = line!();
|
||||
}
|
||||
|
||||
#[cfg(rpass1)]
|
||||
fn col_different() {
|
||||
let _ = column!();
|
||||
}
|
||||
|
||||
#[cfg(rpass2)]
|
||||
#[rustc_dirty(label="Hir", cfg="rpass2")]
|
||||
fn col_different() {
|
||||
let _ = column!();
|
||||
}
|
||||
|
||||
fn main() {
|
||||
line_same();
|
||||
line_different();
|
||||
col_same();
|
||||
col_different();
|
||||
file_same();
|
||||
}
|
||||
17
src/test/incremental/span_hash_stable/auxiliary/mod.rs
Normal file
17
src/test/incremental/span_hash_stable/auxiliary/mod.rs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2016 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(rpass1)]
|
||||
pub mod sub2;
|
||||
|
||||
pub mod sub1;
|
||||
|
||||
#[cfg(rpass2)]
|
||||
pub mod sub2;
|
||||
15
src/test/incremental/span_hash_stable/auxiliary/sub1.rs
Normal file
15
src/test/incremental/span_hash_stable/auxiliary/sub1.rs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
#[rustc_clean(label="Hir", cfg="rpass2")]
|
||||
pub struct SomeType {
|
||||
pub x: u32,
|
||||
pub y: i64,
|
||||
}
|
||||
15
src/test/incremental/span_hash_stable/auxiliary/sub2.rs
Normal file
15
src/test/incremental/span_hash_stable/auxiliary/sub2.rs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
#[rustc_clean(label="Hir", cfg="rpass2")]
|
||||
pub struct SomeOtherType {
|
||||
pub a: i32,
|
||||
pub b: u64,
|
||||
}
|
||||
34
src/test/incremental/span_hash_stable/main.rs
Normal file
34
src/test/incremental/span_hash_stable/main.rs
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
// This test makes sure that it doesn't make a difference in which order we are
|
||||
// adding source files to the codemap. The order affects the BytePos values of
|
||||
// the spans and this test makes sure that we handle them correctly by hashing
|
||||
// file:line:column instead of raw byte offset.
|
||||
|
||||
// revisions:rpass1 rpass2
|
||||
// compile-flags: -g -Z query-dep-graph
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
|
||||
mod auxiliary;
|
||||
|
||||
fn main() {
|
||||
let _ = auxiliary::sub1::SomeType {
|
||||
x: 0,
|
||||
y: 1,
|
||||
};
|
||||
|
||||
let _ = auxiliary::sub2::SomeOtherType {
|
||||
a: 2,
|
||||
b: 3,
|
||||
};
|
||||
}
|
||||
|
||||
25
src/test/incremental/spans_insignificant_w_o_debuginfo.rs
Normal file
25
src/test/incremental/spans_insignificant_w_o_debuginfo.rs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
// This test makes sure that just changing a definition's location in the
|
||||
// source file does *not* change its incr. comp. hash, if debuginfo is disabled.
|
||||
|
||||
// revisions:rpass1 rpass2
|
||||
|
||||
// compile-flags: -Z query-dep-graph
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
|
||||
#[cfg(rpass1)]
|
||||
pub fn main() {}
|
||||
|
||||
#[cfg(rpass2)]
|
||||
#[rustc_clean(label="Hir", cfg="rpass2")]
|
||||
pub fn main() {}
|
||||
25
src/test/incremental/spans_significant_w_debuginfo.rs
Normal file
25
src/test/incremental/spans_significant_w_debuginfo.rs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
// This test makes sure that just changing a definition's location in the
|
||||
// source file also changes its incr. comp. hash, if debuginfo is enabled.
|
||||
|
||||
// revisions:rpass1 rpass2
|
||||
|
||||
// compile-flags: -g -Z query-dep-graph
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
|
||||
#[cfg(rpass1)]
|
||||
pub fn main() {}
|
||||
|
||||
#[cfg(rpass2)]
|
||||
#[rustc_dirty(label="Hir", cfg="rpass2")]
|
||||
pub fn main() {}
|
||||
Loading…
Add table
Add a link
Reference in a new issue