Skip to content

Commit 01ecb15

Browse files
uefi-macros: Restore entry macro tests
This is a partial revert of 5894e51, where I accidentally deleted too many tests.
1 parent 98670a3 commit 01ecb15

21 files changed

+196
-0
lines changed

Cargo.lock

Lines changed: 49 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

uefi-macros/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ quote = "1.0.9"
2020
syn = { version = "2.0.4", features = ["full"] }
2121

2222
[dev-dependencies]
23+
trybuild = "1.0.61"
2324
uefi = { version = "0.20.0", default-features = false }

uefi-macros/tests/compilation.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#[test]
2+
fn ui() {
3+
let t = trybuild::TestCases::new();
4+
t.compile_fail("tests/ui/*.rs");
5+
}

uefi-macros/tests/ui/entry_bad_abi.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry]
8+
extern "C" fn main(_handle: Handle, _st: SystemTable<Boot>) -> Status {
9+
Status::SUCCESS
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: Entry method must have no ABI modifier
2+
--> tests/ui/entry_bad_abi.rs:8:1
3+
|
4+
8 | extern "C" fn main(_handle: Handle, _st: SystemTable<Boot>) -> Status {
5+
| ^^^^^^

uefi-macros/tests/ui/entry_bad_arg.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry]
8+
fn main(_handle: Handle, _st: SystemTable<Boot>, _x: usize) -> Status {
9+
Status::SUCCESS
10+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
error[E0308]: mismatched types
2+
--> tests/ui/entry_bad_arg.rs:8:1
3+
|
4+
8 | fn main(_handle: Handle, _st: SystemTable<Boot>, _x: usize) -> Status {
5+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect number of function parameters
6+
|
7+
= note: expected fn pointer `extern "efiapi" fn(uefi::Handle, uefi::table::SystemTable<uefi::table::Boot>) -> uefi::Status`
8+
found fn pointer `extern "efiapi" fn(uefi::Handle, uefi::table::SystemTable<uefi::table::Boot>, usize) -> uefi::Status`
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry]
8+
async fn main(_handle: Handle, _st: SystemTable<Boot>) -> Status {
9+
Status::SUCCESS
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: Entry method should not be async
2+
--> tests/ui/entry_bad_async.rs:8:1
3+
|
4+
8 | async fn main(_handle: Handle, _st: SystemTable<Boot>) -> Status {
5+
| ^^^^^
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry(some_arg)]
8+
fn main(_handle: Handle, _st: SystemTable<Boot>) -> Status {
9+
Status::SUCCESS
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: Entry attribute accepts no arguments
2+
--> tests/ui/entry_bad_attr_arg.rs:7:9
3+
|
4+
7 | #[entry(some_arg)]
5+
| ^^^^^^^^
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry]
8+
const fn main(_handle: Handle, _st: SystemTable<Boot>) -> Status {
9+
Status::SUCCESS
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: Entry method should not be const
2+
--> tests/ui/entry_bad_const.rs:8:1
3+
|
4+
8 | const fn main(_handle: Handle, _st: SystemTable<Boot>) -> Status {
5+
| ^^^^^
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry]
8+
fn main<T>(_handle: Handle, _st: SystemTable<Boot>) -> Status {
9+
Status::SUCCESS
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: Entry method should not be generic
2+
--> tests/ui/entry_bad_generic.rs:8:9
3+
|
4+
8 | fn main<T>(_handle: Handle, _st: SystemTable<Boot>) -> Status {
5+
| ^
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry]
8+
fn main(_handle: Handle, _st: SystemTable<Boot>) -> bool {
9+
false
10+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
error[E0308]: mismatched types
2+
--> tests/ui/entry_bad_return_type.rs:8:1
3+
|
4+
8 | fn main(_handle: Handle, _st: SystemTable<Boot>) -> bool {
5+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Status`, found `bool`
6+
|
7+
= note: expected fn pointer `extern "efiapi" fn(uefi::Handle, uefi::table::SystemTable<_>) -> Status`
8+
found fn pointer `extern "efiapi" fn(uefi::Handle, uefi::table::SystemTable<_>) -> bool`
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry]
8+
fn unnamed_image_arg(_: Handle, _st: SystemTable<Boot>) -> Status {
9+
Status::SUCCESS
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: Entry method's arguments must be named
2+
--> tests/ui/entry_unnamed_image_arg.rs:8:22
3+
|
4+
8 | fn unnamed_image_arg(_: Handle, _st: SystemTable<Boot>) -> Status {
5+
| ^
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#![allow(unused_imports)]
2+
#![no_main]
3+
4+
use uefi::prelude::*;
5+
use uefi_macros::entry;
6+
7+
#[entry]
8+
fn unnamed_table_arg(_image: Handle, _: SystemTable<Boot>) -> Status {
9+
Status::SUCCESS
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: Entry method's arguments must be named
2+
--> tests/ui/entry_unnamed_table_arg.rs:8:38
3+
|
4+
8 | fn unnamed_table_arg(_image: Handle, _: SystemTable<Boot>) -> Status {
5+
| ^

0 commit comments

Comments
 (0)