Skip to content

Commit

Permalink
adds schedule test
Browse files Browse the repository at this point in the history
  • Loading branch information
sunny-g committed May 26, 2021
1 parent 25c3438 commit aad8c2f
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 0 deletions.
2 changes: 2 additions & 0 deletions rustler_tests/lib/rustler_test.ex
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ defmodule RustlerTest do

def sum_range(_), do: err()

def scheduled_fac(_, _ \\ nil), do: err()

def bad_arg_error(), do: err()
def atom_str_error(), do: err()
def raise_atom_error(), do: err()
Expand Down
2 changes: 2 additions & 0 deletions rustler_tests/native/rustler_test/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ mod test_nif_attrs;
mod test_primitives;
mod test_range;
mod test_resource;
mod test_schedule;
mod test_term;
mod test_thread;

Expand Down Expand Up @@ -65,6 +66,7 @@ rustler::init!(
test_codegen::tuplestruct_record_echo,
test_dirty::dirty_cpu,
test_dirty::dirty_io,
test_schedule::scheduled_fac,
test_range::sum_range,
test_error::bad_arg_error,
test_error::atom_str_error,
Expand Down
11 changes: 11 additions & 0 deletions rustler_tests/native/rustler_test/src/test_schedule.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
use rustler::schedule::Schedule;

#[rustler::nif]
fn scheduled_fac(input: u32, result: Option<u32>) -> Schedule<scheduled_fac, u32, u32, u32> {
let result = result.unwrap_or(1);
if input == 0 {
Schedule::Result(result)
} else {
Schedule::next2(input - 1, result * input)
}
}
7 changes: 7 additions & 0 deletions rustler_tests/test/schedule_test.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
defmodule RustlerTest.ScheduleTest do
use ExUnit.Case, async: true

test "scheduled factorial" do
assert 24 == RustlerTest.scheduled_fac(4)
end
end

0 comments on commit aad8c2f

Please sign in to comment.