Merge branch 'refactor/add-cli-tests' into 'refactor/everything'

Refactor/add cli tests

See merge request ligolang/ligo!80
This commit is contained in:
Matej Šima 2019-09-22 13:06:52 +00:00
commit a4c667c6cd
3 changed files with 121 additions and 0 deletions

View File

@ -97,6 +97,8 @@ build-current-docker-image:
stage: build_docker stage: build_docker
<<: *docker <<: *docker
<<: *docker_build <<: *docker_build
after_script:
- scripts/test_cli.sh
except: except:
- master - master
- dev - dev
@ -109,6 +111,7 @@ build-and-publish-latest-docker-image:
<<: *docker_build <<: *docker_build
after_script: after_script:
- docker login -u $LIGO_REGISTRY_USER -p $LIGO_REGISTRY_PASSWORD - docker login -u $LIGO_REGISTRY_USER -p $LIGO_REGISTRY_PASSWORD
- scripts/test_cli.sh
- docker push $LIGO_REGISTRY_IMAGE:next - docker push $LIGO_REGISTRY_IMAGE:next
only: only:
- dev - dev

1
scripts/ligo_ci.sh Executable file
View File

@ -0,0 +1 @@
docker run -i -v "$PWD":"$PWD" -w "$PWD" ligolang/ligo:next "$@"

117
scripts/test_cli.sh Executable file
View File

@ -0,0 +1,117 @@
#!/bin/sh
set -e
compiled_contract=$(./scripts/ligo_ci.sh compile-contract src/test/contracts/website2.ligo main);
compiled_storage=$(./scripts/ligo_ci.sh compile-storage src/test/contracts/website2.ligo main 1);
compiled_parameter=$(./scripts/ligo_ci.sh compile-parameter src/test/contracts/website2.ligo main "Increment(1)");
dry_run_output=$(./scripts/ligo_ci.sh dry-run src/test/contracts/website2.ligo main "Increment(1)" 1);
expected_compiled_contract="{ parameter (or int int) ;
storage int ;
code { {} ;
{} ;
{} ;
{ PUSH (lambda (pair int int) int)
{ {} ;
{} ;
{} ;
{ { { DUP ; DIP { {} } } ; CAR } ;
{ { { { DIP { DUP } ; SWAP } ; DIP { {} } } ; CDR } ;
{ PUSH unit Unit ;
DROP ;
{ { { DIP { DUP } ; SWAP } ; DIP { { DUP ; DIP { {} } } } } ;
ADD } } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } ;
{} } ;
{ PUSH (lambda (pair int int) int)
{ {} ;
{} ;
{} ;
{ { { DUP ; DIP { {} } } ; CAR } ;
{ { { { DIP { DUP } ; SWAP } ; DIP { {} } } ; CDR } ;
{ PUSH unit Unit ;
DROP ;
{ { { DIP { DUP } ; SWAP } ; DIP { { DUP ; DIP { {} } } } } ;
SUB } } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } ;
{} } ;
{ { { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } ; DIP { {} } } ;
CAR } ;
{ { { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } ;
DIP { {} } } ;
CDR } ;
{ PUSH unit Unit ;
DROP ;
{ { NIL operation ;
DIP { { { { DIP { DUP } ; SWAP } ;
IF_LEFT
{ { { DUP ;
{ { { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } ;
DIP { { DUP ; DIP { {} } } } } ;
PAIR } ;
DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ;
SWAP } } ;
EXEC } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } } }
{ { { DUP ;
{ { { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } ;
DIP { { DUP ; DIP { {} } } } } ;
PAIR } ;
DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ;
SWAP } } ;
SWAP } } ;
EXEC } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } } } } ;
DIP { {} } } } } ;
PAIR } } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } } ;
{} ;
DIP { DROP } ;
{} } }";
expected_compiled_parameter="(Right 1)";
expected_compiled_storage=1;
expected_dry_run_output="tuple[ list[]
2
]";
if [ "$compiled_contract" != "$expected_compiled_contract" ]; then
echo "Expected $expected_compiled_contract as compile-storage output, got $compiled_contract instead";
exit 1;
fi
if [ "$compiled_storage" != "$expected_compiled_storage" ]; then
echo "Expected $expected_compiled_storage as compile-storage output, got $compiled_storage instead";
exit 1;
fi
if [ "$compiled_parameter" != "$expected_compiled_parameter" ]; then
echo "Expected $expected_compiled_parameter as compile-parameter output, got $compiled_parameter instead";
exit 1;
fi
if [ "$dry_run_output" != "$expected_dry_run_output" ]; then
echo "Expected $expected_dry_run_output as dry-run output, got $dry_run_output instead";
exit 1;
fi