Skip to content

Commit

Permalink
Integration tests for erlang:bsl/2
Browse files Browse the repository at this point in the history
  • Loading branch information
KronicDeth committed Sep 23, 2020
1 parent 383ead6 commit 9e8e513
Show file tree
Hide file tree
Showing 20 changed files with 199 additions and 275 deletions.
3 changes: 0 additions & 3 deletions native_implemented/otp/src/erlang/bsl_2.rs
@@ -1,6 +1,3 @@
#[cfg(all(not(target_arch = "wasm32"), test))]
mod test;

use liblumen_alloc::erts::exception;
use liblumen_alloc::erts::process::Process;
use liblumen_alloc::erts::term::prelude::Term;
Expand Down
108 changes: 0 additions & 108 deletions native_implemented/otp/src/erlang/bsl_2/test.rs

This file was deleted.

This file was deleted.

This file was deleted.

2 changes: 2 additions & 0 deletions native_implemented/otp/tests/internal/lib/erlang.rs
Expand Up @@ -36,6 +36,8 @@ pub mod binary_to_term_2;
pub mod bnot_1;
#[path = "erlang/bor_2.rs"]
pub mod bor_2;
#[path = "erlang/bsl_2.rs"]
pub mod bsl_2;
#[path = "erlang/cancel_timer_1.rs"]
pub mod cancel_timer_1;
#[path = "erlang/ceil_1.rs"]
Expand Down
18 changes: 18 additions & 0 deletions native_implemented/otp/tests/internal/lib/erlang/bsl_2.rs
@@ -0,0 +1,18 @@
#[path = "bsl_2/with_big_integer_integer.rs"]
mod with_big_integer_integer;
#[path = "bsl_2/with_small_integer_integer.rs"]
mod with_small_integer_integer;

test_stdout!(without_integer_integer_errors_badarith, "{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n");
test_stdout!(
with_integer_integer_without_integer_shift_errors_badarith,
"{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n{caught, error, badarith}\n"
);
test_stdout!(
with_integer_integer_with_zero_shift_returns_same_integer,
"true\ntrue\n"
);
test_stdout!(
with_integer_integer_with_integer_shift_is_the_same_as_bsr_with_negated_shift,
"false\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\n"
);
@@ -0,0 +1,10 @@
test_stdout!(
with_negative_without_big_integer_underflow_shifts_right_and_returns_big_integer,
"true\n1656137896166982451072\n"
);
test_stdout!(with_negative_with_big_integer_underflow_without_small_integer_underflow_shifts_right_and_returns_small_integer, "true\n11\n");
test_stdout!(with_negative_with_underflow_returns_zero, "0\n");
test_stdout!(
with_positive_returns_big_integer,
"true\n6624551584667929804288\n"
);
@@ -0,0 +1,12 @@
-module(init).
-export([start/0]).
-import(erlang, [display/1]).
-import(lumen, [is_big_integer/1, is_small_integer/1]).

start() ->
Integer = 2#101100111000111100001111100000111111000000111111100000001111111100000000,
true = is_big_integer(Integer),
Shift = -68,
Shifted = Integer bsl Shift,
display(is_small_integer(Shifted)),
display(Shifted).
@@ -0,0 +1,11 @@
-module(init).
-export([start/0]).
-import(erlang, [display/1]).
-import(lumen, [is_big_integer/1]).

start() ->
Integer = 2#101100111000111100001111100000111111000000111111100000001111111100000000,
true = is_big_integer(Integer),
Shift = -74,
Shifted = Integer bsl Shift,
display(Shifted).
@@ -0,0 +1,11 @@
-module(init).
-export([start/0]).
-import(erlang, [display/1]).
-import(lumen, [is_big_integer/1]).

start() ->
Integer = 2#101100111000111100001111100000111111000000111111100000001111111100000000,
Shift = -1,
Shifted = Integer bsl Shift,
display(is_big_integer(Shifted)),
display(Shifted).
@@ -0,0 +1,12 @@
-module(init).
-export([start/0]).
-import(erlang, [display/1]).
-import(lumen, [is_big_integer/1]).

start() ->
Integer = 2#101100111000111100001111100000111111000000111111100000001111111100000000,
true = is_big_integer(Integer),
Shift = 1,
Shifted = Integer bsl Shift,
display(is_big_integer(Shifted)),
display(Shifted).
@@ -0,0 +1,23 @@
-module(init).
-export([start/0]).
-import(erlang, [display/1]).

start() ->
test().

test() ->
test(-127, 127).

test(Shift, Shift) ->
test(Shift);
test(Shift, Final) ->
test(Shift),
test(Shift + 1, Final).

test(Shift) ->
Integer = 1,
LeftShifted = Integer bsl Shift,
NegativeShift = -1 * Shift,
RightShifted = Integer bsl NegativeShift,
display(LeftShifted == RightShifted).

0 comments on commit 9e8e513

Please sign in to comment.