Răsfoiți Sursa

ci: turn on tcp in examples

* the tests can terminate gracefully
* fix a bug in x86_64 tcp module which was not covered in CI
Linwei Shang 1 an în urmă
părinte
comite
d9ba8149a9

+ 1 - 1
examples/riscv/Makefile

@@ -4,7 +4,7 @@ mode := release
 kernel := target/$(target)/$(mode)/riscv
 img := target/$(target)/$(mode)/img
 
-tcp ?= off
+tcp ?= on
 
 sysroot := $(shell rustc --print sysroot)
 objdump := $(shell find $(sysroot) -name llvm-objdump) --arch-name=$(arch)

+ 1 - 0
examples/riscv/src/tcp.rs

@@ -175,6 +175,7 @@ pub fn test_echo_server<T: Transport>(dev: DeviceImpl<T>) {
         } else if socket.may_send() {
             info!("tcp:{} close", PORT);
             socket.close();
+            break;
         }
     }
 }

+ 1 - 1
examples/x86_64/Makefile

@@ -4,7 +4,7 @@ mode := release
 kernel := target/$(target)/$(mode)/$(arch)
 img := target/$(target)/$(mode)/img
 accel ?= on
-tcp ?= off
+tcp ?= on
 
 sysroot := $(shell rustc --print sysroot)
 objdump := $(shell find $(sysroot) -name llvm-objdump) --arch-name=$(arch)

+ 2 - 2
examples/x86_64/src/tcp.rs

@@ -92,8 +92,7 @@ impl<T: Transport> TxToken for VirtioTxToken<T> {
         let mut dev = self.0.borrow_mut();
         let mut tx_buf = dev.new_tx_buffer(len);
         let result = f(tx_buf.packet_mut());
-        trace!("SEND {} bytes: {:02X?}", len, tx_buf.packet());
-        dev.transmit(tx_buf).unwrap();
+        dev.send(tx_buf).unwrap();
         result
     }
 }
@@ -176,6 +175,7 @@ pub fn test_echo_server<T: Transport>(dev: DeviceImpl<T>) {
         } else if socket.may_send() {
             info!("tcp:{} close", PORT);
             socket.close();
+            break;
         }
     }
 }