diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f6207a137..d33869ebf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -153,6 +153,11 @@ test:contracts_opcode.sh: script: - dune build @src/bin_client/runtest_contracts_opcode.sh +test:contracts_macros.sh: + <<: *test_definition + script: + - dune build @src/bin_client/runtest_contracts_macros.sh + test:multinode.sh: <<: *test_definition script: diff --git a/src/bin_client/test/contracts/add_delta_timestamp.tz b/src/bin_client/test/contracts_macros/add_delta_timestamp.tz similarity index 100% rename from src/bin_client/test/contracts/add_delta_timestamp.tz rename to src/bin_client/test/contracts_macros/add_delta_timestamp.tz diff --git a/src/bin_client/test/contracts/and.tz b/src/bin_client/test/contracts_macros/and.tz similarity index 100% rename from src/bin_client/test/contracts/and.tz rename to src/bin_client/test/contracts_macros/and.tz diff --git a/src/bin_client/test/contracts/balance.tz b/src/bin_client/test/contracts_macros/balance.tz similarity index 100% rename from src/bin_client/test/contracts/balance.tz rename to src/bin_client/test/contracts_macros/balance.tz diff --git a/src/bin_client/test/contracts/big_map_get_add.tz b/src/bin_client/test/contracts_macros/big_map_get_add.tz similarity index 100% rename from src/bin_client/test/contracts/big_map_get_add.tz rename to src/bin_client/test/contracts_macros/big_map_get_add.tz diff --git a/src/bin_client/test/contracts/big_map_mem.tz b/src/bin_client/test/contracts_macros/big_map_mem.tz similarity index 100% rename from src/bin_client/test/contracts/big_map_mem.tz rename to src/bin_client/test/contracts_macros/big_map_mem.tz diff --git a/src/bin_client/test/contracts/build_list.tz b/src/bin_client/test/contracts_macros/build_list.tz similarity index 100% rename from src/bin_client/test/contracts/build_list.tz rename to src/bin_client/test/contracts_macros/build_list.tz diff --git a/src/bin_client/test/contracts/check_signature.tz b/src/bin_client/test/contracts_macros/check_signature.tz similarity index 100% rename from src/bin_client/test/contracts/check_signature.tz rename to src/bin_client/test/contracts_macros/check_signature.tz diff --git a/src/bin_client/test/contracts/compare.tz b/src/bin_client/test/contracts_macros/compare.tz similarity index 100% rename from src/bin_client/test/contracts/compare.tz rename to src/bin_client/test/contracts_macros/compare.tz diff --git a/src/bin_client/test/contracts/compare_bytes.tz b/src/bin_client/test/contracts_macros/compare_bytes.tz similarity index 100% rename from src/bin_client/test/contracts/compare_bytes.tz rename to src/bin_client/test/contracts_macros/compare_bytes.tz diff --git a/src/bin_client/test/contracts/concat_hello.tz b/src/bin_client/test/contracts_macros/concat_hello.tz similarity index 100% rename from src/bin_client/test/contracts/concat_hello.tz rename to src/bin_client/test/contracts_macros/concat_hello.tz diff --git a/src/bin_client/test/contracts/concat_list.tz b/src/bin_client/test/contracts_macros/concat_list.tz similarity index 100% rename from src/bin_client/test/contracts/concat_list.tz rename to src/bin_client/test/contracts_macros/concat_list.tz diff --git a/src/bin_client/test/contracts/contains_all.tz b/src/bin_client/test/contracts_macros/contains_all.tz similarity index 100% rename from src/bin_client/test/contracts/contains_all.tz rename to src/bin_client/test/contracts_macros/contains_all.tz diff --git a/src/bin_client/test/contracts/create_account.tz b/src/bin_client/test/contracts_macros/create_account.tz similarity index 100% rename from src/bin_client/test/contracts/create_account.tz rename to src/bin_client/test/contracts_macros/create_account.tz diff --git a/src/bin_client/test/contracts/diff_timestamps.tz b/src/bin_client/test/contracts_macros/diff_timestamps.tz similarity index 100% rename from src/bin_client/test/contracts/diff_timestamps.tz rename to src/bin_client/test/contracts_macros/diff_timestamps.tz diff --git a/src/bin_client/test/contracts/empty_map.tz b/src/bin_client/test/contracts_macros/empty_map.tz similarity index 100% rename from src/bin_client/test/contracts/empty_map.tz rename to src/bin_client/test/contracts_macros/empty_map.tz diff --git a/src/bin_client/test/contracts/exec_concat.tz b/src/bin_client/test/contracts_macros/exec_concat.tz similarity index 100% rename from src/bin_client/test/contracts/exec_concat.tz rename to src/bin_client/test/contracts_macros/exec_concat.tz diff --git a/src/bin_client/test/contracts/first.tz b/src/bin_client/test/contracts_macros/first.tz similarity index 100% rename from src/bin_client/test/contracts/first.tz rename to src/bin_client/test/contracts_macros/first.tz diff --git a/src/bin_client/test/contracts/get_map_value.tz b/src/bin_client/test/contracts_macros/get_map_value.tz similarity index 100% rename from src/bin_client/test/contracts/get_map_value.tz rename to src/bin_client/test/contracts_macros/get_map_value.tz diff --git a/src/bin_client/test/contracts/guestbook.tz b/src/bin_client/test/contracts_macros/guestbook.tz similarity index 100% rename from src/bin_client/test/contracts/guestbook.tz rename to src/bin_client/test/contracts_macros/guestbook.tz diff --git a/src/bin_client/test/contracts/hash_consistency_checker.tz b/src/bin_client/test/contracts_macros/hash_consistency_checker.tz similarity index 100% rename from src/bin_client/test/contracts/hash_consistency_checker.tz rename to src/bin_client/test/contracts_macros/hash_consistency_checker.tz diff --git a/src/bin_client/test/contracts/hash_key.tz b/src/bin_client/test/contracts_macros/hash_key.tz similarity index 100% rename from src/bin_client/test/contracts/hash_key.tz rename to src/bin_client/test/contracts_macros/hash_key.tz diff --git a/src/bin_client/test/contracts/hash_string.tz b/src/bin_client/test/contracts_macros/hash_string.tz similarity index 100% rename from src/bin_client/test/contracts/hash_string.tz rename to src/bin_client/test/contracts_macros/hash_string.tz diff --git a/src/bin_client/test/contracts/if.tz b/src/bin_client/test/contracts_macros/if.tz similarity index 100% rename from src/bin_client/test/contracts/if.tz rename to src/bin_client/test/contracts_macros/if.tz diff --git a/src/bin_client/test/contracts/if_some.tz b/src/bin_client/test/contracts_macros/if_some.tz similarity index 100% rename from src/bin_client/test/contracts/if_some.tz rename to src/bin_client/test/contracts_macros/if_some.tz diff --git a/src/bin_client/test/contracts/tez_add_sub.tz b/src/bin_client/test/contracts_macros/tez_add_sub.tz similarity index 100% rename from src/bin_client/test/contracts/tez_add_sub.tz rename to src/bin_client/test/contracts_macros/tez_add_sub.tz diff --git a/src/bin_client/test/dune b/src/bin_client/test/dune index 3e7ef9849..2cee2772a 100644 --- a/src/bin_client/test/dune +++ b/src/bin_client/test/dune @@ -46,6 +46,21 @@ %{bin:tezos-client} %{bin:tezos-admin-client}))) +(alias + (name runtest_contracts_macros.sh) + (deps sandbox.json + test_lib.inc.sh + (glob_files contracts_macros/*)) + (locks /tcp-port/18731 + /tcp-port/19731) + (action + (run bash %{dep:test_contracts_macros.sh} + %{bin:tezos-sandboxed-node.sh} + %{bin:tezos-node} + %{bin:tezos-init-sandboxed-client.sh} + %{bin:tezos-client} + %{bin:tezos-admin-client}))) + (alias (name runtest_multinode.sh) (deps sandbox.json @@ -115,6 +130,7 @@ (deps (alias runtest_basic.sh) (alias runtest_contracts.sh) (alias runtest_contracts_opcode.sh) + (alias runtest_contracts_macros.sh) (alias runtest_multinode.sh) (alias runtest_injection.sh) (alias runtest_tls.sh) diff --git a/src/bin_client/test/test_contracts.sh b/src/bin_client/test/test_contracts.sh index 0bb4d7bf4..05916c81c 100755 --- a/src/bin_client/test/test_contracts.sh +++ b/src/bin_client/test/test_contracts.sh @@ -49,10 +49,10 @@ assert_storage $contract_dir/not.tz None True '(Some False)' assert_storage $contract_dir/not.tz None False '(Some True)' # Logical and -assert_storage $contract_dir/and.tz None "(Pair False False)" '(Some False)' -assert_storage $contract_dir/and.tz None "(Pair False True)" '(Some False)' -assert_storage $contract_dir/and.tz None "(Pair True False)" '(Some False)' -assert_storage $contract_dir/and.tz None "(Pair True True)" '(Some True)' +#assert_storage $contract_dir/and.tz None "(Pair False False)" '(Some False)' +#assert_storage $contract_dir/and.tz None "(Pair False True)" '(Some False)' +#assert_storage $contract_dir/and.tz None "(Pair True False)" '(Some False)' +#assert_storage $contract_dir/and.tz None "(Pair True True)" '(Some True)' # Logical or assert_storage $contract_dir/or.tz None "(Pair False False)" '(Some False)' @@ -68,16 +68,16 @@ assert_storage $contract_dir/xor.tz None "(Pair True True)" '(Some False)' # Build list -assert_storage $contract_dir/build_list.tz '{}' 0 "{ 0 }" -assert_storage $contract_dir/build_list.tz '{}' 3 "{ 0 ; 1 ; 2 ; 3 }" -assert_storage $contract_dir/build_list.tz '{}' 10 \ - "{ 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 10 }" +#assert_storage $contract_dir/build_list.tz '{}' 0 "{ 0 }" +#assert_storage $contract_dir/build_list.tz '{}' 3 "{ 0 ; 1 ; 2 ; 3 }" +#assert_storage $contract_dir/build_list.tz '{}' 10 \ +# "{ 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 10 }" # Concatenate all strings of a list into one string -assert_storage $contract_dir/concat_list.tz '""' '{ "a" ; "b" ; "c" }' '"abc"' -assert_storage $contract_dir/concat_list.tz '""' '{}' '""' -assert_storage $contract_dir/concat_list.tz \ - '""' '{ "Hello" ; " " ; "World" ; "!" }' '"Hello World!"' +#assert_storage $contract_dir/concat_list.tz '""' '{ "a" ; "b" ; "c" }' '"abc"' +#assert_storage $contract_dir/concat_list.tz '""' '{}' '""' +#assert_storage $contract_dir/concat_list.tz \ +# '""' '{ "Hello" ; " " ; "World" ; "!" }' '"Hello World!"' # Find maximum int in list -- returns None if not found assert_storage $contract_dir/max_in_list.tz None '{}' 'None' @@ -153,47 +153,47 @@ assert_storage $contract_dir/map_size.tz 111 \ # Contains all elements -- does the second list contain all of the same elements # as the first one? I'm ignoring element multiplicity -assert_storage $contract_dir/contains_all.tz \ - None '(Pair {} {})' '(Some True)' -assert_storage $contract_dir/contains_all.tz \ - None '(Pair { "a" } { "B" })' '(Some False)' -assert_storage $contract_dir/contains_all.tz \ - None '(Pair { "A" } { "B" })' '(Some False)' -assert_storage $contract_dir/contains_all.tz \ - None '(Pair { "B" } { "B" })' '(Some True)' -assert_storage $contract_dir/contains_all.tz None \ - '(Pair { "B" ; "C" ; "asdf" } { "B" ; "B" ; "asdf" ; "C" })' '(Some True)' -assert_storage $contract_dir/contains_all.tz None \ - '(Pair { "B" ; "B" ; "asdf" ; "C" } { "B" ; "C" ; "asdf" })' '(Some True)' +#assert_storage $contract_dir/contains_all.tz \ +# None '(Pair {} {})' '(Some True)' +#assert_storage $contract_dir/contains_all.tz \ +# None '(Pair { "a" } { "B" })' '(Some False)' +#assert_storage $contract_dir/contains_all.tz \ +# None '(Pair { "A" } { "B" })' '(Some False)' +#assert_storage $contract_dir/contains_all.tz \ +# None '(Pair { "B" } { "B" })' '(Some True)' +#assert_storage $contract_dir/contains_all.tz None \ +# '(Pair { "B" ; "C" ; "asdf" } { "B" ; "B" ; "asdf" ; "C" })' '(Some True)' +#assert_storage $contract_dir/contains_all.tz None \ +# '(Pair { "B" ; "B" ; "asdf" ; "C" } { "B" ; "C" ; "asdf" })' '(Some True)' # Concatenate the string in storage with all strings in the given list -assert_storage $contract_dir/concat_hello.tz '{}' \ - '{ "World!" }' '{ "Hello World!" }' -assert_storage $contract_dir/concat_hello.tz '{}' \ - '{}' '{}' -assert_storage $contract_dir/concat_hello.tz '{}' \ - '{ "test1" ; "test2" }' '{ "Hello test1" ; "Hello test2" }' +#assert_storage $contract_dir/concat_hello.tz '{}' \ +# '{ "World!" }' '{ "Hello World!" }' +#assert_storage $contract_dir/concat_hello.tz '{}' \ +# '{}' '{}' +#assert_storage $contract_dir/concat_hello.tz '{}' \ +# '{ "test1" ; "test2" }' '{ "Hello test1" ; "Hello test2" }' # Create an empty map and add a string to it -assert_storage $contract_dir/empty_map.tz '{}' Unit \ - '{ Elt "hello" "world" }' +#assert_storage $contract_dir/empty_map.tz '{}' Unit \ +# '{ Elt "hello" "world" }' # Get the value stored at the given key in the map -assert_storage $contract_dir/get_map_value.tz '(Pair None { Elt "hello" "hi" })' \ - '"hello"' '(Pair (Some "hi") { Elt "hello" "hi" })' -assert_storage $contract_dir/get_map_value.tz '(Pair None { Elt "hello" "hi" })' \ - '""' '(Pair None { Elt "hello" "hi" })' -assert_storage $contract_dir/get_map_value.tz \ - '(Pair None { Elt "1" "one" ; Elt "2" "two" })' \ - '"1"' '(Pair (Some "one") { Elt "1" "one" ; Elt "2" "two" })' +#assert_storage $contract_dir/get_map_value.tz '(Pair None { Elt "hello" "hi" })' \ +# '"hello"' '(Pair (Some "hi") { Elt "hello" "hi" })' +#assert_storage $contract_dir/get_map_value.tz '(Pair None { Elt "hello" "hi" })' \ +# '""' '(Pair None { Elt "hello" "hi" })' +#assert_storage $contract_dir/get_map_value.tz \ +# '(Pair None { Elt "1" "one" ; Elt "2" "two" })' \ +# '"1"' '(Pair (Some "one") { Elt "1" "one" ; Elt "2" "two" })' # Map iter assert_storage $contract_dir/map_iter.tz '(Pair 0 0)' '{ Elt 0 100 ; Elt 2 100 }' '(Pair 2 200)' assert_storage $contract_dir/map_iter.tz '(Pair 0 0)' '{ Elt 1 1 ; Elt 2 100 }' '(Pair 3 101)' # Return True if True branch of if was taken and False otherwise -assert_storage $contract_dir/if.tz None True '(Some True)' -assert_storage $contract_dir/if.tz None False '(Some False)' +#assert_storage $contract_dir/if.tz None True '(Some True)' +#assert_storage $contract_dir/if.tz None False '(Some False)' # Generate a pair of or types assert_storage $contract_dir/swap_left_right.tz '(Left "X")' '(Left True)' '(Right True)' @@ -210,8 +210,8 @@ assert_storage $contract_dir/loop_left.tz '{""}' '{}' '{}' assert_storage $contract_dir/loop_left.tz '{""}' '{ "c" ; "b" ; "a" }' '{ "a" ; "b" ; "c" }' # Exec concat contract -assert_storage $contract_dir/exec_concat.tz '"?"' '""' '"_abc"' -assert_storage $contract_dir/exec_concat.tz '"?"' '"test"' '"test_abc"' +#assert_storage $contract_dir/exec_concat.tz '"?"' '""' '"_abc"' +#assert_storage $contract_dir/exec_concat.tz '"?"' '"test"' '"test_abc"' # Test PACK/UNPACK and binary format assert_success $client run script $contract_dir/packunpack.tz on storage Unit and input \ @@ -237,25 +237,25 @@ assert_fails $client run script '{parameter (list int);storage (list (list (lis and input '{1;2;3;4;5;6;7;8;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1}' # Get the current balance of the contract -assert_storage $contract_dir/balance.tz '111' Unit '4000000000000' +#assert_storage $contract_dir/balance.tz '111' Unit '4000000000000' # Test comparisons on tez { EQ ; GT ; LT ; GE ; LE } -assert_storage $contract_dir/compare.tz '{}' '(Pair 1000000 2000000)' '{ False ; False ; True ; False ; True }' -assert_storage $contract_dir/compare.tz '{}' '(Pair 2000000 1000000)' '{ False ; True ; False ; True ; False }' -assert_storage $contract_dir/compare.tz '{}' '(Pair 2370000 2370000)' '{ True ; False ; False ; True ; True }' +#assert_storage $contract_dir/compare.tz '{}' '(Pair 1000000 2000000)' '{ False ; False ; True ; False ; True }' +#assert_storage $contract_dir/compare.tz '{}' '(Pair 2000000 1000000)' '{ False ; True ; False ; True ; False }' +#assert_storage $contract_dir/compare.tz '{}' '(Pair 2370000 2370000)' '{ True ; False ; False ; True ; True }' # Test addition and subtraction on tez -assert_storage $contract_dir/tez_add_sub.tz None '(Pair 2000000 1000000)' '(Some (Pair 3000000 1000000))' -assert_storage $contract_dir/tez_add_sub.tz None '(Pair 2310000 1010000)' '(Some (Pair 3320000 1300000))' +#assert_storage $contract_dir/tez_add_sub.tz None '(Pair 2000000 1000000)' '(Some (Pair 3000000 1000000))' +#assert_storage $contract_dir/tez_add_sub.tz None '(Pair 2310000 1010000)' '(Some (Pair 3320000 1300000))' # Test get first element of list -assert_storage $contract_dir/first.tz '111' '{ 1 ; 2 ; 3 ; 4 }' '1' -assert_storage $contract_dir/first.tz '111' '{ 4 }' '4' +#assert_storage $contract_dir/first.tz '111' '{ 1 ; 2 ; 3 ; 4 }' '1' +#assert_storage $contract_dir/first.tz '111' '{ 4 }' '4' # Hash input string # Test assumed to be correct -- hash is based on encoding of AST -assert_storage $contract_dir/hash_string.tz '0x00' '"abcdefg"' '0x46fdbcb4ea4eadad5615cdaa17d67f783e01e21149ce2b27de497600b4cd8f4e' -assert_storage $contract_dir/hash_string.tz '0x00' '"12345"' '0xb4c26c20de52a4eaf0d8a340db47ad8cb1e74049570859c9a9a3952b204c772f' +#assert_storage $contract_dir/hash_string.tz '0x00' '"abcdefg"' '0x46fdbcb4ea4eadad5615cdaa17d67f783e01e21149ce2b27de497600b4cd8f4e' +#assert_storage $contract_dir/hash_string.tz '0x00' '"12345"' '0xb4c26c20de52a4eaf0d8a340db47ad8cb1e74049570859c9a9a3952b204c772f' # Test ASSERT #assert_storage $contract_dir/assert.tz Unit True Unit @@ -314,8 +314,8 @@ assert_storage $contract_dir/hash_string.tz '0x00' '"12345"' '0xb4c26c20de52a4ea #assert_fails $client run script $contract_dir/assert_cmpge.tz on storage Unit and input '(Pair -1 0)' # IF_SOME -assert_storage $contract_dir/if_some.tz '"?"' '(Some "hello")' '"hello"' -assert_storage $contract_dir/if_some.tz '"?"' 'None' '""' +#assert_storage $contract_dir/if_some.tz '"?"' '(Some "hello")' '"hello"' +#assert_storage $contract_dir/if_some.tz '"?"' 'None' '""' # Tests the SET_CAR and SET_CDR instructions assert_storage $contract_dir/set_car.tz '(Pair "hello" 0)' '"world"' '(Pair "world" 0)' @@ -338,27 +338,27 @@ assert_storage $contract_dir/map_caddaadr.tz \ '(Pair (Pair 1 (Pair 2 (Pair (Pair (Pair 3 1000000) 4) 5))) 6)' # Did the given key sign the string? (key is bootstrap1) -assert_success $client run script $contract_dir/check_signature.tz \ - on storage '(Pair "edsigthTzJ8X7MPmNeEwybRAvdxS1pupqcM5Mk4uCuyZAe7uEk68YpuGDeViW8wSXMrCi5CwoNgqs8V2w8ayB5dMJzrYCHhD8C7" "hello")' \ - and input '"edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav"' +#assert_success $client run script $contract_dir/check_signature.tz \ +# on storage '(Pair "edsigthTzJ8X7MPmNeEwybRAvdxS1pupqcM5Mk4uCuyZAe7uEk68YpuGDeViW8wSXMrCi5CwoNgqs8V2w8ayB5dMJzrYCHhD8C7" "hello")' \ +# and input '"edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav"' -assert_fails $client run script $contract_dir/check_signature.tz \ - on storage '(Pair "edsigthTzJ8X7MPmNeEwybRAvdxS1pupqcM5Mk4uCuyZAe7uEk68YpuGDeViW8wSXMrCi5CwoNgqs8V2w8ayB5dMJzrYCHhD8C7" "abcd")' \ - and input '"edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav"' +#assert_fails $client run script $contract_dir/check_signature.tz \ +# on storage '(Pair "edsigthTzJ8X7MPmNeEwybRAvdxS1pupqcM5Mk4uCuyZAe7uEk68YpuGDeViW8wSXMrCi5CwoNgqs8V2w8ayB5dMJzrYCHhD8C7" "abcd")' \ +# and input '"edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav"' # Convert a public key to a public key hash -assert_storage $contract_dir/hash_key.tz None '"edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav"' \ - '(Some "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx")' -assert_storage $contract_dir/hash_key.tz None '"edpkuJqtDcA2m2muMxViSM47MPsGQzmyjnNTawUPqR8vZTAMcx61ES"' \ - '(Some "tz1XPTDmvT3vVE5Uunngmixm7gj7zmdbPq6k")' +#assert_storage $contract_dir/hash_key.tz None '"edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav"' \ +# '(Some "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx")' +#assert_storage $contract_dir/hash_key.tz None '"edpkuJqtDcA2m2muMxViSM47MPsGQzmyjnNTawUPqR8vZTAMcx61ES"' \ +# '(Some "tz1XPTDmvT3vVE5Uunngmixm7gj7zmdbPq6k")' -bake_after $client transfer 1,000 from bootstrap1 to $key1 -bake_after $client transfer 2,000 from bootstrap1 to $key2 +#bake_after $client transfer 1,000 from bootstrap1 to $key1 +#bake_after $client transfer 2,000 from bootstrap1 to $key2 -assert_balance $key1 "1000 ꜩ" -assert_balance $key2 "2000 ꜩ" +#assert_balance $key1 "1000 ꜩ" +#assert_balance $key2 "2000 ꜩ" # Create a contract and transfer 100 ꜩ to it init_with_transfer $contract_dir/store_input.tz $key1 '""' 100 bootstrap1 @@ -383,18 +383,18 @@ assert_storage $contract_dir/add_timestamp_delta.tz None '(Pair 100 100)' '(Some assert_storage $contract_dir/add_timestamp_delta.tz None '(Pair 100 -100)' '(Some "1970-01-01T00:00:00Z")' assert_storage $contract_dir/add_timestamp_delta.tz None '(Pair "1970-01-01T00:00:00Z" 0)' '(Some "1970-01-01T00:00:00Z")' -assert_storage $contract_dir/add_delta_timestamp.tz None '(Pair 100 100)' '(Some "1970-01-01T00:03:20Z")' -assert_storage $contract_dir/add_delta_timestamp.tz None '(Pair -100 100)' '(Some "1970-01-01T00:00:00Z")' -assert_storage $contract_dir/add_delta_timestamp.tz None '(Pair 0 "1970-01-01T00:00:00Z")' '(Some "1970-01-01T00:00:00Z")' +#assert_storage $contract_dir/add_delta_timestamp.tz None '(Pair 100 100)' '(Some "1970-01-01T00:03:20Z")' +#assert_storage $contract_dir/add_delta_timestamp.tz None '(Pair -100 100)' '(Some "1970-01-01T00:00:00Z")' +#assert_storage $contract_dir/add_delta_timestamp.tz None '(Pair 0 "1970-01-01T00:00:00Z")' '(Some "1970-01-01T00:00:00Z")' assert_storage $contract_dir/sub_timestamp_delta.tz 111 '(Pair 100 100)' '"1970-01-01T00:00:00Z"' assert_storage $contract_dir/sub_timestamp_delta.tz 111 '(Pair 100 -100)' '"1970-01-01T00:03:20Z"' assert_storage $contract_dir/sub_timestamp_delta.tz 111 '(Pair 100 2000000000000000000)' -1999999999999999900 -assert_storage $contract_dir/diff_timestamps.tz 111 '(Pair 0 0)' 0 -assert_storage $contract_dir/diff_timestamps.tz 111 '(Pair 0 1)' -1 -assert_storage $contract_dir/diff_timestamps.tz 111 '(Pair 1 0)' 1 -assert_storage $contract_dir/diff_timestamps.tz 111 '(Pair "1970-01-01T00:03:20Z" "1970-01-01T00:00:00Z")' 200 +#assert_storage $contract_dir/diff_timestamps.tz 111 '(Pair 0 0)' 0 +#assert_storage $contract_dir/diff_timestamps.tz 111 '(Pair 0 1)' -1 +#assert_storage $contract_dir/diff_timestamps.tz 111 '(Pair 1 0)' 1 +#assert_storage $contract_dir/diff_timestamps.tz 111 '(Pair "1970-01-01T00:03:20Z" "1970-01-01T00:00:00Z")' 200 # Tests TRANSFER_TO @@ -415,16 +415,16 @@ init_with_transfer $contract_dir/replay.tz $key2 Unit 0 bootstrap1 assert_fails $client transfer 0 from bootstrap1 to replay # Tests create_account -init_with_transfer $contract_dir/create_account.tz $key2 None 1,000 bootstrap1 -assert_balance create_account "1000 ꜩ" -created_account=\ -`$client transfer 100 from bootstrap1 to create_account -arg '(Left "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx")' \ -| grep 'New contract' \ -| sed -E 's/.*(KT1[a-zA-Z0-9]+).*/\1/' \ -| head -1` -bake -assert_balance $created_account "100 ꜩ" -assert_balance create_account "1000 ꜩ" +#init_with_transfer $contract_dir/create_account.tz $key2 None 1,000 bootstrap1 +#assert_balance create_account "1000 ꜩ" +#created_account=\ +#`$client transfer 100 from bootstrap1 to create_account -arg '(Left "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx")' \ +#| grep 'New contract' \ +#| sed -E 's/.*(KT1[a-zA-Z0-9]+).*/\1/' \ +#| head -1` +#bake +#assert_balance $created_account "100 ꜩ" +#assert_balance create_account "1000 ꜩ" # Creates a contract, transfers data to it and stores the data init_with_transfer $contract_dir/create_contract.tz $key2 Unit 1,000 bootstrap1 @@ -466,10 +466,10 @@ assert_success $client transfer 0 from bootstrap1 to reveal_signed_preimage -arg bake # Test comparisons on bytes { EQ ; GT ; LT ; GE ; LE } -assert_storage $contract_dir/compare_bytes.tz '{}' '(Pair 0x33 0x34)' '{ False ; False ; True ; False ; True }' -assert_storage $contract_dir/compare_bytes.tz '{}' '(Pair 0x33 0x33aa)' '{ False ; False ; True ; False ; True }' -assert_storage $contract_dir/compare_bytes.tz '{}' '(Pair 0x33 0x33)' '{ True ; False ; False ; True ; True }' -assert_storage $contract_dir/compare_bytes.tz '{}' '(Pair 0x34 0x33)' '{ False ; True ; False ; True ; False }' +#assert_storage $contract_dir/compare_bytes.tz '{}' '(Pair 0x33 0x34)' '{ False ; False ; True ; False ; True }' +#assert_storage $contract_dir/compare_bytes.tz '{}' '(Pair 0x33 0x33aa)' '{ False ; False ; True ; False ; True }' +#assert_storage $contract_dir/compare_bytes.tz '{}' '(Pair 0x33 0x33)' '{ True ; False ; False ; True ; True }' +#assert_storage $contract_dir/compare_bytes.tz '{}' '(Pair 0x34 0x33)' '{ False ; True ; False ; True ; False }' # Test SLICE and SIZE on bytes init_with_transfer $contract_dir/slices.tz bootstrap1 \ @@ -530,56 +530,56 @@ assert_fails $client typecheck data '{ "A" ; "C" ; "B" }' against type '(set str assert_fails $client typecheck data '{ "A" ; "B" ; "B" }' against type '(set string)' # Test hash consistency between Michelson and the CLI -hash_result=`$client hash data '(Pair 22220000000 (Pair "2017-12-13T04:49:00Z" 034))' \ - of type '(pair mutez (pair timestamp int))' | grep Blake2b | sed 's/.*: *//'` +#hash_result=`$client hash data '(Pair 22220000000 (Pair "2017-12-13T04:49:00Z" 034))' \ +# of type '(pair mutez (pair timestamp int))' | grep Blake2b | sed 's/.*: *//'` -assert_storage $contract_dir/hash_consistency_checker.tz '0x00' \ - '(Pair 22220000000 (Pair "2017-12-13T04:49:00Z" 034))' "$hash_result" +#assert_storage $contract_dir/hash_consistency_checker.tz '0x00' \ +# '(Pair 22220000000 (Pair "2017-12-13T04:49:00Z" 034))' "$hash_result" -assert_storage $contract_dir/hash_consistency_checker.tz '0x00' \ - '(Pair 22220000000 (Pair "2017-12-13T04:49:00+00:00" 34))' "$hash_result" +#assert_storage $contract_dir/hash_consistency_checker.tz '0x00' \ +# '(Pair 22220000000 (Pair "2017-12-13T04:49:00+00:00" 34))' "$hash_result" # Test goldenbook -init_with_transfer $contract_dir/guestbook.tz $key1\ - '{ Elt "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" None }' \ - 100 bootstrap1 -assert_fails $client transfer 0 from bootstrap2 to guestbook -arg '"Pas moi"' -bake_after $client transfer 0 from bootstrap1 to guestbook -arg '"Coucou"' -assert_storage_contains guestbook '{ Elt "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" (Some "Coucou") }' -assert_fails $client transfer 0 from bootstrap3 to guestbook -arg '"Pas moi non plus"' -assert_fails $client transfer 0 from bootstrap1 to guestbook -arg '"Recoucou ?"' +#init_with_transfer $contract_dir/guestbook.tz $key1\ +# '{ Elt "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" None }' \ +# 100 bootstrap1 +#assert_fails $client transfer 0 from bootstrap2 to guestbook -arg '"Pas moi"' +#bake_after $client transfer 0 from bootstrap1 to guestbook -arg '"Coucou"' +#assert_storage_contains guestbook '{ Elt "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" (Some "Coucou") }' +#assert_fails $client transfer 0 from bootstrap3 to guestbook -arg '"Pas moi non plus"' +#assert_fails $client transfer 0 from bootstrap1 to guestbook -arg '"Recoucou ?"' # Test for big maps -init_with_transfer $contract_dir/big_map_mem.tz $key1\ - '(Pair { Elt 1 Unit ; Elt 2 Unit ; Elt 3 Unit } Unit)' \ - 100 bootstrap1 -bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 0 False)' -assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 0 True)' -bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 1 True)' -assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 1 False)' -bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 2 True)' -assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 2 False)' -bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 3 True)' -assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 3 False)' -bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 4 False)' -assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 4 True)' -assert_fails $client typecheck data '3' against type \ - '(int @aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)' -$client typecheck data '3' against type \ - '(int @aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)' +#init_with_transfer $contract_dir/big_map_mem.tz $key1\ +# '(Pair { Elt 1 Unit ; Elt 2 Unit ; Elt 3 Unit } Unit)' \ +# 100 bootstrap1 +#bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 0 False)' +#assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 0 True)' +#bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 1 True)' +#assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 1 False)' +#bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 2 True)' +#assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 2 False)' +#bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 3 True)' +#assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 3 False)' +#bake_after $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 4 False)' +#assert_fails $client transfer 1 from bootstrap1 to big_map_mem -arg '(Pair 4 True)' +#assert_fails $client typecheck data '3' against type \ +# '(int @aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)' +#$client typecheck data '3' against type \ +# '(int @aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)' -init_with_transfer $contract_dir/big_map_get_add.tz $key1\ - '(Pair { Elt 0 1 ; Elt 1 2 ; Elt 2 3 } Unit)' \ - 100 bootstrap1 +#init_with_transfer $contract_dir/big_map_get_add.tz $key1\ +# '(Pair { Elt 0 1 ; Elt 1 2 ; Elt 2 3 } Unit)' \ +# 100 bootstrap1 -bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 200 (Some 2)) (Pair 200 (Some 2)))' -bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 200 None) (Pair 200 None))' -bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 200 None) (Pair 300 None))' -bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 1 None) (Pair 200 None))' -bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 1 (Some 2)) (Pair 0 (Some 1)))' -bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 400 (Some 1232)) (Pair 400 (Some 1232)))' -bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 401 (Some 0)) (Pair 400 (Some 1232)))' +#bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 200 (Some 2)) (Pair 200 (Some 2)))' +#bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 200 None) (Pair 200 None))' +#bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 200 None) (Pair 300 None))' +#bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 1 None) (Pair 200 None))' +#bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 1 (Some 2)) (Pair 0 (Some 1)))' +#bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 400 (Some 1232)) (Pair 400 (Some 1232)))' +#bake_after $client transfer 1 from bootstrap1 to big_map_get_add -arg '(Pair (Pair 401 (Some 0)) (Pair 400 (Some 1232)))' # Test for issue #262 tee /tmp/bug_262.tz <