Skip to content

Commit

Permalink
Add tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
luqmana committed Nov 17, 2014
1 parent 04a02ff commit acd890d
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/test/compile-fail/linkage4.rs
@@ -0,0 +1,15 @@
// 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.

#[linkage = "external"]
static foo: int = 0;
//~^ ERROR: the `linkage` attribute is experimental and not portable

fn main() {}
8 changes: 8 additions & 0 deletions src/test/run-make/linkage-attr-on-static/Makefile
@@ -0,0 +1,8 @@
-include ../tools.mk

all:
$(CC) foo.c -c -o $(TMPDIR)/foo.o
$(AR) rcs $(TMPDIR)/libfoo.a $(TMPDIR)/foo.o
$(RUSTC) bar.rs -lfoo -L $(TMPDIR)
$(call RUN,bar) || exit 1

25 changes: 25 additions & 0 deletions src/test/run-make/linkage-attr-on-static/bar.rs
@@ -0,0 +1,25 @@
// 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.

#![feature(linkage)]

#[no_mangle]
#[linkage = "external"]
static BAZ: i32 = 21;

extern {
fn what() -> i32;
}

fn main() {
unsafe {
assert_eq!(what(), BAZ);
}
}
7 changes: 7 additions & 0 deletions src/test/run-make/linkage-attr-on-static/foo.c
@@ -0,0 +1,7 @@
#include <stdint.h>

extern int32_t BAZ;

int32_t what() {
return BAZ;
}

0 comments on commit acd890d

Please sign in to comment.