Skip to content

Commit 7c9f88d

Browse files
authored
Update WASIp3 wasi:sockets WITs (#11422)
Brings in a few cosmetic changes to definitions to keep things up-to-date. Closes bytecodealliance/wasip3-prototyping#242
1 parent cfc0563 commit 7c9f88d

18 files changed

Lines changed: 264 additions & 252 deletions

ci/vendor-wit.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ make_vendor "wasi/src/p3" "
7373
clocks@13d1c82@wit-0.3.0-draft
7474
filesystem@2007d36@wit-0.3.0-draft
7575
random@4e94663@wit-0.3.0-draft
76-
sockets@e863ee2@wit-0.3.0-draft
76+
sockets@bc1b8b1@wit-0.3.0-draft
7777
"
7878

7979
rm -rf $cache_dir

crates/test-programs/src/bin/p3_sockets_tcp_bind.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,22 @@ test_programs::p3::export!(Component);
1414
fn test_tcp_bind_ephemeral_port(ip: IpAddress) {
1515
let bind_addr = IpSocketAddress::new(ip, 0);
1616

17-
let sock = TcpSocket::new(ip.family());
17+
let sock = TcpSocket::create(ip.family()).unwrap();
1818
sock.bind(bind_addr).unwrap();
1919

20-
let bound_addr = sock.local_address().unwrap();
20+
let bound_addr = sock.get_local_address().unwrap();
2121

2222
assert_eq!(bind_addr.ip(), bound_addr.ip());
2323
assert_ne!(bind_addr.port(), bound_addr.port());
2424
}
2525

2626
/// Bind a socket on a specified port.
2727
fn test_tcp_bind_specific_port(ip: IpAddress) {
28-
let sock = TcpSocket::new(ip.family());
28+
let sock = TcpSocket::create(ip.family()).unwrap();
2929

3030
let bind_addr = attempt_random_port(ip, |bind_addr| sock.bind(bind_addr)).unwrap();
3131

32-
let bound_addr = sock.local_address().unwrap();
32+
let bound_addr = sock.get_local_address().unwrap();
3333

3434
assert_eq!(bind_addr.ip(), bound_addr.ip());
3535
assert_eq!(bind_addr.port(), bound_addr.port());
@@ -39,22 +39,22 @@ fn test_tcp_bind_specific_port(ip: IpAddress) {
3939
fn test_tcp_bind_addrinuse(ip: IpAddress) {
4040
let bind_addr = IpSocketAddress::new(ip, 0);
4141

42-
let sock1 = TcpSocket::new(ip.family());
42+
let sock1 = TcpSocket::create(ip.family()).unwrap();
4343
sock1.bind(bind_addr).unwrap();
4444
sock1.listen().unwrap();
4545

46-
let bound_addr = sock1.local_address().unwrap();
46+
let bound_addr = sock1.get_local_address().unwrap();
4747

48-
let sock2 = TcpSocket::new(ip.family());
48+
let sock2 = TcpSocket::create(ip.family()).unwrap();
4949
assert_eq!(sock2.bind(bound_addr), Err(ErrorCode::AddressInUse));
5050
}
5151

5252
// The WASI runtime should set SO_REUSEADDR for us
5353
async fn test_tcp_bind_reuseaddr(ip: IpAddress) {
54-
let client = TcpSocket::new(ip.family());
54+
let client = TcpSocket::create(ip.family()).unwrap();
5555

5656
let bind_addr = {
57-
let listener1 = TcpSocket::new(ip.family());
57+
let listener1 = TcpSocket::create(ip.family()).unwrap();
5858

5959
let bind_addr = attempt_random_port(ip, |bind_addr| listener1.bind(bind_addr)).unwrap();
6060

@@ -97,7 +97,7 @@ async fn test_tcp_bind_reuseaddr(ip: IpAddress) {
9797
// time to see if we can reuse the address. This loop is bounded because it
9898
// should complete "quickly".
9999
for _ in 0..10 {
100-
let listener2 = TcpSocket::new(ip.family());
100+
let listener2 = TcpSocket::create(ip.family()).unwrap();
101101
if listener2.bind(bind_addr).is_ok() {
102102
listener2.listen().unwrap();
103103
return;
@@ -112,7 +112,7 @@ async fn test_tcp_bind_reuseaddr(ip: IpAddress) {
112112
fn test_tcp_bind_addrnotavail(ip: IpAddress) {
113113
let bind_addr = IpSocketAddress::new(ip, 0);
114114

115-
let sock = TcpSocket::new(ip.family());
115+
let sock = TcpSocket::create(ip.family()).unwrap();
116116

117117
assert_eq!(sock.bind(bind_addr), Err(ErrorCode::AddressNotBindable));
118118
}
@@ -124,7 +124,7 @@ fn test_tcp_bind_wrong_family(family: IpAddressFamily) {
124124
IpAddressFamily::Ipv6 => IpAddress::IPV4_LOOPBACK,
125125
};
126126

127-
let sock = TcpSocket::new(family);
127+
let sock = TcpSocket::create(family).unwrap();
128128
let result = sock.bind(IpSocketAddress::new(wrong_ip, 0));
129129

130130
assert!(matches!(result, Err(ErrorCode::InvalidArgument)));
@@ -136,8 +136,8 @@ fn test_tcp_bind_non_unicast() {
136136
let ipv4_multicast = IpSocketAddress::new(IpAddress::Ipv4((224, 254, 0, 0)), 0);
137137
let ipv6_multicast = IpSocketAddress::new(IpAddress::Ipv6((0xff00, 0, 0, 0, 0, 0, 0, 0)), 0);
138138

139-
let sock_v4 = TcpSocket::new(IpAddressFamily::Ipv4);
140-
let sock_v6 = TcpSocket::new(IpAddressFamily::Ipv6);
139+
let sock_v4 = TcpSocket::create(IpAddressFamily::Ipv4).unwrap();
140+
let sock_v6 = TcpSocket::create(IpAddressFamily::Ipv6).unwrap();
141141

142142
assert!(matches!(
143143
sock_v4.bind(ipv4_broadcast),
@@ -154,7 +154,7 @@ fn test_tcp_bind_non_unicast() {
154154
}
155155

156156
fn test_tcp_bind_dual_stack() {
157-
let sock = TcpSocket::new(IpAddressFamily::Ipv6);
157+
let sock = TcpSocket::create(IpAddressFamily::Ipv6).unwrap();
158158
let addr = IpSocketAddress::new(IpAddress::IPV4_MAPPED_LOOPBACK, 0);
159159

160160
// Binding an IPv4-mapped-IPv6 address on a ipv6-only socket should fail:

crates/test-programs/src/bin/p3_sockets_tcp_connect.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ const SOME_PORT: u16 = 47; // If the tests pass, this will never actually be con
1212
/// `0.0.0.0` / `::` is not a valid remote address in WASI.
1313
async fn test_tcp_connect_unspec(family: IpAddressFamily) {
1414
let addr = IpSocketAddress::new(IpAddress::new_unspecified(family), SOME_PORT);
15-
let sock = TcpSocket::new(family);
15+
let sock = TcpSocket::create(family).unwrap();
1616

1717
assert_eq!(sock.connect(addr).await, Err(ErrorCode::InvalidArgument));
1818
}
1919

2020
/// 0 is not a valid remote port.
2121
async fn test_tcp_connect_port_0(family: IpAddressFamily) {
2222
let addr = IpSocketAddress::new(IpAddress::new_loopback(family), 0);
23-
let sock = TcpSocket::new(family);
23+
let sock = TcpSocket::create(family).unwrap();
2424

2525
assert_eq!(sock.connect(addr).await, Err(ErrorCode::InvalidArgument));
2626
}
@@ -33,7 +33,7 @@ async fn test_tcp_connect_wrong_family(family: IpAddressFamily) {
3333
};
3434
let remote_addr = IpSocketAddress::new(wrong_ip, SOME_PORT);
3535

36-
let sock = TcpSocket::new(family);
36+
let sock = TcpSocket::create(family).unwrap();
3737

3838
assert_eq!(
3939
sock.connect(remote_addr).await,
@@ -48,8 +48,8 @@ async fn test_tcp_connect_non_unicast() {
4848
let ipv6_multicast =
4949
IpSocketAddress::new(IpAddress::Ipv6((0xff00, 0, 0, 0, 0, 0, 0, 0)), SOME_PORT);
5050

51-
let sock_v4 = TcpSocket::new(IpAddressFamily::Ipv4);
52-
let sock_v6 = TcpSocket::new(IpAddressFamily::Ipv6);
51+
let sock_v4 = TcpSocket::create(IpAddressFamily::Ipv4).unwrap();
52+
let sock_v6 = TcpSocket::create(IpAddressFamily::Ipv6).unwrap();
5353

5454
assert_eq!(
5555
sock_v4.connect(ipv4_broadcast).await,
@@ -67,17 +67,17 @@ async fn test_tcp_connect_non_unicast() {
6767

6868
async fn test_tcp_connect_dual_stack() {
6969
// Set-up:
70-
let v4_listener = TcpSocket::new(IpAddressFamily::Ipv4);
70+
let v4_listener = TcpSocket::create(IpAddressFamily::Ipv4).unwrap();
7171
v4_listener
7272
.bind(IpSocketAddress::new(IpAddress::IPV4_LOOPBACK, 0))
7373
.unwrap();
7474
v4_listener.listen().unwrap();
7575

76-
let v4_listener_addr = v4_listener.local_address().unwrap();
76+
let v4_listener_addr = v4_listener.get_local_address().unwrap();
7777
let v6_listener_addr =
7878
IpSocketAddress::new(IpAddress::IPV4_MAPPED_LOOPBACK, v4_listener_addr.port());
7979

80-
let v6_client = TcpSocket::new(IpAddressFamily::Ipv6);
80+
let v6_client = TcpSocket::create(IpAddressFamily::Ipv6).unwrap();
8181

8282
// Tests:
8383

@@ -99,14 +99,14 @@ async fn test_tcp_connect_explicit_bind(family: IpAddressFamily) {
9999

100100
let (listener, mut accept) = {
101101
let bind_address = IpSocketAddress::new(ip, 0);
102-
let listener = TcpSocket::new(family);
102+
let listener = TcpSocket::create(family).unwrap();
103103
listener.bind(bind_address).unwrap();
104104
let accept = listener.listen().unwrap();
105105
(listener, accept)
106106
};
107107

108-
let listener_address = listener.local_address().unwrap();
109-
let client = TcpSocket::new(family);
108+
let listener_address = listener.get_local_address().unwrap();
109+
let client = TcpSocket::create(family).unwrap();
110110

111111
// Manually bind the client:
112112
client.bind(IpSocketAddress::new(ip, 0)).unwrap();

crates/test-programs/src/bin/p3_sockets_tcp_sample_application.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ async fn test_tcp_sample_application(family: IpAddressFamily, bind_address: IpSo
1313
let first_message = b"Hello, world!";
1414
let second_message = b"Greetings, planet!";
1515

16-
let listener = TcpSocket::new(family);
16+
let listener = TcpSocket::create(family).unwrap();
1717

1818
listener.bind(bind_address).unwrap();
1919
listener.set_listen_backlog_size(32).unwrap();
2020
let mut accept = listener.listen().unwrap();
2121

22-
let addr = listener.local_address().unwrap();
22+
let addr = listener.get_local_address().unwrap();
2323

2424
join!(
2525
async {
26-
let client = TcpSocket::new(family);
26+
let client = TcpSocket::create(family).unwrap();
2727
client.connect(addr).await.unwrap();
2828
let (mut data_tx, data_rx) = wit_stream::new();
2929
join!(
@@ -54,7 +54,7 @@ async fn test_tcp_sample_application(family: IpAddressFamily, bind_address: IpSo
5454
// Another client
5555
join!(
5656
async {
57-
let client = TcpSocket::new(family);
57+
let client = TcpSocket::create(family).unwrap();
5858
client.connect(addr).await.unwrap();
5959
let (mut data_tx, data_rx) = wit_stream::new();
6060
join!(

0 commit comments

Comments
 (0)