Add tests
This commit is contained in:
parent
ae83c434fd
commit
021ba6f465
@ -170,6 +170,7 @@ compilable_contracts() ->
|
|||||||
"namespace_bug",
|
"namespace_bug",
|
||||||
"bytes_to_x",
|
"bytes_to_x",
|
||||||
"bytes_concat",
|
"bytes_concat",
|
||||||
|
"bytes_misc",
|
||||||
"aens",
|
"aens",
|
||||||
"aens_update",
|
"aens_update",
|
||||||
"tuple_match",
|
"tuple_match",
|
||||||
@ -448,6 +449,10 @@ failing_contracts() ->
|
|||||||
[<<?Pos(12, 42)
|
[<<?Pos(12, 42)
|
||||||
"Cannot unify `int` and `string`\n"
|
"Cannot unify `int` and `string`\n"
|
||||||
"when checking the type of the expression `r.foo() : map(int, string)` "
|
"when checking the type of the expression `r.foo() : map(int, string)` "
|
||||||
|
"against the expected type `map(string, int)`">>,
|
||||||
|
<<?Pos(12, 42)
|
||||||
|
"Cannot unify `string` and `int`\n"
|
||||||
|
"when checking the type of the expression `r.foo() : map(int, string)` "
|
||||||
"against the expected type `map(string, int)`">>])
|
"against the expected type `map(string, int)`">>])
|
||||||
, ?TYPE_ERROR(not_toplevel_include,
|
, ?TYPE_ERROR(not_toplevel_include,
|
||||||
[<<?Pos(2, 11)
|
[<<?Pos(2, 11)
|
||||||
@ -605,6 +610,21 @@ failing_contracts() ->
|
|||||||
[<<?Pos(3, 5)
|
[<<?Pos(3, 5)
|
||||||
"Unbound variable `Chain.event`\n"
|
"Unbound variable `Chain.event`\n"
|
||||||
"Did you forget to define the event type?">>])
|
"Did you forget to define the event type?">>])
|
||||||
|
, ?TYPE_ERROR(bad_bytes_to_x,
|
||||||
|
[<<?Pos(3, 35)
|
||||||
|
"Cannot resolve length of byte array in\n"
|
||||||
|
" the result of a call to Bytes.to_fixed_size">>,
|
||||||
|
<<?Pos(4, 36)
|
||||||
|
"Cannot unify `bytes()` and `bytes(4)`\nwhen checking the application of\n"
|
||||||
|
" `Bytes.to_fixed_size : (bytes()) => option('a)`\n"
|
||||||
|
"to arguments\n"
|
||||||
|
" `b : bytes(4)`">>,
|
||||||
|
<<?Pos(4, 36)
|
||||||
|
"Cannot resolve length of byte array in\n"
|
||||||
|
" the result of a call to Bytes.to_fixed_size">>,
|
||||||
|
<<?Pos(5, 35)
|
||||||
|
"Cannot resolve length of byte array in\n"
|
||||||
|
" the first argument of a call to Bytes.to_any_size">>])
|
||||||
, ?TYPE_ERROR(bad_bytes_concat,
|
, ?TYPE_ERROR(bad_bytes_concat,
|
||||||
[<<?Pos(12, 40)
|
[<<?Pos(12, 40)
|
||||||
"Failed to resolve byte array lengths in call to Bytes.concat with arguments of type\n"
|
"Failed to resolve byte array lengths in call to Bytes.concat with arguments of type\n"
|
||||||
@ -629,7 +649,8 @@ failing_contracts() ->
|
|||||||
"and result type\n"
|
"and result type\n"
|
||||||
" - 'c (at line 16, column 39)">>,
|
" - 'c (at line 16, column 39)">>,
|
||||||
<<?Pos(19, 25)
|
<<?Pos(19, 25)
|
||||||
"Cannot resolve length of byte array.">>])
|
"Cannot resolve type of byte array in\n"
|
||||||
|
" the first argument of a call to Bytes.to_str">>])
|
||||||
, ?TYPE_ERROR(bad_bytes_split,
|
, ?TYPE_ERROR(bad_bytes_split,
|
||||||
[<<?Pos(13, 5)
|
[<<?Pos(13, 5)
|
||||||
"Failed to resolve byte array lengths in call to Bytes.split with argument of type\n"
|
"Failed to resolve byte array lengths in call to Bytes.split with argument of type\n"
|
||||||
@ -929,6 +950,9 @@ failing_contracts() ->
|
|||||||
<<?Pos(67,36)
|
<<?Pos(67,36)
|
||||||
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
||||||
"when checking the application of\n `DT_INV : ((Cat) => Cat) => dt_inv(Cat)`\nto arguments\n `f_c_to_a : (Cat) => Animal`">>,
|
"when checking the application of\n `DT_INV : ((Cat) => Cat) => dt_inv(Cat)`\nto arguments\n `f_c_to_a : (Cat) => Animal`">>,
|
||||||
|
<<?Pos(67,36)
|
||||||
|
"Cannot unify `Cat` and `Animal` in a invariant context\n"
|
||||||
|
"when checking the type of the expression `DT_INV(f_c_to_a) : dt_inv(Cat)` against the expected type `dt_inv(Animal)`">>,
|
||||||
<<?Pos(68,36)
|
<<?Pos(68,36)
|
||||||
"Cannot unify `Cat` and `Animal` in a invariant context\n"
|
"Cannot unify `Cat` and `Animal` in a invariant context\n"
|
||||||
"when checking the type of the expression `DT_INV(f_c_to_c) : dt_inv(Cat)` against the expected type `dt_inv(Animal)`">>,
|
"when checking the type of the expression `DT_INV(f_c_to_c) : dt_inv(Cat)` against the expected type `dt_inv(Animal)`">>,
|
||||||
@ -977,6 +1001,9 @@ failing_contracts() ->
|
|||||||
<<?Pos(116,59)
|
<<?Pos(116,59)
|
||||||
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
||||||
"when checking the type of the expression `DT_A_CONTRA_B_CONTRA(f_c_to_c_to_u) : dt_a_contra_b_contra(Cat, Cat)` against the expected type `dt_a_contra_b_contra(Animal, Animal)`">>,
|
"when checking the type of the expression `DT_A_CONTRA_B_CONTRA(f_c_to_c_to_u) : dt_a_contra_b_contra(Cat, Cat)` against the expected type `dt_a_contra_b_contra(Animal, Animal)`">>,
|
||||||
|
<<?Pos(116,59)
|
||||||
|
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
||||||
|
"when checking the type of the expression `DT_A_CONTRA_B_CONTRA(f_c_to_c_to_u) : dt_a_contra_b_contra(Cat, Cat)` against the expected type `dt_a_contra_b_contra(Animal, Animal)`">>,
|
||||||
<<?Pos(119,59)
|
<<?Pos(119,59)
|
||||||
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
||||||
"when checking the type of the expression `DT_A_CONTRA_B_CONTRA(f_c_to_a_to_u) : dt_a_contra_b_contra(Cat, Animal)` against the expected type `dt_a_contra_b_contra(Animal, Cat)`">>,
|
"when checking the type of the expression `DT_A_CONTRA_B_CONTRA(f_c_to_a_to_u) : dt_a_contra_b_contra(Cat, Animal)` against the expected type `dt_a_contra_b_contra(Animal, Cat)`">>,
|
||||||
@ -1020,6 +1047,9 @@ failing_contracts() ->
|
|||||||
<<?Pos(19,13)
|
<<?Pos(19,13)
|
||||||
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
||||||
"when checking the type of the pattern `o07 : oracle(Animal, Cat)` against the expected type `oracle(Cat, Animal)`">>,
|
"when checking the type of the pattern `o07 : oracle(Animal, Cat)` against the expected type `oracle(Cat, Animal)`">>,
|
||||||
|
<<?Pos(19,13)
|
||||||
|
"Cannot unify `Animal` and `Cat` in a covariant context\n"
|
||||||
|
"when checking the type of the pattern `o07 : oracle(Animal, Cat)` against the expected type `oracle(Cat, Animal)`">>,
|
||||||
<<?Pos(20,13)
|
<<?Pos(20,13)
|
||||||
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
"Cannot unify `Cat` and `Animal` in a contravariant context\n"
|
||||||
"when checking the type of the pattern `o08 : oracle(Animal, Cat)` against the expected type `oracle(Cat, Cat)`">>,
|
"when checking the type of the pattern `o08 : oracle(Animal, Cat)` against the expected type `oracle(Cat, Cat)`">>,
|
||||||
@ -1044,6 +1074,9 @@ failing_contracts() ->
|
|||||||
<<?Pos(42,13)
|
<<?Pos(42,13)
|
||||||
"Cannot unify `Animal` and `Cat` in a covariant context\n"
|
"Cannot unify `Animal` and `Cat` in a covariant context\n"
|
||||||
"when checking the type of the pattern `q13 : oracle_query(Cat, Cat)` against the expected type `oracle_query(Animal, Animal)`">>,
|
"when checking the type of the pattern `q13 : oracle_query(Cat, Cat)` against the expected type `oracle_query(Animal, Animal)`">>,
|
||||||
|
<<?Pos(42,13)
|
||||||
|
"Cannot unify `Animal` and `Cat` in a covariant context\n"
|
||||||
|
"when checking the type of the pattern `q13 : oracle_query(Cat, Cat)` against the expected type `oracle_query(Animal, Animal)`">>,
|
||||||
<<?Pos(43,13)
|
<<?Pos(43,13)
|
||||||
"Cannot unify `Animal` and `Cat` in a covariant context\n"
|
"Cannot unify `Animal` and `Cat` in a covariant context\n"
|
||||||
"when checking the type of the pattern `q14 : oracle_query(Cat, Cat)` against the expected type `oracle_query(Animal, Cat)`">>,
|
"when checking the type of the pattern `q14 : oracle_query(Cat, Cat)` against the expected type `oracle_query(Animal, Cat)`">>,
|
||||||
|
5
test/contracts/bad_bytes_to_x.aes
Normal file
5
test/contracts/bad_bytes_to_x.aes
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// include "String.aes"
|
||||||
|
contract BytesToX =
|
||||||
|
entrypoint fail1(b : bytes()) = Bytes.to_fixed_size(b)
|
||||||
|
entrypoint fail2(b : bytes(4)) = Bytes.to_fixed_size(b)
|
||||||
|
entrypoint fail3(b : bytes()) = Bytes.to_any_size(b)
|
27
test/contracts/bytes_misc.aes
Normal file
27
test/contracts/bytes_misc.aes
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
include "String.aes"
|
||||||
|
contract BytesMisc =
|
||||||
|
entrypoint sizeFixed(b : bytes(4)) : int = Bytes.size(b)
|
||||||
|
entrypoint sizeAny(b : bytes()) : int = Bytes.size(b)
|
||||||
|
entrypoint int_to_bytes(i : int) : bytes() = Int.to_bytes(i, 16)
|
||||||
|
|
||||||
|
entrypoint test(b3 : bytes(3), b7 : bytes(7), bX : bytes, i : int, s : string) =
|
||||||
|
let bi = Int.to_bytes(i, 8)
|
||||||
|
let bs = String.to_bytes(s)
|
||||||
|
|
||||||
|
let b10 = Bytes.concat(b3, b7)
|
||||||
|
|
||||||
|
let (b4, b6 : bytes(6)) = Bytes.split(b10)
|
||||||
|
|
||||||
|
let Some((b8, b2)) = Bytes.split_any(bX, 8)
|
||||||
|
|
||||||
|
let bX7 = Bytes.concat(bX, b7)
|
||||||
|
|
||||||
|
let Some((b5, bX2)) = Bytes.split_any(bX7, 5)
|
||||||
|
|
||||||
|
let Some((b7b, b0)) = Bytes.split_any(bX, Bytes.size(b7))
|
||||||
|
|
||||||
|
let Some(b5b : bytes(5)) = Bytes.to_fixed_size(b5)
|
||||||
|
|
||||||
|
let (b1 : bytes(1), _) = Bytes.split(b5b)
|
||||||
|
|
||||||
|
[bi, bs, b0, Bytes.to_any_size(b1), b2, Bytes.to_any_size(b4), Bytes.to_any_size(b6), b7b, b8, bX2]
|
@ -6,3 +6,5 @@ contract BytesToX =
|
|||||||
String.concat(Bytes.to_str(b), Bytes.to_str(#ffff))
|
String.concat(Bytes.to_str(b), Bytes.to_str(#ffff))
|
||||||
entrypoint to_str_big(b : bytes(65)) : string =
|
entrypoint to_str_big(b : bytes(65)) : string =
|
||||||
Bytes.to_str(b)
|
Bytes.to_str(b)
|
||||||
|
entrypoint to_fixed(b : bytes()) : option(bytes(4)) = Bytes.to_fixed_size(b)
|
||||||
|
entrypoint to_any(b : bytes(4)) = Bytes.to_any_size(b)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user