Skip to content

Commit 9c72bd3

Browse files
committed
tests: skip varargs tests on aarch64, as they don't work yet
1 parent 235c3f1 commit 9c72bd3

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

tests/items/src/test_varargs.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
//! feature_c_variadic,
22
3+
use crate::varargs::rust_call_printf;
4+
// See #1281. Varargs don't yet work on aarch64.
5+
#[cfg(not(target_arch = "aarch64"))]
36
use crate::varargs::{
4-
rust_call_printf, rust_call_vprintf, rust_my_printf, rust_restart_valist, rust_sample_stddev,
5-
rust_simple_vacopy, rust_valist_struct_member, rust_valist_struct_pointer_member,
7+
rust_call_vprintf, rust_my_printf, rust_restart_valist, rust_sample_stddev, rust_simple_vacopy,
8+
rust_valist_struct_member, rust_valist_struct_pointer_member,
69
};
710

811
use std::ffi::c_char;
@@ -11,7 +14,12 @@ use std::ffi::CString;
1114
#[link(name = "test")]
1215
extern "C" {
1316
fn call_printf();
17+
}
1418

19+
// See #1281. Varargs don't yet work on aarch64.
20+
#[cfg(not(target_arch = "aarch64"))]
21+
#[link(name = "test")]
22+
extern "C" {
1523
fn call_vprintf(_: *const c_char, ...);
1624

1725
fn my_printf(_: *const c_char, ...);
@@ -37,6 +45,7 @@ pub fn test_call_printf() {
3745
}
3846

3947
// Make sure we can pass through va_list arguments
48+
#[cfg(not(target_arch = "aarch64"))]
4049
pub fn test_call_vprintf() {
4150
let fmt_str = CString::new("%d, %f\n").unwrap();
4251
unsafe {
@@ -46,6 +55,7 @@ pub fn test_call_vprintf() {
4655
}
4756

4857
// Test out a small varargs function definition
58+
#[cfg(not(target_arch = "aarch64"))]
4959
pub fn test_my_printf() {
5060
let fmt_str = CString::new("%d, %f, %s\n").unwrap();
5161
let test_str = CString::new("test").unwrap();
@@ -55,6 +65,7 @@ pub fn test_my_printf() {
5565
}
5666
}
5767

68+
#[cfg(not(target_arch = "aarch64"))]
5869
pub fn test_simple_vacopy() {
5970
let fmt_str = CString::new("%d, %f\n").unwrap();
6071
unsafe {
@@ -63,6 +74,7 @@ pub fn test_simple_vacopy() {
6374
}
6475
}
6576

77+
#[cfg(not(target_arch = "aarch64"))]
6678
pub fn test_valist_struct_member() {
6779
let fmt_str = CString::new("%d, %f\n").unwrap();
6880
unsafe {
@@ -71,6 +83,7 @@ pub fn test_valist_struct_member() {
7183
}
7284
}
7385

86+
#[cfg(not(target_arch = "aarch64"))]
7487
pub fn test_valist_struct_pointer_member() {
7588
let fmt_str = CString::new("%d, %f\n").unwrap();
7689
unsafe {
@@ -79,6 +92,7 @@ pub fn test_valist_struct_pointer_member() {
7992
}
8093
}
8194

95+
#[cfg(not(target_arch = "aarch64"))]
8296
pub fn test_restart_valist() {
8397
let fmt_str = CString::new("%d, %f\n").unwrap();
8498
unsafe {
@@ -87,6 +101,7 @@ pub fn test_restart_valist() {
87101
}
88102
}
89103

104+
#[cfg(not(target_arch = "aarch64"))]
90105
pub fn test_sample_stddev() {
91106
unsafe {
92107
let c_res = sample_stddev(4, 25.0, 27.3, 26.9, 25.7);

tests/items/src/varargs.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ void call_printf(void) {
77
printf("%d, %f\n", 10, 1.5);
88
}
99

10+
// See #1281. Varargs don't yet work on aarch64.
11+
#ifndef __aarch64__
12+
1013
void my_vprintf(const char *format, va_list ap) {
1114
vprintf(format, ap);
1215
}
@@ -134,3 +137,5 @@ double sample_stddev(int count, ...)
134137
va_end(args2);
135138
return sqrt(sum_sq_diff / count);
136139
}
140+
141+
#endif

0 commit comments

Comments
 (0)