Skip to content

Commit 2f3cd23

Browse files
committed
tests: skip varargs tests on aarch64, as they don't work yet
1 parent 4e90e60 commit 2f3cd23

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, ...);
@@ -38,6 +46,7 @@ pub fn test_call_printf() {
3846
}
3947

4048
// Make sure we can pass through va_list arguments
49+
#[cfg(not(target_arch = "aarch64"))]
4150
#[test]
4251
pub fn test_call_vprintf() {
4352
let fmt_str = CString::new("%d, %f\n").unwrap();
@@ -48,6 +57,7 @@ pub fn test_call_vprintf() {
4857
}
4958

5059
// Test out a small varargs function definition
60+
#[cfg(not(target_arch = "aarch64"))]
5161
#[test]
5262
pub fn test_my_printf() {
5363
let fmt_str = CString::new("%d, %f, %s\n").unwrap();
@@ -58,6 +68,7 @@ pub fn test_my_printf() {
5868
}
5969
}
6070

71+
#[cfg(not(target_arch = "aarch64"))]
6172
#[test]
6273
pub fn test_simple_vacopy() {
6374
let fmt_str = CString::new("%d, %f\n").unwrap();
@@ -67,6 +78,7 @@ pub fn test_simple_vacopy() {
6778
}
6879
}
6980

81+
#[cfg(not(target_arch = "aarch64"))]
7082
#[test]
7183
pub fn test_valist_struct_member() {
7284
let fmt_str = CString::new("%d, %f\n").unwrap();
@@ -76,6 +88,7 @@ pub fn test_valist_struct_member() {
7688
}
7789
}
7890

91+
#[cfg(not(target_arch = "aarch64"))]
7992
#[test]
8093
pub fn test_valist_struct_pointer_member() {
8194
let fmt_str = CString::new("%d, %f\n").unwrap();
@@ -85,6 +98,7 @@ pub fn test_valist_struct_pointer_member() {
8598
}
8699
}
87100

101+
#[cfg(not(target_arch = "aarch64"))]
88102
#[test]
89103
pub fn test_restart_valist() {
90104
let fmt_str = CString::new("%d, %f\n").unwrap();
@@ -94,6 +108,7 @@ pub fn test_restart_valist() {
94108
}
95109
}
96110

111+
#[cfg(not(target_arch = "aarch64"))]
97112
#[test]
98113
pub fn test_sample_stddev() {
99114
unsafe {

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)