From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- .../alloc-error-handler-bad-signature-1.rs | 18 ++++++++++++++++++ .../alloc-error-handler-bad-signature-1.stderr | 14 ++++++++++++++ .../alloc-error-handler-bad-signature-2.rs | 17 +++++++++++++++++ .../alloc-error-handler-bad-signature-2.stderr | 14 ++++++++++++++ .../alloc-error-handler-bad-signature-3.rs | 15 +++++++++++++++ .../alloc-error-handler-bad-signature-3.stderr | 8 ++++++++ src/test/ui/alloc-error/default-alloc-error-hook.rs | 19 +++++++++++++++++++ 7 files changed, 105 insertions(+) create mode 100644 src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.rs create mode 100644 src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.stderr create mode 100644 src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.rs create mode 100644 src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.stderr create mode 100644 src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.rs create mode 100644 src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.stderr create mode 100644 src/test/ui/alloc-error/default-alloc-error-hook.rs (limited to 'src/test/ui/alloc-error') diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.rs b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.rs new file mode 100644 index 000000000..41c9a265c --- /dev/null +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.rs @@ -0,0 +1,18 @@ +// compile-flags:-C panic=abort + +#![feature(alloc_error_handler)] +#![no_std] +#![no_main] + +use core::alloc::Layout; + +#[alloc_error_handler] +fn oom( + info: &Layout, //~ ERROR argument should be `Layout` +) -> () //~ ERROR return type should be `!` +{ + loop {} +} + +#[panic_handler] +fn panic(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.stderr b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.stderr new file mode 100644 index 000000000..34e09da45 --- /dev/null +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.stderr @@ -0,0 +1,14 @@ +error: return type should be `!` + --> $DIR/alloc-error-handler-bad-signature-1.rs:12:6 + | +LL | ) -> () + | ^^ + +error: argument should be `Layout` + --> $DIR/alloc-error-handler-bad-signature-1.rs:11:11 + | +LL | info: &Layout, + | ^^^^^^^ + +error: aborting due to 2 previous errors + diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.rs b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.rs new file mode 100644 index 000000000..49ea3105f --- /dev/null +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.rs @@ -0,0 +1,17 @@ +// compile-flags:-C panic=abort + +#![feature(alloc_error_handler)] +#![no_std] +#![no_main] + +struct Layout; + +#[alloc_error_handler] +fn oom( + info: Layout, //~ ERROR argument should be `Layout` +) { //~ ERROR return type should be `!` + loop {} +} + +#[panic_handler] +fn panic(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.stderr b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.stderr new file mode 100644 index 000000000..85544b0c3 --- /dev/null +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.stderr @@ -0,0 +1,14 @@ +error: return type should be `!` + --> $DIR/alloc-error-handler-bad-signature-2.rs:12:3 + | +LL | ) { + | ^ + +error: argument should be `Layout` + --> $DIR/alloc-error-handler-bad-signature-2.rs:11:11 + | +LL | info: Layout, + | ^^^^^^ + +error: aborting due to 2 previous errors + diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.rs b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.rs new file mode 100644 index 000000000..321fd954d --- /dev/null +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.rs @@ -0,0 +1,15 @@ +// compile-flags:-C panic=abort + +#![feature(alloc_error_handler)] +#![no_std] +#![no_main] + +struct Layout; + +#[alloc_error_handler] +fn oom() -> ! { //~ ERROR function should have one argument + loop {} +} + +#[panic_handler] +fn panic(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.stderr b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.stderr new file mode 100644 index 000000000..8575e7508 --- /dev/null +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.stderr @@ -0,0 +1,8 @@ +error: function should have one argument + --> $DIR/alloc-error-handler-bad-signature-3.rs:10:1 + | +LL | fn oom() -> ! { + | ^^^^^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/alloc-error/default-alloc-error-hook.rs b/src/test/ui/alloc-error/default-alloc-error-hook.rs new file mode 100644 index 000000000..100e97497 --- /dev/null +++ b/src/test/ui/alloc-error/default-alloc-error-hook.rs @@ -0,0 +1,19 @@ +// run-pass +// ignore-emscripten no processes +// ignore-sgx no processes + +use std::alloc::{Layout, handle_alloc_error}; +use std::env; +use std::process::Command; +use std::str; + +fn main() { + if env::args().len() > 1 { + handle_alloc_error(Layout::new::<[u8; 42]>()) + } + + let me = env::current_exe().unwrap(); + let output = Command::new(&me).arg("next").output().unwrap(); + assert!(!output.status.success(), "{:?} is a success", output.status); + assert_eq!(str::from_utf8(&output.stderr).unwrap(), "memory allocation of 42 bytes failed\n"); +} -- cgit v1.2.3