Skip to content

Commit 0cadc91

Browse files
committed
Restructure tests to avoid future conflicts
1 parent 30e67a1 commit 0cadc91

18 files changed

Lines changed: 620 additions & 184 deletions

‎tests/unit/fd_io.c‎

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include <assert.h>
22
#include <fcntl.h>
33
#include <string.h>
4-
#include <sys/socket.h>
54
#include <unistd.h>
65

76
int main(void) {
@@ -19,18 +18,5 @@ int main(void) {
1918
assert(read(fd, buf, sizeof(buf)) == 0);
2019
assert(close(fd) == 0);
2120
assert(unlink(path) == 0);
22-
int fds[2];
23-
assert(pipe(fds) == 0);
24-
assert(write(fds[1], "ab", 2) == 2);
25-
char buf2[4];
26-
memset(buf2, 0, sizeof(buf2));
27-
assert(read(fds[0], buf2, sizeof(buf2)) == 2);
28-
assert(strcmp(buf2, "ab") == 0);
29-
assert(close(fds[1]) == 0);
30-
assert(read(fds[0], buf2, sizeof(buf2)) == 0);
31-
assert(close(fds[0]) == 0);
32-
int s = socket(AF_INET, SOCK_STREAM, 0);
33-
assert(s >= 0);
34-
assert(close(s) == 0);
3521
return 0;
3622
}

‎tests/unit/isatty.c‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include <assert.h>
2+
#include <fcntl.h>
3+
#include <unistd.h>
4+
5+
int main(void) {
6+
const char *path = "/tmp/cpp2rust_isatty_test.tmp";
7+
int fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 0644);
8+
assert(fd >= 0);
9+
assert(isatty(fd) == 0);
10+
assert(close(fd) == 0);
11+
assert(unlink(path) == 0);
12+
return 0;
13+
}

‎tests/unit/lseek_ftruncate.c‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include <assert.h>
2+
#include <fcntl.h>
3+
#include <string.h>
4+
#include <unistd.h>
5+
6+
int main(void) {
7+
const char *path = "/tmp/cpp2rust_lseek_ftruncate_test.tmp";
8+
int fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 0644);
9+
assert(fd >= 0);
10+
assert(write(fd, "hello world", 11) == 11);
11+
assert(lseek(fd, 0, SEEK_END) == 11);
12+
assert(lseek(fd, 6, SEEK_SET) == 6);
13+
char buf[16];
14+
memset(buf, 0, sizeof(buf));
15+
assert(read(fd, buf, sizeof(buf)) == 5);
16+
assert(strcmp(buf, "world") == 0);
17+
assert(ftruncate(fd, 5) == 0);
18+
assert(lseek(fd, 0, SEEK_END) == 5);
19+
assert(close(fd) == 0);
20+
assert(unlink(path) == 0);
21+
return 0;
22+
}

‎tests/unit/out/refcount/fd_io.rs‎

