mirror of
https://github.com/fluencelabs/wasmer
synced 2024-12-13 06:15:33 +00:00
add more wasi tests
This commit is contained in:
parent
faa4d058ec
commit
542e47ff82
@ -50,6 +50,10 @@ pub fn compile(file: &str, ignores: &HashSet<String>) -> Option<String> {
|
||||
perm.set_mode(0o766);
|
||||
fs::set_permissions(normal_path, perm).expect("set permissions");
|
||||
}
|
||||
let rs_module_name = {
|
||||
let temp = PathBuf::from(&normalized_name);
|
||||
temp.file_name().unwrap().to_string_lossy().to_string()
|
||||
};
|
||||
|
||||
let result = Command::new(&normalized_name)
|
||||
.output()
|
||||
@ -65,15 +69,12 @@ pub fn compile(file: &str, ignores: &HashSet<String>) -> Option<String> {
|
||||
.output()
|
||||
.expect("Failed to compile program to native code");
|
||||
|
||||
let ignored = if ignores.contains(&normalized_name) {
|
||||
let ignored = if ignores.contains(&rs_module_name) {
|
||||
"\n#[ignore]"
|
||||
} else {
|
||||
""
|
||||
};
|
||||
let rs_module_name = {
|
||||
let temp = PathBuf::from(&normalized_name);
|
||||
temp.file_name().unwrap().to_string_lossy().to_string()
|
||||
};
|
||||
|
||||
let contents = format!(
|
||||
"#[test]{ignore}
|
||||
fn test_{rs_module_name}() {{
|
||||
@ -106,7 +107,6 @@ pub fn build() {
|
||||
let mut modules: Vec<String> = Vec::new();
|
||||
|
||||
let ignores = read_ignore_list();
|
||||
|
||||
for entry in glob("wasitests/*.rs").unwrap() {
|
||||
match entry {
|
||||
Ok(path) => {
|
||||
@ -128,7 +128,7 @@ pub fn build() {
|
||||
modules.push("".to_string());
|
||||
|
||||
let modfile: String = modules.join("\n");
|
||||
let source = fs::read(dbg!(&rust_test_modpath)).unwrap();
|
||||
let source = fs::read(&rust_test_modpath).unwrap();
|
||||
// We only modify the mod file if has changed
|
||||
if source != modfile.as_bytes() {
|
||||
fs::write(&rust_test_modpath, modfile.as_bytes()).unwrap();
|
||||
|
10
lib/wasi/tests/wasitests/create_dir.rs
Normal file
10
lib/wasi/tests/wasitests/create_dir.rs
Normal file
@ -0,0 +1,10 @@
|
||||
#[test]
|
||||
#[ignore]
|
||||
fn test_create_dir() {
|
||||
assert_wasi_output!(
|
||||
"../../wasitests/create_dir.wasm",
|
||||
"create_dir",
|
||||
vec![],
|
||||
"../../wasitests/create_dir.out"
|
||||
);
|
||||
}
|
10
lib/wasi/tests/wasitests/file_metadata.rs
Normal file
10
lib/wasi/tests/wasitests/file_metadata.rs
Normal file
@ -0,0 +1,10 @@
|
||||
#[test]
|
||||
#[ignore]
|
||||
fn test_file_metadata() {
|
||||
assert_wasi_output!(
|
||||
"../../wasitests/file_metadata.wasm",
|
||||
"file_metadata",
|
||||
vec![],
|
||||
"../../wasitests/file_metadata.out"
|
||||
);
|
||||
}
|
@ -5,4 +5,7 @@
|
||||
// The _common module is not autogenerated. It provides common macros for the wasitests
|
||||
#[macro_use]
|
||||
mod _common;
|
||||
mod create_dir;
|
||||
mod file_metadata;
|
||||
mod hello;
|
||||
mod quine;
|
||||
|
9
lib/wasi/tests/wasitests/quine.rs
Normal file
9
lib/wasi/tests/wasitests/quine.rs
Normal file
@ -0,0 +1,9 @@
|
||||
#[test]
|
||||
fn test_quine() {
|
||||
assert_wasi_output!(
|
||||
"../../wasitests/quine.wasm",
|
||||
"quine",
|
||||
vec![],
|
||||
"../../wasitests/quine.out"
|
||||
);
|
||||
}
|
BIN
lib/wasi/wasitests/create_dir
Executable file
BIN
lib/wasi/wasitests/create_dir
Executable file
Binary file not shown.
5
lib/wasi/wasitests/create_dir.out
Normal file
5
lib/wasi/wasitests/create_dir.out
Normal file
@ -0,0 +1,5 @@
|
||||
Test file exists: false
|
||||
Dir exists: false
|
||||
Dir exists: false
|
||||
Dir exists: false
|
||||
Success
|
37
lib/wasi/wasitests/create_dir.rs
Normal file
37
lib/wasi/wasitests/create_dir.rs
Normal file
@ -0,0 +1,37 @@
|
||||
use std::fs;
|
||||
use std::io::{Read, Seek, SeekFrom, Write};
|
||||
use std::path::*;
|
||||
|
||||
fn main() {
|
||||
let mut path = PathBuf::from("wasitests/testing/nested/directories");
|
||||
let test_file = path.join("test.file");
|
||||
fs::create_dir_all(&path).unwrap();
|
||||
{
|
||||
let mut file = fs::OpenOptions::new()
|
||||
.read(true)
|
||||
.write(true)
|
||||
.truncate(true)
|
||||
.create(true)
|
||||
.open(&test_file)
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(file.write(b"hello").unwrap(), 5);
|
||||
|
||||
file.flush().unwrap();
|
||||
file.seek(SeekFrom::Start(0)).unwrap();
|
||||
let mut in_str = String::new();
|
||||
file.read_to_string(&mut in_str).unwrap();
|
||||
assert_eq!(&in_str, "hello");
|
||||
}
|
||||
fs::remove_file(&test_file).unwrap();
|
||||
println!("Test file exists: {}", test_file.exists());
|
||||
assert!(!test_file.exists());
|
||||
for _ in 0..3 {
|
||||
fs::remove_dir_all(&path).unwrap();
|
||||
println!("Dir exists: {}", path.exists());
|
||||
assert!(!path.exists());
|
||||
path.pop();
|
||||
}
|
||||
|
||||
println!("Success");
|
||||
}
|
BIN
lib/wasi/wasitests/create_dir.wasm
Executable file
BIN
lib/wasi/wasitests/create_dir.wasm
Executable file
Binary file not shown.
BIN
lib/wasi/wasitests/file_metadata
Executable file
BIN
lib/wasi/wasitests/file_metadata
Executable file
Binary file not shown.
2
lib/wasi/wasitests/file_metadata.out
Normal file
2
lib/wasi/wasitests/file_metadata.out
Normal file
@ -0,0 +1,2 @@
|
||||
is dir: false
|
||||
file info: FileType(FileType { mode: 33188 }) 419 Ok(SystemTime { tv_sec: 1558132188, tv_nsec: 545288295 }) Ok(SystemTime { tv_sec: 1558132188, tv_nsec: 545243056 }) Ok(SystemTime { tv_sec: 1558132191, tv_nsec: 359031112 })
|
17
lib/wasi/wasitests/file_metadata.rs
Normal file
17
lib/wasi/wasitests/file_metadata.rs
Normal file
@ -0,0 +1,17 @@
|
||||
use std::fs;
|
||||
use std::io::Read;
|
||||
|
||||
fn main() {
|
||||
let mut this_file =
|
||||
fs::File::open("wasitests/file_metadata.rs").expect("could not find src file");
|
||||
let md = this_file.metadata().unwrap();
|
||||
println!("is dir: {}", md.is_dir());
|
||||
println!(
|
||||
"file info: {:?} {} {:?} {:?} {:?}",
|
||||
md.file_type(),
|
||||
md.len(),
|
||||
md.modified(),
|
||||
md.created(),
|
||||
md.accessed()
|
||||
);
|
||||
}
|
BIN
lib/wasi/wasitests/file_metadata.wasm
Executable file
BIN
lib/wasi/wasitests/file_metadata.wasm
Executable file
Binary file not shown.
@ -1 +1,2 @@
|
||||
|
||||
file_metadata
|
||||
create_dir
|
||||
|
BIN
lib/wasi/wasitests/quine
Executable file
BIN
lib/wasi/wasitests/quine
Executable file
Binary file not shown.
11
lib/wasi/wasitests/quine.out
Normal file
11
lib/wasi/wasitests/quine.out
Normal file
@ -0,0 +1,11 @@
|
||||
use std::fs;
|
||||
use std::io::Read;
|
||||
|
||||
fn main() {
|
||||
let mut this_file = fs::File::open("wasitests/quine.rs").expect("could not find src file");
|
||||
let md = this_file.metadata().unwrap();
|
||||
let mut in_str = String::new();
|
||||
this_file.read_to_string(&mut in_str).unwrap();
|
||||
println!("{}", in_str);
|
||||
}
|
||||
|
10
lib/wasi/wasitests/quine.rs
Normal file
10
lib/wasi/wasitests/quine.rs
Normal file
@ -0,0 +1,10 @@
|
||||
use std::fs;
|
||||
use std::io::Read;
|
||||
|
||||
fn main() {
|
||||
let mut this_file = fs::File::open("wasitests/quine.rs").expect("could not find src file");
|
||||
let md = this_file.metadata().unwrap();
|
||||
let mut in_str = String::new();
|
||||
this_file.read_to_string(&mut in_str).unwrap();
|
||||
println!("{}", in_str);
|
||||
}
|
BIN
lib/wasi/wasitests/quine.wasm
Executable file
BIN
lib/wasi/wasitests/quine.wasm
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user