52 lines
No EOL
1.7 KiB
Rust
52 lines
No EOL
1.7 KiB
Rust
mod test {
|
|
use classfile_reader::{get_class, io};
|
|
use classfile_reader::class::Value;
|
|
use classfile_reader::vm::Vm;
|
|
|
|
#[test]
|
|
fn get_constant_int() {
|
|
let class = get_class(io::read_class_file("tests/Int.class")).unwrap();
|
|
assert_eq!((55, 0), class.get_version());
|
|
|
|
|
|
if let Value::I32(v) = Vm::new().execute(class.methods.get("public static get()I").unwrap()).unwrap() {
|
|
assert_eq!(v, 42);
|
|
} else {
|
|
panic!("fail");
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn get_constant_double() {
|
|
let class = get_class(io::read_class_file("tests/Double.class")).unwrap();
|
|
assert_eq!((55, 0), class.get_version());
|
|
if let Value::F64(v) = Vm::new().execute(class.methods.get("public static get()D").unwrap()).unwrap() {
|
|
assert_eq!(v, 42.0);
|
|
} else {
|
|
panic!("fail");
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn get_constant_foat() {
|
|
let class = get_class(io::read_class_file("tests/Float.class")).unwrap();
|
|
Vm::new().new_instance(&class);
|
|
// assert_eq!((55, 0), class.get_version());
|
|
// if let Value::F32(v) = Vm::new().execute(class.methods.get("public static getF()F").unwrap()).unwrap() {
|
|
// assert_eq!(v, 42.0);
|
|
// } else {
|
|
// panic!("fail");
|
|
// }
|
|
}
|
|
|
|
#[test]
|
|
fn get_foat() {
|
|
let class = get_class(io::read_class_file("tests/Float.class")).unwrap();
|
|
assert_eq!((55, 0), class.get_version());
|
|
if let Value::F32(v) = Vm::new().execute(class.methods.get("public getF2()F").unwrap()).unwrap() {
|
|
assert_eq!(v, 42.0);
|
|
} else {
|
|
panic!("fail");
|
|
}
|
|
}
|
|
} |