about summary refs log tree commit diff
diff options
context:
space:
mode:
authorStackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com>2025-08-14 12:26:51 +0300
committerStackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com>2025-08-14 12:26:51 +0300
commit3a250b79390e9d0258ae463c875aac6c643956db (patch)
treebc87668f867d17f34809e512d6944ccab4fcef32
parentf978932903cac8cf508ef78b8133fafd9fe5a5b8 (diff)
downloadrust-3a250b79390e9d0258ae463c875aac6c643956db.tar.gz
rust-3a250b79390e9d0258ae463c875aac6c643956db.zip
rewrite test with `#![no_core]`
-rw-r--r--tests/run-make/wasm-unexpected-features/foo.rs43
-rw-r--r--tests/run-make/wasm-unexpected-features/rmake.rs32
-rw-r--r--tests/run-make/wasm-unexpected-features/wasm32_test/Cargo.toml13
-rw-r--r--tests/run-make/wasm-unexpected-features/wasm32_test/src/lib.rs34
4 files changed, 53 insertions, 69 deletions
diff --git a/tests/run-make/wasm-unexpected-features/foo.rs b/tests/run-make/wasm-unexpected-features/foo.rs
new file mode 100644
index 00000000000..5c7aa2d6190
--- /dev/null
+++ b/tests/run-make/wasm-unexpected-features/foo.rs
@@ -0,0 +1,43 @@
+#![no_core]
+#![crate_type = "cdylib"]
+#![feature(no_core, lang_items, allocator_internals, rustc_attrs)]
+#![needs_allocator]
+#![allow(internal_features)]
+
+#[rustc_std_internal_symbol]
+unsafe fn __rust_alloc(_size: usize, _align: usize) -> *mut u8 {
+    0 as *mut u8
+}
+
+unsafe extern "Rust" {
+    #[rustc_std_internal_symbol]
+    fn __rust_alloc_error_handler(size: usize, align: usize) -> !;
+}
+
+#[used]
+static mut BUF: [u8; 1024] = [0; 1024];
+
+#[unsafe(no_mangle)]
+extern "C" fn init() {
+    unsafe {
+        __rust_alloc_error_handler(0, 0);
+    }
+}
+
+mod minicore {
+    #[lang = "pointee_sized"]
+    pub trait PointeeSized {}
+
+    #[lang = "meta_sized"]
+    pub trait MetaSized: PointeeSized {}
+
+    #[lang = "sized"]
+    pub trait Sized: MetaSized {}
+
+    #[lang = "copy"]
+    pub trait Copy {}
+    impl Copy for u8 {}
+
+    #[lang = "drop_in_place"]
+    fn drop_in_place<T>(_: *mut T) {}
+}
diff --git a/tests/run-make/wasm-unexpected-features/rmake.rs b/tests/run-make/wasm-unexpected-features/rmake.rs
index 142860c47ec..416b5ef4caa 100644
--- a/tests/run-make/wasm-unexpected-features/rmake.rs
+++ b/tests/run-make/wasm-unexpected-features/rmake.rs
@@ -2,31 +2,19 @@
 
 use std::path::Path;
 
-use run_make_support::{cargo, path, rfs, target, wasmparser};
+use run_make_support::{rfs, rustc, wasmparser};
 
 fn main() {
-    let target_dir = path("target");
-
-    cargo()
-        .args([
-            "rustc",
-            "--manifest-path",
-            "wasm32_test/Cargo.toml",
-            "--profile",
-            "release",
-            "--target",
-            "wasm32-wasip1",
-            "-Zbuild-std=core,alloc,panic_abort",
-            "--",
-            "-Clink-arg=--import-memory",
-            "-Clinker-plugin-lto=on",
-        ])
-        .env("RUSTFLAGS", "-Ctarget-cpu=mvp")
-        .env("CARGO_TARGET_DIR", &target_dir)
+    rustc()
+        .input("foo.rs")
+        .target("wasm32-wasip1")
+        .target_cpu("mvp")
+        .opt_level("z")
+        .lto("fat")
+        .linker_plugin_lto("on")
+        .link_arg("--import-memory")
         .run();
-
-    let wasm32_program_path = target_dir.join(target()).join("release").join("wasm32_program.wasm");
-    verify_features(&wasm32_program_path);
+    verify_features(Path::new("foo.wasm"));
 }
 
 fn verify_features(path: &Path) {
diff --git a/tests/run-make/wasm-unexpected-features/wasm32_test/Cargo.toml b/tests/run-make/wasm-unexpected-features/wasm32_test/Cargo.toml
deleted file mode 100644
index 9f1070e1c54..00000000000
--- a/tests/run-make/wasm-unexpected-features/wasm32_test/Cargo.toml
+++ /dev/null
@@ -1,13 +0,0 @@
-[package]
-name = "wasm32_test"
-version = "0.1.0"
-edition = "2024"
-
-[lib]
-crate-type = ["cdylib"]
-name = "wasm32_program"
-
-[profile.release]
-codegen-units = 1
-lto = "fat"
-opt-level = "z"
diff --git a/tests/run-make/wasm-unexpected-features/wasm32_test/src/lib.rs b/tests/run-make/wasm-unexpected-features/wasm32_test/src/lib.rs
deleted file mode 100644
index 123c2c1b6ca..00000000000
--- a/tests/run-make/wasm-unexpected-features/wasm32_test/src/lib.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-#![no_std]
-
-extern crate alloc;
-
-use core::alloc::{GlobalAlloc, Layout};
-use core::mem::MaybeUninit;
-
-#[global_allocator]
-static ALLOC: GlobalDlmalloc = GlobalDlmalloc;
-
-struct GlobalDlmalloc;
-
-unsafe impl GlobalAlloc for GlobalDlmalloc {
-    #[inline]
-    unsafe fn alloc(&self, _layout: Layout) -> *mut u8 {
-        core::ptr::null_mut()
-    }
-
-    #[inline]
-    unsafe fn dealloc(&self, _ptr: *mut u8, _layout: Layout) {}
-}
-
-#[used]
-static mut BUF: MaybeUninit<[u8; 1024]> = MaybeUninit::uninit();
-
-#[unsafe(no_mangle)]
-extern "C" fn init() {
-    alloc::alloc::handle_alloc_error(Layout::new::<[u8; 64 * 1024]>());
-}
-
-#[panic_handler]
-fn my_panic(_: &core::panic::PanicInfo) -> ! {
-    loop {}
-}