Lines changed: 0 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -138,129 +138,5 @@ fn main_0() -> i32 {
138138
} == 0) as i32)
139139
!= 0)
140140
);
141-
let fds: Value<Box<[i32]>> = Rc::new(RefCell::new(
142-
(0..2).map(|_| <i32>::default()).collect::<Box<[i32]>>(),
143-
));
144-
assert!(
145-
(((match nix::unistd::pipe() {
146-
Ok((__r, __w)) => {
147-
let __fds = (fds.as_pointer() as Ptr<i32>).clone();
148-
__fds.write(FdRegistry::register(__r));
149-
__fds.offset(1).write(FdRegistry::register(__w));
150-
0
151-
}
152-
Err(__e) => {
153-
libcc2rs::cpp2rust_errno().write(__e as i32);
154-
-1
155-
}
156-
} == 0) as i32)
157-
!= 0)
158-
);
159-
assert!(
160-
(((match FdRegistry::with_fd((*fds.borrow())[(1) as usize], |__fd| {
161-
Ptr::from_string_literal(b"ab")
162-
.to_any()
163-
.reinterpret_cast::<u8>()
164-
.with_slice(2_usize, |__buf| nix::unistd::write(__fd, __buf))
165-
}) {
166-
Ok(__n) => __n as isize,
167-
Err(__e) => {
168-
libcc2rs::cpp2rust_errno().write(__e as i32);
169-
-1
170-
}
171-
} == 2_isize) as i32)
172-
!= 0)
173-
);
174-
let buf2: Value<Box<[u8]>> = Rc::new(RefCell::new(
175-
(0..4).map(|_| <u8>::default()).collect::<Box<[u8]>>(),
176-
));
177-
{
178-
((buf2.as_pointer() as Ptr<u8>) as Ptr<u8>)
179-
.to_any()
180-
.memset((0) as u8, ::std::mem::size_of::<[u8; 4]>() as usize);
181-
((buf2.as_pointer() as Ptr<u8>) as Ptr<u8>).to_any().clone()
182-
};
183-
assert!(
184-
(((match FdRegistry::with_fd((*fds.borrow())[(0) as usize], |__fd| {
185-
((buf2.as_pointer() as Ptr<u8>) as Ptr<u8>)
186-
.to_any()
187-
.reinterpret_cast::<u8>()
188-
.with_slice_mut(::std::mem::size_of::<[u8; 4]>(), |__buf| {
189-
nix::unistd::read(__fd, __buf)
190-
})
191-
}) {
192-
Ok(__n) => __n as isize,
193-
Err(__e) => {
194-
libcc2rs::cpp2rust_errno().write(__e as i32);
195-
-1
196-
}
197-
} == 2_isize) as i32)
198-
!= 0)
199-
);
200-
assert!(
201-
((({
202-
let mut __it1 = (buf2.as_pointer() as Ptr<u8>).to_c_string_iterator();
203-
let mut __it2 = Ptr::from_string_literal(b"ab").to_c_string_iterator();
204-
loop {
205-
let __c1 = __it1.next();
206-
let __c2 = __it2.next();
207-
if __c1 != __c2 {
208-
break (__c1.unwrap_or(0) as i32) - (__c2.unwrap_or(0) as i32);
209-
}
210-
if __c1.is_none() {
211-
break 0;
212-
}
213-
}
214-
} == 0) as i32)
215-
!= 0)
216-
);
217-
assert!((((FdRegistry::close((*fds.borrow())[(1) as usize]) == 0) as i32) != 0));
218-
assert!(
219-
(((match FdRegistry::with_fd((*fds.borrow())[(0) as usize], |__fd| {
220-
((buf2.as_pointer() as Ptr<u8>) as Ptr<u8>)
221-
.to_any()
222-
.reinterpret_cast::<u8>()
223-
.with_slice_mut(::std::mem::size_of::<[u8; 4]>(), |__buf| {
224-
nix::unistd::read(__fd, __buf)
225-
})
226-
}) {
227-
Ok(__n) => __n as isize,
228-
Err(__e) => {
229-
libcc2rs::cpp2rust_errno().write(__e as i32);
230-
-1
231-
}
232-
} == 0_isize) as i32)
233-
!= 0)
234-
);
235-
assert!((((FdRegistry::close((*fds.borrow())[(0) as usize]) == 0) as i32) != 0));
236-
let s: Value<i32> = Rc::new(RefCell::new({
237-
let __family = match libc::AF_INET {
238-
::libc::AF_INET => nix::sys::socket::AddressFamily::Inet,
239-
::libc::AF_INET6 => nix::sys::socket::AddressFamily::Inet6,
240-
::libc::AF_UNIX => nix::sys::socket::AddressFamily::Unix,
241-
__d => panic!("socket: unsupported domain {__d}"),
242-
};
243-
let __flags = nix::sys::socket::SockFlag::from_bits_truncate(libc::SOCK_STREAM);
244-
let __ty = match libc::SOCK_STREAM & !nix::sys::socket::SockFlag::all().bits() {
245-
::libc::SOCK_STREAM => nix::sys::socket::SockType::Stream,
246-
::libc::SOCK_DGRAM => nix::sys::socket::SockType::Datagram,
247-
__t => panic!("socket: unsupported type {__t}"),
248-
};
249-
let __proto = match 0 {
250-
0 => None,
251-
::libc::IPPROTO_TCP => Some(nix::sys::socket::SockProtocol::Tcp),
252-
::libc::IPPROTO_UDP => Some(nix::sys::socket::SockProtocol::Udp),
253-
__p => panic!("socket: unsupported protocol {__p}"),
254-
};
255-
match nix::sys::socket::socket(__family, __ty, __flags, __proto) {
256-
Ok(__ofd) => FdRegistry::register(__ofd),
257-
Err(__e) => {
258-
libcc2rs::cpp2rust_errno().write(__e as i32);
259-
-1
260-
}
261-
}
262-
}));
263-
assert!(((((*s.borrow()) >= 0) as i32) != 0));
264-
assert!((((FdRegistry::close((*s.borrow())) == 0) as i32) != 0));
265141
return 0;
266142
}

