From 11fc1fd48556ff123487cdf16bfb3ab478084970 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 30 Jul 2013 20:58:55 -0700 Subject: [PATCH 1/2] test: Use a test extern in various foreign fn tests --- src/rt/rust_test_helpers.cpp | 5 +++++ src/rt/rustrt.def.in | 1 + src/test/auxiliary/anon-extern-mod-cross-crate-1.rs | 2 +- src/test/auxiliary/foreign_lib.rs | 2 +- src/test/run-pass/anon-extern-mod-cross-crate-2.rs | 2 +- src/test/run-pass/anon-extern-mod.rs | 4 ++-- src/test/run-pass/foreign-dupe.rs | 8 ++++---- src/test/run-pass/foreign-no-abi.rs | 4 ++-- src/test/run-pass/invoke-external-foreign.rs | 2 +- 9 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/rt/rust_test_helpers.cpp b/src/rt/rust_test_helpers.cpp index 2cfd5cf1eb6..492874a0c26 100644 --- a/src/rt/rust_test_helpers.cpp +++ b/src/rt/rust_test_helpers.cpp @@ -176,3 +176,8 @@ rust_dbg_next_port(uintptr_t base_port) { next_offset += 1; return this_port; } + +extern "C" CDECL intptr_t +rust_get_test_int() { + return 1; +} diff --git a/src/rt/rustrt.def.in b/src/rt/rustrt.def.in index fc7796ef66c..b0c68e639b8 100644 --- a/src/rt/rustrt.def.in +++ b/src/rt/rustrt.def.in @@ -266,3 +266,4 @@ rust_set_exit_status_newrt rust_get_exit_status_newrt rust_take_change_dir_lock rust_drop_change_dir_lock +rust_get_test_int \ No newline at end of file diff --git a/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs index 4bdb6d351d8..3c73bd1b7f2 100644 --- a/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs +++ b/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs @@ -18,5 +18,5 @@ use std::libc; extern { - pub fn rust_get_argc() -> libc::c_int; + pub fn rust_get_test_int() -> libc::intptr_t; } diff --git a/src/test/auxiliary/foreign_lib.rs b/src/test/auxiliary/foreign_lib.rs index 90399ea48a5..d67e329b04e 100644 --- a/src/test/auxiliary/foreign_lib.rs +++ b/src/test/auxiliary/foreign_lib.rs @@ -14,6 +14,6 @@ pub mod rustrt { use std::libc; extern { - pub fn rust_get_argc() -> libc::c_int; + fn rust_get_test_int() -> libc::intptr_t; } } diff --git a/src/test/run-pass/anon-extern-mod-cross-crate-2.rs b/src/test/run-pass/anon-extern-mod-cross-crate-2.rs index 4eeb85469de..3f1bd830462 100644 --- a/src/test/run-pass/anon-extern-mod-cross-crate-2.rs +++ b/src/test/run-pass/anon-extern-mod-cross-crate-2.rs @@ -16,6 +16,6 @@ use anonexternmod::*; pub fn main() { unsafe { - rust_get_argc(); + rust_get_test_int(); } } diff --git a/src/test/run-pass/anon-extern-mod.rs b/src/test/run-pass/anon-extern-mod.rs index 8e03a6393b4..b305007d8d2 100644 --- a/src/test/run-pass/anon-extern-mod.rs +++ b/src/test/run-pass/anon-extern-mod.rs @@ -13,11 +13,11 @@ use std::libc; #[abi = "cdecl"] #[link_name = "rustrt"] extern { - fn rust_get_argc() -> libc::c_int; + fn rust_get_test_int() -> libc::intptr_t; } pub fn main() { unsafe { - let _ = rust_get_argc(); + let _ = rust_get_test_int(); } } diff --git a/src/test/run-pass/foreign-dupe.rs b/src/test/run-pass/foreign-dupe.rs index c26a1f75b3e..574ef59f0b6 100644 --- a/src/test/run-pass/foreign-dupe.rs +++ b/src/test/run-pass/foreign-dupe.rs @@ -17,7 +17,7 @@ mod rustrt1 { #[abi = "cdecl"] #[link_name = "rustrt"] extern { - pub fn rust_get_argc() -> libc::c_int; + fn rust_get_test_int() -> libc::intptr_t; } } @@ -27,13 +27,13 @@ mod rustrt2 { #[abi = "cdecl"] #[link_name = "rustrt"] extern { - pub fn rust_get_argc() -> libc::c_int; + fn rust_get_test_int() -> libc::intptr_t; } } pub fn main() { unsafe { - rustrt1::rust_get_argc(); - rustrt2::rust_get_argc(); + rustrt1::rust_get_test_int(); + rustrt2::rust_get_test_int(); } } diff --git a/src/test/run-pass/foreign-no-abi.rs b/src/test/run-pass/foreign-no-abi.rs index 203e31e859b..d914d52adf5 100644 --- a/src/test/run-pass/foreign-no-abi.rs +++ b/src/test/run-pass/foreign-no-abi.rs @@ -14,12 +14,12 @@ mod rustrt { use std::libc; extern { - pub fn get_task_id() -> libc::intptr_t; + fn rust_get_test_int() -> libc::intptr_t; } } pub fn main() { unsafe { - rustrt::get_task_id(); + rustrt::rust_get_test_int(); } } diff --git a/src/test/run-pass/invoke-external-foreign.rs b/src/test/run-pass/invoke-external-foreign.rs index 15f08ca23e7..4ccd5355987 100644 --- a/src/test/run-pass/invoke-external-foreign.rs +++ b/src/test/run-pass/invoke-external-foreign.rs @@ -19,6 +19,6 @@ extern mod foreign_lib; pub fn main() { unsafe { - let foo = foreign_lib::rustrt::rust_get_argc(); + let foo = foreign_lib::rustrt::rust_get_test_int(); } } From 0a87589b94bc1ca17fdfeb35f5b029762fe678a8 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 30 Jul 2013 21:51:18 -0700 Subject: [PATCH 2/2] test: Remove a test of the oldsched runtime api --- src/test/run-pass/rt-sched-1.rs | 60 --------------------------------- 1 file changed, 60 deletions(-) delete mode 100644 src/test/run-pass/rt-sched-1.rs diff --git a/src/test/run-pass/rt-sched-1.rs b/src/test/run-pass/rt-sched-1.rs deleted file mode 100644 index e110ac01065..00000000000 --- a/src/test/run-pass/rt-sched-1.rs +++ /dev/null @@ -1,60 +0,0 @@ -// 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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// Tests of the runtime's scheduler interface - -use std::cast; -use std::comm::*; -use std::libc; - -pub type sched_id = int; -pub type task_id = *libc::c_void; - -pub type task = *libc::c_void; -pub type closure = *libc::c_void; - -mod rustrt { - use super::{closure, sched_id, task, task_id}; - - use std::libc; - - extern { - pub fn rust_new_sched(num_threads: libc::uintptr_t) -> sched_id; - pub fn rust_get_sched_id() -> sched_id; - pub fn rust_new_task_in_sched(id: sched_id) -> task_id; - pub fn start_task(id: task_id, f: closure); - } -} - -pub fn main() { - unsafe { - let (po, ch) = stream(); - let parent_sched_id = rustrt::rust_get_sched_id(); - error!("parent %?", parent_sched_id); - let num_threads = 1u; - let new_sched_id = rustrt::rust_new_sched(num_threads); - error!("new_sched_id %?", new_sched_id); - let new_task_id = rustrt::rust_new_task_in_sched(new_sched_id); - assert!(!new_task_id.is_null()); - let f: ~fn() = || { - unsafe { - let child_sched_id = rustrt::rust_get_sched_id(); - error!("child_sched_id %?", child_sched_id); - assert!(child_sched_id != parent_sched_id); - assert_eq!(child_sched_id, new_sched_id); - ch.send(()); - } - }; - let fptr = cast::transmute(&f); - rustrt::start_task(new_task_id, fptr); - cast::forget(f); - po.recv(); - } -}