leo/compiler/tests/circuits/mod.rs

155 lines
3.6 KiB
Rust
Raw Normal View History

2020-07-30 21:11:54 +03:00
use crate::{assert_satisfied, expect_compiler_error, parse_program, EdwardsTestCompiler};
use leo_compiler::errors::{CompilerError, ExpressionError, FunctionError, StatementError};
fn expect_fail(program: EdwardsTestCompiler) {
2020-07-30 21:11:54 +03:00
match expect_compiler_error(program) {
2020-06-08 09:30:39 +03:00
CompilerError::FunctionError(FunctionError::StatementError(StatementError::ExpressionError(
ExpressionError::Error(_string),
2020-06-08 09:30:39 +03:00
))) => {}
2020-05-20 07:59:00 +03:00
error => panic!("Expected invalid circuit member error, got {}", error),
}
}
// Expressions
#[test]
fn test_inline() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("inline.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
assert_satisfied(program);
2020-05-20 07:59:00 +03:00
}
#[test]
fn test_inline_fail() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("inline_fail.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
expect_fail(program);
2020-05-20 07:59:00 +03:00
}
#[test]
fn test_inline_undefined() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("inline_undefined.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
expect_fail(program);
}
2020-05-20 07:59:00 +03:00
// Members
#[test]
fn test_member_field() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("member_field.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
assert_satisfied(program);
}
#[test]
fn test_member_field_fail() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("member_field_fail.leo");
let program = parse_program(bytes).unwrap();
expect_fail(program);
}
2020-06-20 11:40:56 +03:00
#[test]
fn test_member_field_and_function() {
let bytes = include_bytes!("member_field_and_function.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
assert_satisfied(program);
2020-06-20 11:40:56 +03:00
}
2020-05-20 07:59:00 +03:00
#[test]
fn test_member_function() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("member_function.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
assert_satisfied(program);
2020-05-20 07:59:00 +03:00
}
#[test]
fn test_member_function_fail() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("member_function_fail.leo");
let program = parse_program(bytes).unwrap();
expect_fail(program);
}
#[test]
fn test_member_function_invalid() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("member_function_invalid.leo");
let program = parse_program(bytes).unwrap();
expect_fail(program);
}
#[test]
fn test_member_function_nested() {
let bytes = include_bytes!("member_function_nested.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
assert_satisfied(program);
}
2020-05-20 07:59:00 +03:00
#[test]
fn test_member_static_function() {
2020-06-09 04:12:40 +03:00
let bytes = include_bytes!("member_static_function.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
assert_satisfied(program);
2020-05-20 07:59:00 +03:00
}
#[test]
2020-07-30 21:11:54 +03:00
fn test_member_static_function_invalid() {
let bytes = include_bytes!("member_static_function_invalid.leo");
2020-06-09 04:12:40 +03:00
let program = parse_program(bytes).unwrap();
expect_fail(program)
}
2020-06-09 04:12:40 +03:00
#[test]
2020-07-30 21:11:54 +03:00
fn test_member_static_function_undefined() {
let bytes = include_bytes!("member_static_function_undefined.leo");
2020-06-09 04:12:40 +03:00
let program = parse_program(bytes).unwrap();
expect_fail(program)
}
// Self
#[test]
2020-07-30 21:11:54 +03:00
fn test_self_member_pass() {
let bytes = include_bytes!("self_member.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
assert_satisfied(program);
}
#[test]
2020-07-30 21:11:54 +03:00
fn test_self_member_invalid() {
let bytes = include_bytes!("self_member_invalid.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
let _err = expect_compiler_error(program);
}
#[test]
2020-07-30 21:11:54 +03:00
fn test_self_member_undefined() {
let bytes = include_bytes!("self_member_undefined.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
let _err = expect_compiler_error(program);
}
// All
2020-06-23 04:28:30 +03:00
#[test]
fn test_pedersen_mock() {
let bytes = include_bytes!("pedersen_mock.leo");
let program = parse_program(bytes).unwrap();
2020-07-30 21:11:54 +03:00
assert_satisfied(program);
2020-06-23 04:28:30 +03:00
}