浏览代码

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 年之前
父节点
当前提交
d9ba8149a9
共有 4 个文件被更改,包括 5 次插入4 次删除
  1. 1 1
      examples/riscv/Makefile
  2. 1 0
      examples/riscv/src/tcp.rs
  3. 1 1
      examples/x86_64/Makefile
  4. 2 2
      examples/x86_64/src/tcp.rs

+ 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;
         }
     }
 }