Skip to content

Commit

Permalink
Some basic acceptance tests for better SVH.
Browse files Browse the repository at this point in the history
  • Loading branch information
pnkfelix committed May 15, 2014
1 parent b9ed9ed commit a92d162
Show file tree
Hide file tree
Showing 20 changed files with 615 additions and 0 deletions.
37 changes: 37 additions & 0 deletions src/test/auxiliary/svh-a-base.rs
@@ -0,0 +1,37 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

pub fn foo<T:U>(_: int) -> int {
3
}

pub fn an_unused_name() -> int {
4
}
37 changes: 37 additions & 0 deletions src/test/auxiliary/svh-a-change-lit.rs
@@ -0,0 +1,37 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

pub fn foo<T:U>(_: int) -> int {
0
}

pub fn an_unused_name() -> int {
4
}
39 changes: 39 additions & 0 deletions src/test/auxiliary/svh-a-change-significant-cfg.rs
@@ -0,0 +1,39 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

#[cfg(some_flag)]
pub fn foo<T:U>(_: int) -> int {
3
}

#[cfg(not(some_flag))]
pub fn an_unused_name() -> int {
4
}
37 changes: 37 additions & 0 deletions src/test/auxiliary/svh-a-change-trait-bound.rs
@@ -0,0 +1,37 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

pub fn foo<T:V>(_: int) -> int {
3
}

pub fn an_unused_name() -> int {
4
}
38 changes: 38 additions & 0 deletions src/test/auxiliary/svh-a-comment.rs
@@ -0,0 +1,38 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

pub fn foo<T:U>(_: int) -> int {
// a comment does not affect the svh
3
}

pub fn an_unused_name() -> int {
4
}
40 changes: 40 additions & 0 deletions src/test/auxiliary/svh-a-doc.rs
@@ -0,0 +1,40 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

// Adding some documentation does not affect the svh.

/// foo always returns three.
pub fn foo<T:U>(_: int) -> int {
3
}

pub fn an_unused_name() -> int {
4
}
39 changes: 39 additions & 0 deletions src/test/auxiliary/svh-a-macro.rs
@@ -0,0 +1,39 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

pub fn foo<T:U>(_: int) -> int {
// a macro invocation in a function body does not affect the svh,
// as long as it yields the same code.
three!()
}

pub fn an_unused_name() -> int {
4
}
37 changes: 37 additions & 0 deletions src/test/auxiliary/svh-a-no-change.rs
@@ -0,0 +1,37 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

pub fn foo<T:U>(_: int) -> int {
3
}

pub fn an_unused_name() -> int {
4
}
39 changes: 39 additions & 0 deletions src/test/auxiliary/svh-a-redundant-cfg.rs
@@ -0,0 +1,39 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

// cfg attribute does not affect the svh, as long as it yields the same code.
#[cfg(not(an_unused_name))]
pub fn foo<T:U>(_: int) -> int {
3
}

pub fn an_unused_name() -> int {
4
}
39 changes: 39 additions & 0 deletions src/test/auxiliary/svh-a-whitespace.rs
@@ -0,0 +1,39 @@
// 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.

//! The `svh-a-*.rs` files are all deviations from the base file
//! svh-a-base.rs with some difference (usually in `fn foo`) that
//! should not affect the strict version hash (SVH) computation
//! (#14132).

#![feature(macro_rules)]

#![crate_id = "a"]

macro_rules! three {
() => { 3 }
}

pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

static A_CONSTANT : int = 2;

pub fn foo<T:U>(_: int) -> int {

3

}

pub fn an_unused_name() -> int {
4
}

0 comments on commit a92d162

Please sign in to comment.