diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bdb855125..852a3047e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -49,9 +49,9 @@ jobs: - name: run zappify run: | npm ci && ./bin/start - zappify -i test/contracts/Assign.zol -o temp-zapps - zappify -i test/contracts/If-Statement.zol -o temp-zapps - zappify -i test/contracts/internalFunctionCallTest1.zol -o temp-zapps + zappify -i test/contracts/User-Friendly-tests/Assign.zol -o temp-zapps + zappify -i test/contracts/User-Friendly-tests/If-Statement.zol -o temp-zapps + zappify -i test/contracts/User-Friendly-tests/internalFunctionCallTest1.zol -o temp-zapps - name: replace zokrates image for actions test uses: jacobtomlinson/gha-find-replace@v2 diff --git a/test.sh b/test.sh index 8549431cb..ca301c1f3 100755 --- a/test.sh +++ b/test.sh @@ -1,23 +1,23 @@ npm i solc@^0.8.0 -g cd zapps/ -echo “$(tput setaf 3) SHIELDCONTRACTS” +echo “$(tput setaf 3) SHIELDCONTRACTS” SOLFILES=$(find . -type f -name "*Shield*.sol" -maxdepth 3 -mindepth 3) solarray=($SOLFILES) for solelement in "${solarray[@]}" do DIR="$(dirname "${solelement}")" solelement="${solelement:2}" - echo “$(tput setaf 7) $solelement compiling” + echo “$(tput setaf 7) $solelement compiling” solcjs --abi -o $DIR --include-path node_modules/ --base-path . $solelement || echo “$(tput setaf 1) $solelement failed” done -echo “$(tput setaf 3) CIRCUITS” +echo “$(tput setaf 3) CIRCUITS” ZOKFILES=$(find . -type f -name "*.zok" -maxdepth 3 -mindepth 3) zokarray=($ZOKFILES) for zokelement in "${zokarray[@]}" do zokelement="${zokelement:1}" - echo “$(tput setaf 7) $zokelement compiling” + echo “$(tput setaf 7) $zokelement compiling” docker run -v $PWD:/app/code --name testcircuits -ti ghcr.io/eyblockchain/zokrates-worker-m1 ./zokrates compile -i code$zokelement || echo “$(tput setaf 1) $zokelement failed” docker rm testcircuits -done \ No newline at end of file +done diff --git a/test/contracts/Assign-Return.zol b/test/contracts/Action-tests/Assign-Return.zol similarity index 100% rename from test/contracts/Assign-Return.zol rename to test/contracts/Action-tests/Assign-Return.zol diff --git a/test/contracts/If-public.zol b/test/contracts/Action-tests/If-public.zol similarity index 100% rename from test/contracts/If-public.zol rename to test/contracts/Action-tests/If-public.zol diff --git a/test/contracts/Partitioned-decrement-2.zol b/test/contracts/Action-tests/Partitioned-decrement-2.zol similarity index 100% rename from test/contracts/Partitioned-decrement-2.zol rename to test/contracts/Action-tests/Partitioned-decrement-2.zol diff --git a/test/contracts/Public-accessed-2.zol b/test/contracts/Action-tests/Public-accessed-2.zol similarity index 100% rename from test/contracts/Public-accessed-2.zol rename to test/contracts/Action-tests/Public-accessed-2.zol diff --git a/test/contracts/SimpleStruct4.zol b/test/contracts/Action-tests/SimpleStruct4.zol similarity index 100% rename from test/contracts/SimpleStruct4.zol rename to test/contracts/Action-tests/SimpleStruct4.zol diff --git a/test/contracts/for-InternalFunctionCall.zol b/test/contracts/Action-tests/for-InternalFunctionCall.zol similarity index 100% rename from test/contracts/for-InternalFunctionCall.zol rename to test/contracts/Action-tests/for-InternalFunctionCall.zol diff --git a/test/contracts/for-for.zol b/test/contracts/Action-tests/for-for.zol similarity index 100% rename from test/contracts/for-for.zol rename to test/contracts/Action-tests/for-for.zol diff --git a/test/contracts/for-if.zol b/test/contracts/Action-tests/for-if.zol similarity index 100% rename from test/contracts/for-if.zol rename to test/contracts/Action-tests/for-if.zol diff --git a/test/contracts/internalFunctionTest4.zol b/test/contracts/Action-tests/internalFunctionTest4.zol similarity index 100% rename from test/contracts/internalFunctionTest4.zol rename to test/contracts/Action-tests/internalFunctionTest4.zol diff --git a/test/contracts/internalFunctionTest5.zol b/test/contracts/Action-tests/internalFunctionTest5.zol similarity index 100% rename from test/contracts/internalFunctionTest5.zol rename to test/contracts/Action-tests/internalFunctionTest5.zol diff --git a/test/contracts/mapping-3.zol b/test/contracts/Action-tests/mapping-3.zol similarity index 100% rename from test/contracts/mapping-3.zol rename to test/contracts/Action-tests/mapping-3.zol diff --git a/test/contracts/modifier.zol b/test/contracts/Action-tests/modifier.zol similarity index 100% rename from test/contracts/modifier.zol rename to test/contracts/Action-tests/modifier.zol diff --git a/test/contracts/Arrays.zol b/test/contracts/User-Friendly-tests/Arrays.zol similarity index 100% rename from test/contracts/Arrays.zol rename to test/contracts/User-Friendly-tests/Arrays.zol diff --git a/test/contracts/Assign-Return1.zol b/test/contracts/User-Friendly-tests/Assign-Return1.zol similarity index 100% rename from test/contracts/Assign-Return1.zol rename to test/contracts/User-Friendly-tests/Assign-Return1.zol diff --git a/test/contracts/Assign-constructor.zol b/test/contracts/User-Friendly-tests/Assign-constructor.zol similarity index 100% rename from test/contracts/Assign-constructor.zol rename to test/contracts/User-Friendly-tests/Assign-constructor.zol diff --git a/test/contracts/Assign-fallback.zol b/test/contracts/User-Friendly-tests/Assign-fallback.zol similarity index 100% rename from test/contracts/Assign-fallback.zol rename to test/contracts/User-Friendly-tests/Assign-fallback.zol diff --git a/test/contracts/Assign-mixedStates.zol b/test/contracts/User-Friendly-tests/Assign-mixedStates.zol similarity index 100% rename from test/contracts/Assign-mixedStates.zol rename to test/contracts/User-Friendly-tests/Assign-mixedStates.zol diff --git a/test/contracts/Assign-msgvalue.zol b/test/contracts/User-Friendly-tests/Assign-msgvalue.zol similarity index 100% rename from test/contracts/Assign-msgvalue.zol rename to test/contracts/User-Friendly-tests/Assign-msgvalue.zol diff --git a/test/contracts/Assign-public-admin.zol b/test/contracts/User-Friendly-tests/Assign-public-admin.zol similarity index 100% rename from test/contracts/Assign-public-admin.zol rename to test/contracts/User-Friendly-tests/Assign-public-admin.zol diff --git a/test/contracts/Assign-public-param.zol b/test/contracts/User-Friendly-tests/Assign-public-param.zol similarity index 100% rename from test/contracts/Assign-public-param.zol rename to test/contracts/User-Friendly-tests/Assign-public-param.zol diff --git a/test/contracts/Assign-secret-admin.zol b/test/contracts/User-Friendly-tests/Assign-secret-admin.zol similarity index 100% rename from test/contracts/Assign-secret-admin.zol rename to test/contracts/User-Friendly-tests/Assign-secret-admin.zol diff --git a/test/contracts/Assign-secret-param.zol b/test/contracts/User-Friendly-tests/Assign-secret-param.zol similarity index 100% rename from test/contracts/Assign-secret-param.zol rename to test/contracts/User-Friendly-tests/Assign-secret-param.zol diff --git a/test/contracts/Assign-type-conversion.zol b/test/contracts/User-Friendly-tests/Assign-type-conversion.zol similarity index 100% rename from test/contracts/Assign-type-conversion.zol rename to test/contracts/User-Friendly-tests/Assign-type-conversion.zol diff --git a/test/contracts/Assign.zol b/test/contracts/User-Friendly-tests/Assign.zol similarity index 100% rename from test/contracts/Assign.zol rename to test/contracts/User-Friendly-tests/Assign.zol diff --git a/test/contracts/BucketsOfBalls.zol b/test/contracts/User-Friendly-tests/BucketsOfBalls.zol similarity index 100% rename from test/contracts/BucketsOfBalls.zol rename to test/contracts/User-Friendly-tests/BucketsOfBalls.zol diff --git a/test/contracts/Event.zol b/test/contracts/User-Friendly-tests/Event.zol similarity index 100% rename from test/contracts/Event.zol rename to test/contracts/User-Friendly-tests/Event.zol diff --git a/test/contracts/If-Statement.zol b/test/contracts/User-Friendly-tests/If-Statement.zol similarity index 100% rename from test/contracts/If-Statement.zol rename to test/contracts/User-Friendly-tests/If-Statement.zol diff --git a/test/contracts/If-Statement2.zol b/test/contracts/User-Friendly-tests/If-Statement2.zol similarity index 100% rename from test/contracts/If-Statement2.zol rename to test/contracts/User-Friendly-tests/If-Statement2.zol diff --git a/test/contracts/Assign-InternalFunctionCall.zol b/test/contracts/User-Friendly-tests/InternalFunctionCall-mappings.zol similarity index 100% rename from test/contracts/Assign-InternalFunctionCall.zol rename to test/contracts/User-Friendly-tests/InternalFunctionCall-mappings.zol diff --git a/test/contracts/Partitioned-Return.zol b/test/contracts/User-Friendly-tests/Partitioned-Return.zol similarity index 100% rename from test/contracts/Partitioned-Return.zol rename to test/contracts/User-Friendly-tests/Partitioned-Return.zol diff --git a/test/contracts/Partitioned-decrement.zol b/test/contracts/User-Friendly-tests/Partitioned-decrement.zol similarity index 100% rename from test/contracts/Partitioned-decrement.zol rename to test/contracts/User-Friendly-tests/Partitioned-decrement.zol diff --git a/test/contracts/Partitioned-inc-dec.zol b/test/contracts/User-Friendly-tests/Partitioned-inc-dec.zol similarity index 100% rename from test/contracts/Partitioned-inc-dec.zol rename to test/contracts/User-Friendly-tests/Partitioned-inc-dec.zol diff --git a/test/contracts/Public-accessed.zol b/test/contracts/User-Friendly-tests/Public-accessed.zol similarity index 100% rename from test/contracts/Public-accessed.zol rename to test/contracts/User-Friendly-tests/Public-accessed.zol diff --git a/test/contracts/SimpleStruct.zol b/test/contracts/User-Friendly-tests/SimpleStruct.zol similarity index 100% rename from test/contracts/SimpleStruct.zol rename to test/contracts/User-Friendly-tests/SimpleStruct.zol diff --git a/test/contracts/SimpleStruct2.zol b/test/contracts/User-Friendly-tests/SimpleStruct2.zol similarity index 100% rename from test/contracts/SimpleStruct2.zol rename to test/contracts/User-Friendly-tests/SimpleStruct2.zol diff --git a/test/contracts/SimpleStruct3.zol b/test/contracts/User-Friendly-tests/SimpleStruct3.zol similarity index 100% rename from test/contracts/SimpleStruct3.zol rename to test/contracts/User-Friendly-tests/SimpleStruct3.zol diff --git a/test/contracts/Whole-decrement.zol b/test/contracts/User-Friendly-tests/Whole-decrement.zol similarity index 100% rename from test/contracts/Whole-decrement.zol rename to test/contracts/User-Friendly-tests/Whole-decrement.zol diff --git a/test/contracts/Whole-increment.zol b/test/contracts/User-Friendly-tests/Whole-increment.zol similarity index 100% rename from test/contracts/Whole-increment.zol rename to test/contracts/User-Friendly-tests/Whole-increment.zol diff --git a/test/contracts/Whole-mult.zol b/test/contracts/User-Friendly-tests/Whole-mult.zol similarity index 100% rename from test/contracts/Whole-mult.zol rename to test/contracts/User-Friendly-tests/Whole-mult.zol diff --git a/test/contracts/for-loop.zol b/test/contracts/User-Friendly-tests/for-loop.zol similarity index 100% rename from test/contracts/for-loop.zol rename to test/contracts/User-Friendly-tests/for-loop.zol diff --git a/test/contracts/increments.zol b/test/contracts/User-Friendly-tests/increments.zol similarity index 100% rename from test/contracts/increments.zol rename to test/contracts/User-Friendly-tests/increments.zol diff --git a/test/contracts/internalFunctionCallTest1.zol b/test/contracts/User-Friendly-tests/internalFunctionCallTest1.zol similarity index 100% rename from test/contracts/internalFunctionCallTest1.zol rename to test/contracts/User-Friendly-tests/internalFunctionCallTest1.zol diff --git a/test/contracts/internalFunctionCallTest2.zol b/test/contracts/User-Friendly-tests/internalFunctionCallTest2.zol similarity index 100% rename from test/contracts/internalFunctionCallTest2.zol rename to test/contracts/User-Friendly-tests/internalFunctionCallTest2.zol diff --git a/test/contracts/internalFunctionCallTest3.zol b/test/contracts/User-Friendly-tests/internalFunctionCallTest3.zol similarity index 100% rename from test/contracts/internalFunctionCallTest3.zol rename to test/contracts/User-Friendly-tests/internalFunctionCallTest3.zol diff --git a/test/contracts/internalFunctionPublicParam.zol b/test/contracts/User-Friendly-tests/internalFunctionPublicParam.zol similarity index 100% rename from test/contracts/internalFunctionPublicParam.zol rename to test/contracts/User-Friendly-tests/internalFunctionPublicParam.zol diff --git a/test/contracts/local-var-dec.zol b/test/contracts/User-Friendly-tests/local-var-dec.zol similarity index 100% rename from test/contracts/local-var-dec.zol rename to test/contracts/User-Friendly-tests/local-var-dec.zol diff --git a/test/contracts/mapping-1.zol b/test/contracts/User-Friendly-tests/mapping-1.zol similarity index 100% rename from test/contracts/mapping-1.zol rename to test/contracts/User-Friendly-tests/mapping-1.zol diff --git a/test/contracts/mapping-2.zol b/test/contracts/User-Friendly-tests/mapping-2.zol similarity index 100% rename from test/contracts/mapping-2.zol rename to test/contracts/User-Friendly-tests/mapping-2.zol diff --git a/test/contracts/modifier-2.zol b/test/contracts/User-Friendly-tests/modifier-2.zol similarity index 100% rename from test/contracts/modifier-2.zol rename to test/contracts/User-Friendly-tests/modifier-2.zol diff --git a/test/contracts/msgvalue-sender.zol b/test/contracts/User-Friendly-tests/msgvalue-sender.zol similarity index 100% rename from test/contracts/msgvalue-sender.zol rename to test/contracts/User-Friendly-tests/msgvalue-sender.zol diff --git a/test/test.js b/test/test.js index f9896a32b..5763ce783 100644 --- a/test/test.js +++ b/test/test.js @@ -7,9 +7,27 @@ import mkdirs from '../bin/mkdirs.mjs'; import zappify from '../built/index.js'; import logger from "../built/utils/logger.js"; -var files = fs.readdirSync('./test/contracts/') -let options = {} +let files = [] ; + +function getFiles(dir) { + + // get all 'files' in this directory + var all = fs.readdirSync(dir); + + // process each checking directories and saving files + return all.map(file => { + // am I a directory? + if (fs.statSync(`${dir}/${file}`).isDirectory()) { + // recursively scan me for my files + return getFiles(`${dir}/${file}`); + } + // WARNING! I could be something else here!!! + return `${dir}/${file}`; // file name (see warning) + }); +} +files = getFiles('./test/contracts').flat(Infinity); +let options = {} describe("AST testing", function () { @@ -17,10 +35,10 @@ describe("AST testing", function () { it("zappifies each contract", function () { this.timeout(100000); files.forEach((file) => { - logger.info('zappifying', file); - options.inputFilePath = './test/contracts/'+file; - options.modifyAST = 'n'; options.inputFileName = path.parse(options.inputFilePath).name; + logger.info('zappifying', options.inputFileName); + options.inputFilePath = file; + options.modifyAST = 'n'; // commander converts 'zapp-name' to 'zappName' options.zappName = options.inputFileName; options.outputDirPath = `./temp-zapps/${options.zappName}`; @@ -35,7 +53,7 @@ describe("AST testing", function () { }); let chosenFile = files[Math.floor(Math.random() * files.length)] - const inputFilePath = './test/contracts/'+chosenFile; + const inputFilePath = chosenFile; const modifyAST = 'n'; const inputFileName = path.parse(inputFilePath).name; // commander converts 'zapp-name' to 'zappName' @@ -46,7 +64,7 @@ describe("AST testing", function () { const contractsDirPath = `${outputDirPath}/contracts`; const orchestrationDirPath = `${outputDirPath}/orchestration`; - logger.info('Testing', chosenFile); + logger.info('Testing', inputFileName); options = { zappName,