‎tests/unit/out/refcount/isatty.rs‎

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
extern crate libcc2rs;
2+
use libcc2rs::*;
3+
use std::cell::RefCell;
4+
use std::collections::BTreeMap;
5+
use std::io::prelude::*;
6+
use std::io::{Read, Seek, Write};
7+
use std::os::fd::AsFd;
8+
use std::rc::{Rc, Weak};
9+
pub fn main() {
10+
std::process::exit(main_0());
11+
}
12+
fn main_0() -> i32 {
13+
let path: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal(
14+
b"/tmp/cpp2rust_isatty_test.tmp",
15+
)));
16+
let fd: Value<i32> = Rc::new(RefCell::new({
17+
let __mode = match &[(420).into()].first() {
18+
Some(__m) => nix::sys::stat::Mode::from_bits_truncate(i32::get(__m) as ::libc::mode_t),
19+
None => nix::sys::stat::Mode::empty(),
20+
};
21+
match nix::fcntl::open(
22+
(*path.borrow()).to_rust_string().as_str(),
23+
nix::fcntl::OFlag::from_bits_retain(
24+
((::libc::O_RDWR | ::libc::O_CREAT) | ::libc::O_TRUNC),
25+
),
26+
__mode,
27+
) {
28+
Ok(__ofd) => FdRegistry::register(__ofd),
29+
Err(__e) => {
30+
libcc2rs::cpp2rust_errno().write(__e as i32);
31+
-1
32+
}
33+
}
34+
}));
35+
assert!(((((*fd.borrow()) >= 0) as i32) != 0));
36+
assert!((((libc::isatty((*fd.borrow())) == 0) as i32) != 0));
37+
assert!((((FdRegistry::close((*fd.borrow())) == 0) as i32) != 0));
38+
assert!(
39+
(((match nix::unistd::unlink((*path.borrow()).to_rust_string().as_str()) {
40+
Ok(()) => 0,
41+
Err(__e) => {
42+
libcc2rs::cpp2rust_errno().write(__e as i32);
43+
-1
44+
}
45+
} == 0) as i32)
46+
!= 0)
47+
);
48+
return 0;
49+
}
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
extern crate libcc2rs;
2+
use libcc2rs::*;
3+
use std::cell::RefCell;
4+
use std::collections::BTreeMap;
5+
use std::io::prelude::*;
6+
use std::io::{Read, Seek, Write};
7+
use std::os::fd::AsFd;
8+
use std::rc::{Rc, Weak};
9+
pub fn main() {
10+
std::process::exit(main_0());
11+
}
12+
fn main_0() -> i32 {
13+
let path: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal(
14+
b"/tmp/cpp2rust_lseek_ftruncate_test.tmp",
15+
)));
16+
let fd: Value<i32> = Rc::new(RefCell::new({
17+
let __mode = match &[(420).into()].first() {
18+
Some(__m) => nix::sys::stat::Mode::from_bits_truncate(i32::get(__m) as ::libc::mode_t),
19+
None => nix::sys::stat::Mode::empty(),
20+
};
21+
match nix::fcntl::open(
22+
(*path.borrow()).to_rust_string().as_str(),
23+
nix::fcntl::OFlag::from_bits_retain(
24+
((::libc::O_RDWR | ::libc::O_CREAT) | ::libc::O_TRUNC),
25+
),
26+
__mode,
27+
) {
28+
Ok(__ofd) => FdRegistry::register(__ofd),
29+
Err(__e) => {
30+
libcc2rs::cpp2rust_errno().write(__e as i32);
31+
-1
32+
}
33+
}
34+
}));
35+
assert!(((((*fd.borrow()) >= 0) as i32) != 0));
36+
assert!(
37+
(((match FdRegistry::with_fd((*fd.borrow()), |__fd| {
38+
Ptr::from_string_literal(b"hello world")
39+
.to_any()
40+
.reinterpret_cast::<u8>()
41+
.with_slice(11_usize, |__buf| nix::unistd::write(__fd, __buf))
42+
}) {
43+
Ok(__n) => __n as isize,
44+
Err(__e) => {
45+
libcc2rs::cpp2rust_errno().write(__e as i32);
46+
-1
47+
}
48+
} == 11_isize) as i32)
49+
!= 0)
50+
);
51+
assert!((((libc::lseek((*fd.borrow()), 0_i64, 2) == 11_i64) as i32) != 0));
52+
assert!((((libc::lseek((*fd.borrow()), 6_i64, 0) == 6_i64) as i32) != 0));
53+
let buf: Value<Box<[u8]>> = Rc::new(RefCell::new(
54+
(0..16).map(|_| <u8>::default()).collect::<Box<[u8]>>(),
55+
));
56+
{
57+
((buf.as_pointer() as Ptr<u8>) as Ptr<u8>)
58+
.to_any()
59+
.memset((0) as u8, ::std::mem::size_of::<[u8; 16]>() as usize);
60+
((buf.as_pointer() as Ptr<u8>) as Ptr<u8>).to_any().clone()
61+
};
62+
assert!(
63+
(((match FdRegistry::with_fd((*fd.borrow()), |__fd| {
64+
((buf.as_pointer() as Ptr<u8>) as Ptr<u8>)
65+
.to_any()
66+
.reinterpret_cast::<u8>()
67+
.with_slice_mut(::std::mem::size_of::<[u8; 16]>(), |__buf| {
68+
nix::unistd::read(__fd, __buf)
69+
})
70+
}) {
71+
Ok(__n) => __n as isize,
72+
Err(__e) => {
73+
libcc2rs::cpp2rust_errno().write(__e as i32);
74+
-1
75+
}
76+
} == 5_isize) as i32)
77+
!= 0)
78+
);
79+
assert!(
80+
((({
81+
let mut __it1 = (buf.as_pointer() as Ptr<u8>).to_c_string_iterator();
82+
let mut __it2 = Ptr::from_string_literal(b"world").to_c_string_iterator();
83+
loop {
84+
let __c1 = __it1.next();
85+
let __c2 = __it2.next();
86+
if __c1 != __c2 {
87+
break (__c1.unwrap_or(0) as i32) - (__c2.unwrap_or(0) as i32);
88+
}
89+
if __c1.is_none() {
90+
break 0;
91+
}
92+
}
93+
} == 0) as i32)
94+
!= 0)
95+
);
96+
assert!((((libc::ftruncate((*fd.borrow()), 5_i64) == 0) as i32) != 0));
97+
assert!((((libc::lseek((*fd.borrow()), 0_i64, 2) == 5_i64) as i32) != 0));
98+
assert!((((FdRegistry::close((*fd.borrow())) == 0) as i32) != 0));
99+
assert!(
100+
(((match nix::unistd::unlink((*path.borrow()).to_rust_string().as_str()) {
101+
Ok(()) => 0,
102+
Err(__e) => {
103+
libcc2rs::cpp2rust_errno().write(__e as i32);
104+
-1
105+
}
106+
} == 0) as i32)
107+
!= 0)
108+
);
109+
return 0;
110+
}

0 commit comments

Comments
 (0)