Skip to content

Commit c0fbd01

Browse files
committed
update test
1 parent 62a1343 commit c0fbd01

File tree

3 files changed

+30
-23
lines changed

3 files changed

+30
-23
lines changed

tests/run-pass/backtrace-api.rs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,24 @@
11
// normalize-stderr-test ".*/(rust[^/]*|checkout)/library/" -> "RUSTLIB/"
22
// normalize-stderr-test "RUSTLIB/(.*):\d+:\d+ "-> "RUSTLIB/$1:LL:COL "
33
// normalize-stderr-test "::<.*>" -> ""
4-
#![feature(allocator_api)]
54

6-
use std::alloc::System;
7-
8-
#[inline(never)] fn func_a() -> Box<[*mut ()], System> { func_b::<u8>() }
9-
#[inline(never)] fn func_b<T>() -> Box<[*mut ()], System> { func_c() }
5+
#[inline(never)] fn func_a() -> *mut [*mut ()] { func_b::<u8>() }
6+
#[inline(never)] fn func_b<T>() -> *mut [*mut ()] { func_c() }
107

118
macro_rules! invoke_func_d {
129
() => { func_d() }
1310
}
1411

15-
#[inline(never)] fn func_c() -> Box<[*mut ()], System> { invoke_func_d!() }
16-
#[inline(never)] fn func_d() -> Box<[*mut ()], System> { unsafe { miri_get_backtrace(0) } }
12+
#[inline(never)] fn func_c() -> *mut [*mut ()] { invoke_func_d!() }
13+
#[inline(never)] fn func_d() -> *mut [*mut ()] { unsafe { miri_get_backtrace(0) } }
1714

1815
fn main() {
1916
let mut seen_main = false;
2017
let frames = func_a();
21-
for frame in frames.into_iter() {
18+
for frame in unsafe{ &*frames }.into_iter() {
2219
let miri_frame = unsafe { miri_resolve_frame(*frame, 0) };
23-
let name = std::str::from_utf8(&miri_frame.name).unwrap();
24-
let filename = std::str::from_utf8(&miri_frame.filename).unwrap();
20+
let name = unsafe { std::str::from_utf8(&*miri_frame.name).unwrap() };
21+
let filename = unsafe { std::str::from_utf8(&*miri_frame.filename).unwrap() };
2522

2623
if name == "func_a" {
2724
assert_eq!(func_a as *mut (), miri_frame.fn_ptr);
@@ -36,22 +33,32 @@ fn main() {
3633
println!("{}", out);
3734
seen_main = name == "main";
3835
}
36+
37+
unsafe {
38+
miri_deallocate_backtrace(miri_frame.name as *mut ());
39+
miri_deallocate_backtrace(miri_frame.filename as *mut ());
40+
}
41+
}
42+
43+
unsafe {
44+
miri_deallocate_backtrace(frames as *mut ());
3945
}
4046
}
4147

4248
// This goes at the bottom of the file so that we can change it
4349
// without disturbing line numbers of the functions in the backtrace.
4450

4551
extern "Rust" {
46-
fn miri_get_backtrace(flags: u64) -> Box<[*mut ()], System>;
52+
fn miri_get_backtrace(flags: u64) -> *mut [*mut ()];
4753
fn miri_resolve_frame(ptr: *mut (), flags: u64) -> MiriFrame;
54+
fn miri_deallocate_backtrace(ptr: *mut ());
4855
}
4956

5057
#[derive(Debug)]
5158
#[repr(C)]
5259
struct MiriFrame {
53-
name: Box<[u8], System>,
54-
filename: Box<[u8], System>,
60+
name: *mut [u8],
61+
filename: *mut [u8],
5562
lineno: u32,
5663
colno: u32,
5764
fn_ptr: *mut (),

tests/run-pass/backtrace-api.stderr

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
$DIR/backtrace-api.rs:16:67 (func_d)
2-
$DIR/backtrace-api.rs:15:58 (func_c)
3-
$DIR/backtrace-api.rs:9:61 (func_b)
4-
$DIR/backtrace-api.rs:8:58 (func_a)
5-
$DIR/backtrace-api.rs:20:18 (main)
1+
$DIR/backtrace-api.rs:13:59 (func_d)
2+
$DIR/backtrace-api.rs:12:50 (func_c)
3+
$DIR/backtrace-api.rs:6:53 (func_b)
4+
$DIR/backtrace-api.rs:5:50 (func_a)
5+
$DIR/backtrace-api.rs:17:18 (main)
66
RUSTLIB/core/src/ops/function.rs:LL:COL (<fn() as std::ops::FnOnce<()>>::call_once - shim(fn()))
77
RUSTLIB/std/src/sys_common/backtrace.rs:LL:COL (std::sys_common::backtrace::__rust_begin_short_backtrace)
88
RUSTLIB/std/src/rt.rs:LL:COL (std::rt::lang_start::{closure#0})

tests/run-pass/backtrace-api.stdout

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
$DIR/backtrace-api.rs:16:67 (func_d)
2-
$DIR/backtrace-api.rs:15:58 (func_c)
3-
$DIR/backtrace-api.rs:9:61 (func_b::<u8>)
4-
$DIR/backtrace-api.rs:8:58 (func_a)
5-
$DIR/backtrace-api.rs:20:18 (main)
1+
$DIR/backtrace-api.rs:13:59 (func_d)
2+
$DIR/backtrace-api.rs:12:50 (func_c)
3+
$DIR/backtrace-api.rs:6:53 (func_b::<u8>)
4+
$DIR/backtrace-api.rs:5:50 (func_a)
5+
$DIR/backtrace-api.rs:17:18 (main)

0 commit comments

Comments
 (0)