From 45f5778ed92aab55f243d5f6a3c261dde9559dae Mon Sep 17 00:00:00 2001 From: Jonathan Klimt Date: Wed, 20 Mar 2024 12:01:48 +0100 Subject: [PATCH] WIP Added Network test --- tests/network-test.rs | 15 ++++++++++ tests/test-kernels/Cargo.lock | 4 +-- tests/test-kernels/Cargo.toml | 2 +- tests/test-kernels/src/bin/network_test.rs | 35 ++++++++++++++++++++++ 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 tests/network-test.rs create mode 100644 tests/test-kernels/src/bin/network_test.rs diff --git a/tests/network-test.rs b/tests/network-test.rs new file mode 100644 index 00000000..3fd51f9b --- /dev/null +++ b/tests/network-test.rs @@ -0,0 +1,15 @@ +mod common; + +use std::{ + fs::{read, remove_file}, + path::PathBuf, +}; + +use common::{build_hermit_bin, run_simple_vm}; + +#[test] +fn network_test() { + let bin_path = build_hermit_bin("network_test"); + run_simple_vm(bin_path); + panic!(); +} diff --git a/tests/test-kernels/Cargo.lock b/tests/test-kernels/Cargo.lock index 06e71eba..8fb13cf3 100644 --- a/tests/test-kernels/Cargo.lock +++ b/tests/test-kernels/Cargo.lock @@ -104,9 +104,9 @@ dependencies = [ [[package]] name = "hermit" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce1483e55e86ae59107f97acfe03200ec912ce20cf87088d04b63074fa8c91d" +checksum = "5561e9fb70066262b771a35f13ababa46035ea11342bd3677d74a9568ff4b386" dependencies = [ "flate2", "tar", diff --git a/tests/test-kernels/Cargo.toml b/tests/test-kernels/Cargo.toml index bf4cd106..92a8f190 100644 --- a/tests/test-kernels/Cargo.toml +++ b/tests/test-kernels/Cargo.toml @@ -6,4 +6,4 @@ edition = "2021" publish = false [target.'cfg(target_os = "hermit")'.dependencies] -hermit = "0.8" +hermit = {version="0.8.2", features=["pci", "pci-ids", "acpi", "tcp", "udp"] } diff --git a/tests/test-kernels/src/bin/network_test.rs b/tests/test-kernels/src/bin/network_test.rs new file mode 100644 index 00000000..de7f2930 --- /dev/null +++ b/tests/test-kernels/src/bin/network_test.rs @@ -0,0 +1,35 @@ +#![allow(dead_code)] +#![allow(unused_imports)] + +use std::{ + fs::File, + io::{Error, Read}, + net::{Ipv4Addr, SocketAddrV4, TcpListener}, +}; + +#[cfg(target_os = "hermit")] +use hermit as _; + +fn main() -> Result<(), Error> { + println!("Network Test - "); + // let loopback = Ipv4Addr::new(10, 8, 8, 11); + // println!("1"); + // let socket = SocketAddrV4::new(loopback, 0); + // println!("2"); + // let listener = TcpListener::bind(socket)?; + // println!("3"); + + let listener = TcpListener::bind("127.0.0.1:9975").unwrap(); + let (mut socket, _) = listener.accept().unwrap(); + let mut buf = [0u8; 1000]; + println!("about to read"); + match socket.read(&mut buf) { + Err(e) => { + println!("read err {e:?}"); + } + Ok(received) => { + print!("read {}", std::str::from_utf8(&buf[..received]).unwrap()); + } + } + Ok(()) +}