Commit Graph

60 Commits

Author SHA1 Message Date
Kamil Śliwak
8e44b59251 Disable shellcheck in the remaining situations where it's either wrong or the problem is not worth fixing 2021-03-15 12:16:43 +01:00
chriseth
8a4e6acdac
Merge pull request #10680 from ethereum/more-features-in-prepare-report
More features in prepare_report.py
2021-02-03 11:51:51 +01:00
Leonardo
d393624384
Merge pull request #10585 from ethereum/fix-quoting-and-whitespace-in-shell-scripts
Fix quoting in shell scripts
2021-02-03 11:27:40 +01:00
Kamil Śliwak
67fe5fb145 prepare_report.py: Print some statistics about contracts and errors 2021-02-02 16:16:28 +01:00
Kamil Śliwak
4576b1ec89 prepare_report.py: --exit-on-error option 2021-02-02 16:16:28 +01:00
Kamil Śliwak
acaab18a0a prepare_report.py: More information on stdout, with verbosity control 2021-02-02 16:16:28 +01:00
Kamil Śliwak
96fd9051ed prepare_report.py: Add --report-file option 2021-02-02 16:16:28 +01:00
Kamil Śliwak
7bebcb7871 prepare_report.js: Print ERROR in case of an exception during compilation instead of failing
- Our v0.4.11 release raises an exception on some LLL snippets containing returnlll (extracted from its end-to-end tests).
- The report comparison will fail anyway because emscripten prints an abort code to stdout in that case but at least we'll be able to continue if we're comparing multiple versions.
2021-02-02 16:16:14 +01:00
Kamil Śliwak
17fe96c4d0 prepare_report.py: Don't use --metadata option with compiler versions that do not support it
- Before 0.4.3 the option was unavailable but ignored.
- Between 0.4.3 and 0.4.6 an attempt to use that option causes an error.
2021-02-02 16:16:14 +01:00
Kamil Śliwak
49aede680b prepare_report.py: Add --force-no-optimize-yul flag to work around a bug in solc 0.6.0/0.6.1 2021-02-02 16:16:14 +01:00
Kamil Śliwak
7e48aeb848 prepare_report.py: Make parsing more lax to handle output from older compiler versions 2021-02-02 16:16:14 +01:00
Kamil Śliwak
b06de9a2d5 prepare_report: Add command-line options for switching between SMT pragma stripping and only disabling the SMT checker 2021-02-02 16:16:14 +01:00
Kamil Śliwak
27754d3e3d Quote stuff properly 2021-02-01 17:14:38 +01:00
Kamil Śliwak
53f9a11440 prepare_report: Handle internal compiler errors in Standard JSON as errors, not missing bytecode 2021-01-26 23:30:38 +01:00
Kamil Śliwak
7f19339934 prepare_report.py: Add support for switching between CLI and Standard JSON compiler interfaces 2021-01-26 23:30:38 +01:00
Kamil Śliwak
151df00bb0 Read/write files in python with newline='' option to preserve newlines as \n on Windows 2021-01-22 12:16:27 +01:00
Kamil Śliwak
ba6acae240 prepare_report.py: Prevent Windows-style paths from ending up in the bytecode report 2021-01-22 12:15:33 +01:00
Kamil Śliwak
6628f19fd8 Modernize prepare_report.py and make it easier to extend
- Add argument parser
- Add type annotations
- Use pathlib
- Split into functions
- Use dataclasses to separate report data from presentation
- Provide more information if the script is interrupted
2021-01-11 17:06:59 +01:00
Kamil Śliwak
887497a406 prepare_report: Make error/missing data placeholders actually look like placeholders 2021-01-11 17:06:59 +01:00
Kamil Śliwak
fe7cc2097b prepare_report: Report missing metadata as well 2021-01-11 17:06:59 +01:00
Kamil Śliwak
9f58f77b50 prepare_report: Unify error/missing data handling between JS and Python versions 2021-01-11 17:06:59 +01:00
Kamil Śliwak
a036cbea19 prepare_report.js: Replace var with const/let + minor cleanup 2021-01-11 17:06:59 +01:00
Kamil Śliwak
42786c2d29 Extract the script embedded in storebytecode.sh into a separate file 2021-01-11 17:06:59 +01:00
Daniel Kirchner
e691b7402a Move standard-json "modelCheckerSettings" key to "settings.modelChecker". 2020-12-09 15:53:32 +01:00
chriseth
36f9392154
Merge pull request #10361 from ethereum/bytecode-comparison-build-dir-outside-repo-root
Allow BUILD_DIR outside of REPO_ROOT in storebytecode.sh
2020-11-24 14:48:22 +01:00
Alex Beregszaszi
5b283f4a08
Merge pull request #10364 from ethereum/bytecode-comparison-with-model-checker-engine-none
Disable SMT checker instead of stripping SMT pragmas in bytecode comparison
2020-11-20 20:00:27 +00:00
Kamil Śliwak
fc1ade7cf6 Use modelCheckerSettings to disable SMT in bytecode comparison instead of stripping the pragmas 2020-11-20 18:53:15 +01:00
Kamil Śliwak
4cf4b03cc8 Remove unused storebytecode.bat 2020-11-20 16:13:30 +01:00
Kamil Śliwak
31a0a31c26 storebytecode.sh: Allow BUILD_DIR outside of REPO_ROOT 2020-11-20 16:12:56 +01:00
Daniel Kirchner
9726ed8586 Perform bytecode comparison on CircleCI. 2020-10-15 00:48:56 +02:00
chriseth
421f9f3876 Disable smt checker for bytecodecompare. 2020-05-27 11:12:40 +02:00
chriseth
75df2342d6 Adding some debug messages to bytecode store. 2020-05-27 09:39:45 +02:00
Daniel Kirchner
e8bb212ec6 Add hour and minute to bytecode repo directory names 2020-02-15 14:44:37 +01:00
Daniel Kirchner
50adb2943a Prevent windows line endings in bytecode report. 2020-02-14 17:03:48 +01:00
Christian Parpart
4b38f499ae pylint: reduces max-line-length to something more reasonable 2020-02-04 17:00:05 +01:00
Christian Parpart
1b310a93a2 travis: Run byte code comparison only if current travis job is a pull request (not a push-build). 2020-02-03 12:29:49 +01:00
Mathias Baumann
7eb5fd1ca9 Appveyor: Prevent git from warning on std out 2020-01-27 18:28:23 +01:00
chriseth
8f36dd1571 Fix extract tests on windows. 2020-01-23 16:36:46 +01:00
cameel
d48883ca17 Fix crashes in prepare_report.py caused by using str where bytes is expected and vice-versa
1) `Popen.communicate()` expects `bytes` (a raw, binary string) if `stdout`/`stderr` are open in binary mode but is given output from `json.loads()` which is str (an abstract unicode string). Encoding the `str` object into `bytes` using UTF-8 encoding fixes that.
2) `REPORT_FILE` gets opened in binary mode which means that functions like `write()` expect `bytes`. We're giving them `str` which results in an error. Changed mode to text solves the problem.
2020-01-20 17:33:44 +01:00
Christian Parpart
54b81b0fda python scripts: Some pylint tweaks. 2020-01-15 14:21:33 +01:00
Christian Parpart
44e892634b Use Python 3 instead of Python 2 (EOL'd) 2020-01-15 14:20:43 +01:00
Daniel Kirchner
ef407ea896 Try to fix appveyor run by chaning bytecode pull output from stderr to stdout. 2019-09-04 10:57:01 +02:00
chriseth
19761a08fa Update bytecode output to cope with metadata-only compilability. 2019-03-04 17:38:45 +01:00
Mathias Baumann
98b7dc2881 Change emscripten default build dir to "emscriptenBuild"
Avoids complications with local build directory when building.
2019-02-27 12:30:15 +01:00
chriseth
3672506de9 Fix bytecode report file. 2018-11-22 21:03:24 +01:00
Alex Beregszaszi
780990516b Fix storebytecode.sh for bytecode comparison 2018-11-22 15:27:38 +00:00
chriseth
6ed3765941 Fix bytecode tests for solc-js 2018-11-13 13:57:31 +00:00
chriseth
28d98d61ef Use latest solcjs and replace compileStandard by compile. 2018-11-13 13:54:01 +00:00
chriseth
0e12903094 Pull before pushing to bytecode (as on *ix). 2018-07-05 12:18:43 +02:00
Alex Beregszaszi
1734d44561 Rename jsonCompiler to libsolc 2017-12-11 12:49:08 +00:00