Skip to content
This repository was archived by the owner on Nov 6, 2022. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
323 commits
Select commit Hold shift + click to select a range
b72c9cd
Remove non_negative function as it does not work
RGates94 Jun 21, 2021
67da3cb
Change which types constant fold in a bit shift operator
RGates94 Jun 21, 2021
ff5c41d
Fix merge issue
RGates94 Jun 21, 2021
b3a22a4
Add no_builtins flag to not compile builtins
RGates94 Jun 22, 2021
5cc6482
Remove special-case treatment of gas price zero
edfelten Jun 23, 2021
1c11394
Update testlogs
edfelten Jun 23, 2021
7663161
Remove pluggables
edfelten Jun 23, 2021
0d1e413
implement return address free functions
RGates94 Jun 23, 2021
fd6b356
Merge branch 'develop' into no-return-address-functions
RGates94 Jun 23, 2021
a42d863
implement return address free functions
RGates94 Jun 24, 2021
474d78d
Add noreturn as syntax for functions that do not return
RGates94 Jun 24, 2021
1c25d0c
Rename MatchPattern::Simple to MatchPattern::Bind
RGates94 Jun 24, 2021
541c32f
SetGas, PushGas, and asm renaming
Jun 24, 2021
f0ac110
Add getter and check for last ArbOS upgrade hash
edfelten Jun 24, 2021
2a29909
Renamed the expression pushGas to getGas
Jun 24, 2021
c1fff16
Update language tutorial
edfelten Jun 25, 2021
bef6745
Merge branch 'develop' into setgas-getgas-rename
edfelten Jun 27, 2021
d98a857
Merge branch 'develop' into setgas-getgas-rename
edfelten Jun 27, 2021
07735d4
Merge branch 'develop' into untagged-union
edfelten Jun 27, 2021
bdc5ad2
Merge pull request #519 from OffchainLabs/untagged-union
edfelten Jun 27, 2021
e2420ea
Merge branch 'develop' into casting
edfelten Jun 27, 2021
22a1253
Merge branch 'unused-constructs' into inbox-push
edfelten Jun 27, 2021
7c94f2b
Made SetGas and GetGas impure
Jun 27, 2021
5a3f330
Merge branch 'setgas-getgas-rename' of ssh://github.com/OffchainLabs/…
Jun 27, 2021
5776e73
Merge branch 'develop' into setgas-getgas-rename
rachel-bousfield Jun 27, 2021
8404ec2
Merge branch 'new-chain-params-system' into set-l1-gas-price-method
edfelten Jun 27, 2021
d8bfd71
Merge integration
edfelten Jun 27, 2021
fbb4ec6
Merge branch 'set-l1-gas-price-method' into inbox-push
edfelten Jun 27, 2021
07c68aa
Merge integration
edfelten Jun 27, 2021
8068f7f
Merge branch 'inbox-push' into safe-math
edfelten Jun 27, 2021
40468bb
Merge integration
edfelten Jun 27, 2021
36fe3ef
Merge branch 'safe-math' into gasprice-zero-means-zero
edfelten Jun 27, 2021
7ef728d
Merge integration
edfelten Jun 27, 2021
b7080eb
Code-coverage tooling
Jun 28, 2021
d452d12
tweaked workflow
Jun 28, 2021
8d868cc
Merge branch 'gasprice-zero-means-zero' into previous-upgrade-hash-ge…
edfelten Jun 28, 2021
8389999
Merge integration
edfelten Jun 28, 2021
e2c6421
Merge branch 'previous-upgrade-hash-getter' into remove-pluggable-sup…
edfelten Jun 28, 2021
b5ff946
Merge integration
edfelten Jun 28, 2021
5509b34
Merge pull request #538 from OffchainLabs/code-coverage-workflow
edfelten Jun 28, 2021
23b6e9b
Update before version for upgrade
edfelten Jun 28, 2021
ee3b57a
Merge branch 'set-l1-gas-price-method' into inbox-push
edfelten Jun 28, 2021
8b2e5c7
Update arbos_before for upgrade
edfelten Jun 28, 2021
e690283
Merge branch 'develop' into no-return-address-functions
RGates94 Jun 28, 2021
f9b159e
Fix mistake in specification of castability between map types
RGates94 Jun 28, 2021
ad4dbb3
Merge branch 'develop' into shift-refactor
RGates94 Jun 28, 2021
33cb6a6
update mexes
RGates94 Jun 28, 2021
170f711
Merge branch 'inbox-push' into safe-math
edfelten Jun 28, 2021
4144375
Merge integration
edfelten Jun 28, 2021
52ac3b5
Merge branch 'safe-math' into gasprice-zero-means-zero
edfelten Jun 28, 2021
71e7a40
Clean up upgrade code
edfelten Jun 28, 2021
55fd2a3
Merge branch 'set-l1-gas-price-method' into inbox-push
edfelten Jun 28, 2021
2970273
Update upgrade code
edfelten Jun 28, 2021
49dc402
Merge branch 'inbox-push' into safe-math
edfelten Jun 28, 2021
d830099
Update upgrade code
edfelten Jun 28, 2021
3fd3df3
Merge branch 'safe-math' into gasprice-zero-means-zero
edfelten Jun 28, 2021
e31fc4e
Update code for upgrade
edfelten Jun 28, 2021
19734ac
Fix test
edfelten Jun 29, 2021
eec99da
Update testlog
edfelten Jun 29, 2021
82feb11
Merge branch 'gasprice-zero-means-zero' into previous-upgrade-hash-ge…
edfelten Jun 29, 2021
538ef87
cargo fmt
edfelten Jun 29, 2021
4112110
Merge branch 'gasprice-zero-means-zero' into previous-upgrade-hash-ge…
edfelten Jun 29, 2021
a4cf822
Fix API to support cross-version upgrades
edfelten Jun 29, 2021
86b42b7
cargo fmt
edfelten Jun 29, 2021
4732ffb
Merge branch 'previous-upgrade-hash-getter' into remove-pluggable-sup…
edfelten Jun 29, 2021
313f4b5
Merge integration
edfelten Jun 29, 2021
269d06e
Merge branch 'remove-pluggable-support' into shift-refactor
edfelten Jun 29, 2021
844e40e
Merge integration
edfelten Jun 29, 2021
3eb8943
Merge branch 'shift-refactor' into setgas-getgas-rename
edfelten Jun 29, 2021
43856d3
Merge integration
edfelten Jun 29, 2021
a8c805f
Beautify with-statement syntax
Jun 29, 2021
1e74dd4
Merge branch 'setgas-getgas-rename' into no-return-address-functions
edfelten Jun 29, 2021
70e1d47
Merge integration
edfelten Jun 29, 2021
a65916b
Reintroduce logic for stripping imports to and from the same file
RGates94 Jun 29, 2021
d4601c1
Merge branch 'no-return-address-functions' into pretty-with-syntax
edfelten Jun 29, 2021
60f2269
Merge branch 'pretty-with-syntax' into casting
edfelten Jun 29, 2021
5b6c8c9
Partial integration
edfelten Jun 29, 2021
34d2c29
Merge branch 'develop' into avm-code-coverage
Jun 30, 2021
21dfcc5
codecov.io support and coverage tooling for mini
Jun 30, 2021
6c6469d
fixed non-existant directory issue in CI
Jun 30, 2021
b6acc5d
Split lcov files
Jun 30, 2021
005ca25
Updated shebang to avoid CI test servers default shell dash
Jun 30, 2021
9300d20
Merge branch 'pretty-with-syntax' into global-account-store-access
edfelten Jun 30, 2021
f342156
Merge integration
edfelten Jun 30, 2021
c7da118
Update testlogs
edfelten Jun 30, 2021
a9354a9
Add casting and covariant casting for unions
RGates94 Jun 29, 2021
c95cbba
removed a space
Jun 30, 2021
863fb05
cache grcov
Jun 30, 2021
97fcd4a
Clean up accounts.mini
edfelten Jul 1, 2021
d0fcdd2
fix bug in accounting the number of assignments in match pattern
RGates94 Jul 1, 2021
3edfd9e
Liveliness analysis for mixed let
Jul 1, 2021
082b724
Code cleanup WIP
edfelten Jul 2, 2021
1a002a0
Clean up builtin contract impls
edfelten Jul 2, 2021
72995de
Clean up blockhashes.mini
edfelten Jul 2, 2021
d81f455
Clean up chainParameters.mini
edfelten Jul 2, 2021
f1a77eb
Clean up codeSegment.mini
edfelten Jul 2, 2021
7d94d28
Merge remote-tracking branch 'origin/global-account-store-access' int…
RGates94 Jul 2, 2021
ffa5a85
Partially fix merge conflicts
RGates94 Jul 2, 2021
f3cae27
Finish merge integration
RGates94 Jul 2, 2021
3710c28
Blake2b coverage for ArbOS
Jul 2, 2021
7380822
Removed accidentally added tmp files
Jul 2, 2021
ed085ee
fixed warning
Jul 2, 2021
36f159c
Added more coverage of ArbOS
Jul 2, 2021
e238f41
Added more coverage of ArbOS
Jul 2, 2021
7618582
more coverage
Jul 2, 2021
4d7e066
Made sure every test is present
Jul 3, 2021
a6f24fa
Added coverage for unused tests
Jul 3, 2021
d1067a5
Merge remote-tracking branch 'origin/mixed-let' into code-cleanup
edfelten Jul 3, 2021
a5ba70f
More code cleanup
edfelten Jul 3, 2021
efaa1b4
Partial cleanup of evmCallStack.mini
edfelten Jul 3, 2021
0d490d1
Finish EvmCallStack.mini cleanup
edfelten Jul 3, 2021
a20de3e
Clean up evmlogs.mini
edfelten Jul 5, 2021
c3b61a9
Merge remote-tracking branch 'origin/mixed-let' into casting
edfelten Jul 5, 2021
5c9118a
Merge branch 'casting' into code-cleanup
edfelten Jul 5, 2021
da08cb1
Clean up evmOps.mini
edfelten Jul 5, 2021
eefb934
Clean up gasAccounting.mini
edfelten Jul 5, 2021
01de8a5
Clean up inbox.mini
edfelten Jul 6, 2021
b482fce
More code cleanup
edfelten Jul 6, 2021
71d961e
Clean up additional source files
edfelten Jul 6, 2021
a9d3f25
Finish cleanup and update testlogs
edfelten Jul 6, 2021
b94537b
Re-enable message batch test
edfelten Jul 6, 2021
9612b20
Remove unused tests
edfelten Jul 6, 2021
03c12f8
checking coverage without upgrade tests
rachel-bousfield Jul 6, 2021
c1f88be
Checking kvs coverage
rachel-bousfield Jul 7, 2021
ad6cb00
kvs coverage
rachel-bousfield Jul 7, 2021
c3e44a1
Clean up avmcodebuilder.mini
edfelten Jul 7, 2021
4fb7974
Clean up biguint.mini
edfelten Jul 7, 2021
52b951b
Added test coverage for builtin arrays
rachel-bousfield Jul 7, 2021
b1b713c
Added test coverage for stdlib fixedpoint
rachel-bousfield Jul 7, 2021
55b00db
Added test coverage for stdlib expanding-int-array
rachel-bousfield Jul 7, 2021
123586c
Added test
rachel-bousfield Jul 7, 2021
b3d9cfd
Merge pull request #527 from OffchainLabs/mixed-let
edfelten Jul 7, 2021
031d602
More library cleanup
edfelten Jul 7, 2021
1b551d9
testing upgrade filter
rachel-bousfield Jul 8, 2021
96d04f6
Change pauseTxCharges API
edfelten Jul 8, 2021
520e8ec
Update testlogs
edfelten Jul 8, 2021
5bd3c7f
ripemd coverage
rachel-bousfield Jul 8, 2021
b93a71b
corrected makefile
rachel-bousfield Jul 8, 2021
45a7c42
Make ASM commas optional
rachel-bousfield Jul 8, 2021
4f7d885
Check for storage overuse on each return
edfelten Jul 8, 2021
becb36f
Added multi-line comments
rachel-bousfield Jul 8, 2021
c6fc533
Added arb_os and upgradetests folders
rachel-bousfield Jul 8, 2021
337990c
gasleft deducts for storage delta
edfelten Jul 8, 2021
476afd6
Clarify constant names
edfelten Jul 8, 2021
1312a35
Limit increase in retryable submit fee to 50% per update
edfelten Jul 9, 2021
5bb3201
Clearer variable name
edfelten Jul 9, 2021
0000e25
Merge pull request #546 from OffchainLabs/more-avm-code-coverage
rachel-bousfield Jul 9, 2021
fe5d32d
Merged code-cleanup
rachel-bousfield Jul 9, 2021
ec454ca
merged in avm-code-coverage
rachel-bousfield Jul 9, 2021
9f30d50
Merge pull request #547 from OffchainLabs/optional-asm-commas
rachel-bousfield Jul 9, 2021
d24b983
Removed trailing commas from asm statements
rachel-bousfield Jul 9, 2021
e6e7e2a
Add test to check create2 behavior on nonzero target nonce
edfelten Jul 10, 2021
63dad14
Fix behavior of create/create2 on nonzero target address nonce
edfelten Jul 10, 2021
c27cf6c
Update testlogs
edfelten Jul 10, 2021
877a03a
Add new tests to code coverage pipeline
edfelten Jul 10, 2021
eefb413
Add EVM test for extcodecopy and extcodehash
edfelten Jul 10, 2021
79b0051
Add test coverage for EVM instructions
edfelten Jul 10, 2021
8fc073a
Add coverage for log0
edfelten Jul 10, 2021
60f9fe1
Add coverage for selfdestruct
edfelten Jul 10, 2021
afffe2c
Bump ArbOS version
edfelten Jul 11, 2021
9995a81
Merge branch 'evm-test-coverage' into london-hardfork
edfelten Jul 11, 2021
b030312
Add BASEFEE EVM opcode (EIP-3198)
edfelten Jul 11, 2021
13e7dde
Reject deploy if code starts with 0xef (EIP-3541)
edfelten Jul 11, 2021
a38f1b5
Update testlogs
edfelten Jul 11, 2021
f79bd7d
Merge branch 'london-hardfork' into gas-control-tweaks
edfelten Jul 11, 2021
5ebd8c4
Merge integration
edfelten Jul 11, 2021
dd1be3c
Make preinstalled_contracts.rs a test module
RGates94 Jul 22, 2021
20ff026
Fix unused code warnings
RGates94 Jul 23, 2021
2853ea2
Move ArbInfo into preinstalled_contracts.rs
RGates94 Jul 23, 2021
40a2b39
Move basic_evm_add_test into preinstalled_contracts.rs
RGates94 Jul 23, 2021
3074b34
Move test only methods of ArbosTest into a test only impl
RGates94 Jul 23, 2021
845e674
Add regression test for gasleft with delegatecall issue
edfelten Jul 24, 2021
7fa0665
cargo fmt
edfelten Jul 24, 2021
29e9ad8
Fix compiler warning
edfelten Jul 24, 2021
119eb0f
cargo fmt
edfelten Jul 24, 2021
62c6085
Remove duplicate function
edfelten Jul 24, 2021
e9a9d92
Fix underscored functions in abi.rs
RGates94 Jul 26, 2021
faa4fc9
Fix underscored functions in mod.rs
RGates94 Jul 26, 2021
2deb874
Fix underscored functions in bls.rs
RGates94 Jul 26, 2021
4133717
Move some tests back to minitests/mod.rs
RGates94 Jul 26, 2021
9162f7c
Made parser errors proper compile errors instead of strings + grammer…
rachel-bousfield Jul 27, 2021
ca3520c
Merge pull request #566 from OffchainLabs/test-module
edfelten Jul 27, 2021
efd7a58
Merge pull request #570 from OffchainLabs/parser-errors-are-compile-e…
rachel-bousfield Jul 28, 2021
cbf012d
Notions of View and Write
rachel-bousfield Jul 29, 2021
761331b
Suppress upgrade warnings
rachel-bousfield Jul 30, 2021
8d84a49
Properties lists + basic closure parsing
rachel-bousfield Jul 31, 2021
6045de9
closure sorting + Regression test
rachel-bousfield Jul 31, 2021
4e1942e
Closure type checking
rachel-bousfield Jul 31, 2021
2971030
Codegen refactor
rachel-bousfield Jul 31, 2021
36f063b
Capture detection mechanism
rachel-bousfield Aug 1, 2021
26fbd33
Closure pointers + arbitrary compilation
rachel-bousfield Aug 1, 2021
8b77884
Made keeping serde happy much easier
rachel-bousfield Aug 1, 2021
165b600
Assignment checker now works for closures
rachel-bousfield Aug 1, 2021
aac3ff1
pretty print + closure labels
rachel-bousfield Aug 1, 2021
80acb50
Closure reference packing
rachel-bousfield Aug 2, 2021
f791e97
Closures now work + test case
rachel-bousfield Aug 2, 2021
f15e195
frame sizes are non-static
rachel-bousfield Aug 2, 2021
6f07bfe
Silenced warnings
rachel-bousfield Aug 2, 2021
06c10ea
deleted play.mini
rachel-bousfield Aug 2, 2021
27cb9ee
deleted test.mini
rachel-bousfield Aug 2, 2021
e230127
Removed comment
rachel-bousfield Aug 3, 2021
6ae47bc
Made function labels deterministic + builtins have string_ids
rachel-bousfield Aug 3, 2021
564a994
Removed old export system
rachel-bousfield Aug 3, 2021
17d8646
Removed old import system
rachel-bousfield Aug 3, 2021
310e66a
Made doc-strings consistent
rachel-bousfield Aug 3, 2021
dcf63ad
Func and Closure labels are globally unique
rachel-bousfield Aug 3, 2021
ebe32fa
cleaned a few things
rachel-bousfield Aug 3, 2021
2e41241
Funcs use label maps rather than imports now
rachel-bousfield Aug 4, 2021
b5453ee
Made requested changes
rachel-bousfield Aug 4, 2021
ef06492
Merge pull request #573 from OffchainLabs/notions-of-view-and-write
rachel-bousfield Aug 4, 2021
b7afbdf
Made types require semicolons
rachel-bousfield Aug 4, 2021
537e091
Merge pull request #575 from OffchainLabs/closures
rachel-bousfield Aug 4, 2021
626ff4f
propagated up changes from earlier PRs
rachel-bousfield Aug 4, 2021
2beadc5
merged in next
rachel-bousfield Aug 4, 2021
0642665
Return different result code on out-of-gas
edfelten Aug 8, 2021
7e7f07a
Load constants.json & output to /dev/null by default
rachel-bousfield Aug 9, 2021
1d360b1
Merge pull request #581 from OffchainLabs/better-compiler-defaults
edfelten Aug 9, 2021
6cbe84c
Merge branch 'next' into remove-old-import-export-system
edfelten Aug 9, 2021
8792056
Fix merge integration issue
edfelten Aug 9, 2021
d41e3fe
Merge pull request #577 from OffchainLabs/remove-old-import-export-sy…
edfelten Aug 9, 2021
fb81762
Added node tests
rachel-bousfield Aug 9, 2021
008f2bc
GITHUB_SHA workaround
rachel-bousfield Aug 9, 2021
f48ec5c
GITHUB_SHA workaround context
rachel-bousfield Aug 9, 2021
9e2fde9
Moved GITHUB_SHA
rachel-bousfield Aug 9, 2021
861dc4a
debug GITHUB_SHA
rachel-bousfield Aug 9, 2021
2de17f8
Using explicit github sha lookup
rachel-bousfield Aug 9, 2021
0bbff42
remove replica
rachel-bousfield Aug 9, 2021
f55ba35
Added git fetch
rachel-bousfield Aug 9, 2021
3cd0425
submodule update
rachel-bousfield Aug 9, 2021
cffd23c
testing manual clone
rachel-bousfield Aug 9, 2021
ce315b3
recursive fix
rachel-bousfield Aug 9, 2021
78da950
recursive fix 2
rachel-bousfield Aug 9, 2021
3baf9c0
pwd
rachel-bousfield Aug 9, 2021
b2f852c
copy over this branch's arb-os
rachel-bousfield Aug 9, 2021
e35a8d1
fix mv exit code
rachel-bousfield Aug 9, 2021
8b5f645
Removed a redundency
rachel-bousfield Aug 9, 2021
56e1f4f
Merge pull request #582 from OffchainLabs/github-node-tests
edfelten Aug 9, 2021
e032070
Added node tests to CI
rachel-bousfield Aug 10, 2021
a6c5e61
Added node tests to CI
rachel-bousfield Aug 10, 2021
d9b565c
merged in next
rachel-bousfield Aug 10, 2021
0257ced
Merge pull request #562 from OffchainLabs/gasleft-delegatecall-issue
rachel-bousfield Aug 10, 2021
12fbb7b
Move EVM-to-AVM translator to standard library
edfelten Aug 10, 2021
6662ea3
No more beeps + string tests
rachel-bousfield Aug 12, 2021
9fb70b1
merged in next
rachel-bousfield Aug 17, 2021
1992394
tweaked comments
rachel-bousfield Aug 17, 2021
a86f64f
Merge pull request #580 from OffchainLabs/return-code-for-out-of-gas
rachel-bousfield Aug 17, 2021
46ca656
CI change to allow stable to succeed even if nightly fails
rachel-bousfield Aug 17, 2021
463064a
Merge pull request #590 from OffchainLabs/no-more-beeps
rachel-bousfield Aug 17, 2021
4297644
merged in next
rachel-bousfield Aug 17, 2021
6a911f4
Merge pull request #588 from OffchainLabs/move-codegen-to-library
rachel-bousfield Aug 17, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 90 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: CI

on:
workflow_dispatch:
pull_request:
push:
branches:
Expand Down Expand Up @@ -32,14 +33,15 @@ jobs:
with:
command: fmt
args: --all -- --check

test:
name: Test with ${{ matrix.rust }} rust on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
rust: [stable, beta]
rust: [stable, nightly]
fail-fast: false

steps:
- name: Checkout
Expand All @@ -50,12 +52,21 @@ jobs:
sudo apt-get update && sudo apt-get install -y \
libasound2-dev libudev-dev build-essential pkg-config libssl-dev

- name: Install Rust ${{ matrix.rust }}
- name: Install rust ${{ matrix.rust }}
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: ${{ matrix.rust == 'nightly' && 'llvm-tools-preview' || '' }}

- name: Install grcov if supported for rust ${{ matrix.rust }}
uses: actions-rs/[email protected]
if: matrix.rust == 'nightly'
with:
crate: grcov
version: latest
use-tool-cache: true

- name: Cache rust build products
uses: actions/cache@v2
Expand All @@ -74,12 +85,87 @@ jobs:
command: build
args: --all

- name: Set up code-coverage instrumentation if supported for rust ${{ matrix.rust }}
if: matrix.rust == 'nightly'
run: |
echo LLVM_PROFILE_FILE="your_name-%p-%m.profraw" >> $GITHUB_ENV
echo "CARGO_INCREMENTAL=0" >> $GITHUB_ENV
echo RUSTFLAGS="-Zinstrument-coverage" >> $GITHUB_ENV
echo RUSTDOCFLAGS="-Cpanic=abort" >> $GITHUB_ENV

- name: Install npm dependencies
run: |
sudo npm install -g yarn && cd contracts && yarn install

- name: Make and test ArbOs
- name: Make and test ArbOS
run: make clean && make

- name: Check if ArbOS changed
run: git update-index --refresh && git diff-index HEAD --

- name: Create code-coverage files if supported for rust ${{ matrix.rust }}
if: matrix.rust == 'nightly'
run: |
grcov . --binary-path ./target/release/ -s . -t lcov --branch --ignore-not-existing --ignore "/*" -o lcov.info
make coverage

- name: Upload to codecov.io
uses: codecov/codecov-action@v1
if: matrix.rust == 'nightly'
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./lcov.info,./lcov-mini.info
fail_ci_if_error: true
verbose: false

node:
name: Node integration test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1

- name: Install dependencies
run: |
sudo add-apt-repository -y ppa:longsleep/golang-backports
sudo apt-get update && sudo apt-get install -y \
autoconf automake cmake libboost-dev libboost-filesystem-dev libgmp-dev \
librocksdb-dev libssl-dev libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev \
liblz4-dev libzstd-dev libtool golang-go clang-format cmake
sudo apt-get install librocksdb-dev
#
# If apt's rocksdb is ever out of date, we'll need to use the following
# git clone -b v6.11.4 https://github.com/facebook/rocksdb
# cd rocksdb && make shared_lib && sudo make install
#

- name: Clone Arbitrum
run: |
git clone --recursive https://github.com/OffchainLabs/arbitrum.git
cd arbitrum && git submodule update --init --recursive

- name: Copy over this branch's ArbOS
run: |
rm -r arbitrum/packages/arb-os/*
mv * arbitrum/packages/arb-os/ || true

- name: Build Arbitrum
run: |
mkdir arbitrum/packages/arb-avm-cpp/debug/
cd $_
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j

- name: Test Node's C++ Database
run: |
./arbitrum/packages/arb-avm-cpp/debug/bin/avm_tests

- name: Test Node's RPC
run: |
cd arbitrum/packages/arb-rpc-node/
go test ./...

- name: Test Node's Core
run: |
cd arbitrum/packages/arb-node-core/
go test ./...
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ arb_os/contractTemplates.mini
.idea
evm-tests/.travis.yml
evm-test-logs/*
**.cov
**.bkp
**~
lcov.info
lcov-mini.info

# Files generated by Hardhat
contracts/artifacts
Expand Down
27 changes: 23 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ ACBUILDDIR = $(ARTIFACTDIR)/builtin
ARBOS = $(ARBOSDIR)/arbos.mexe

TEMPLATES = $(ARBOSDIR)/contractTemplates.mini
TESTFILES = $(BUILTINDIR)/kvstest.mexe $(STDDIR)/queuetest.mexe $(BUILTINDIR)/arraytest.mexe $(BUILTINDIR)/globaltest.mexe $(STDDIR)/priorityqtest.mexe $(STDDIR)/bytearraytest.mexe $(STDDIR)/keccaktest.mexe $(STDDIR)/biguinttest.mexe $(STDDIR)/rlptest.mexe $(STDDIR)/storageMapTest.mexe $(BUILTINDIR)/maptest.mexe $(STDDIR)/sha256test.mexe $(STDDIR)/ripemd160test.mexe minitests/codeloadtest.mexe $(STDDIR)/fixedpointtest.mexe $(STDDIR)/blstest.mexe
TESTFILES = $(BUILTINDIR)/kvstest.mexe $(STDDIR)/queuetest.mexe $(BUILTINDIR)/arraytest.mexe $(BUILTINDIR)/globaltest.mexe $(STDDIR)/priorityqtest.mexe $(STDDIR)/bytearraytest.mexe $(STDDIR)/keccaktest.mexe $(STDDIR)/biguinttest.mexe $(STDDIR)/rlptest.mexe $(STDDIR)/storageMapTest.mexe $(BUILTINDIR)/maptest.mexe $(STDDIR)/sha256test.mexe $(STDDIR)/ripemd160test.mexe $(STDDIR)/fixedpointtest.mexe $(STDDIR)/blstest.mexe $(STDDIR)/expandingIntArrayTest.mexe minitests/codeloadtest.mexe minitests/simple-closure.mexe minitests/closure.mexe
TESTCONTRACTSPURE = $(TCBUILDDIR)/Add.sol/Add.json $(TCBUILDDIR)/Fibonacci.sol/Fibonacci.json $(TCBUILDDIR)/PaymentChannel.sol/PaymentChannel.json $(TCBUILDDIR)/Underfunded.sol/Underfunded.json $(TCBUILDDIR)/ReverterFactory.sol/ReverterFactory.json $(TCBUILDDIR)/Callback.sol/Callback.json
TESTCONTRACTS = $(ACBUILDDIR)/ArbSys.sol/ArbSys.json $(TESTCONTRACTSPURE)
UPGRADEFILES = $(UPGRADETESTDIR)/regcopy_old.mexe $(UPGRADETESTDIR)/regcopy_new.mexe $(UPGRADETESTDIR)/upgrade1_old.mexe $(UPGRADETESTDIR)/upgrade1_new.mexe $(UPGRADETESTDIR)/upgrade2_new.mexe
Expand All @@ -30,7 +30,7 @@ contracts: $(TESTCONTRACTS) $(ARBOSCONTRACTS)
$(ARBOSDIR)/contractTemplates.mini: compiler $(ARBOSCONTRACTS)
$(CARGORUN) make-templates

$(BUILTINDIR)/kvstest.mexe: compiler $(BUILTINDIR)/kvstest.mini
$(BUILTINDIR)/kvstest.mexe: compiler $(BUILTINDIR)/kvstest.mini $(BUILTINDIR)/kvs.mini
$(CARGORUN) compile $(BUILTINDIR)/kvstest.mini -o $(BUILTINDIR)/kvstest.mexe $(COMPILEFLAGS) -t

$(STDDIR)/queuetest.mexe: compiler $(STDDIR)/queuetest.mini
Expand All @@ -48,6 +48,9 @@ $(STDDIR)/priorityqtest.mexe: compiler $(STDDIR)/priorityqtest.mini
$(STDDIR)/storageMapTest.mexe: compiler $(STDDIR)/storageMapTest.mini
$(CARGORUN) compile $(STDDIR)/storageMapTest.mini -o $(STDDIR)/storageMapTest.mexe $(COMPILEFLAGS) -t

$(STDDIR)/expandingIntArrayTest.mexe: compiler $(STDDIR)/storageMapTest.mini
$(CARGORUN) compile $(STDDIR)/expandingIntArrayTest.mini -o $(STDDIR)/expandingIntArrayTest.mexe $(COMPILEFLAGS) -t

$(STDDIR)/bytearraytest.mexe: compiler $(STDDIR)/bytearraytest.mini
$(CARGORUN) compile $(STDDIR)/bytearraytest.mini -o $(STDDIR)/bytearraytest.mexe $(COMPILEFLAGS) -t

Expand All @@ -66,6 +69,12 @@ $(STDDIR)/bufferopcodetest.mexe: compiler $(BUILTINMAOS) $(STDDIR)/bufferopcodet
minitests/codeloadtest.mexe: compiler minitests/codeloadtest.mini
$(CARGORUN) compile minitests/codeloadtest.mini -o minitests/codeloadtest.mexe $(COMPILEFLAGS) -t

minitests/simple-closure.mexe: compiler minitests/simple-closure.mini
$(CARGORUN) compile minitests/simple-closure.mini -o minitests/simple-closure.mexe $(COMPILEFLAGS) -t

minitests/closure.mexe: compiler minitests/closure.mini
$(CARGORUN) compile minitests/closure.mini -o minitests/closure.mexe $(COMPILEFLAGS) -t

$(STDDIR)/keccaktest.mexe: compiler $(STDDIR)/keccaktest.mini $(STDDIR)/keccak.mini $(STDDIR)/bytearray.mini $(STDDIR)/expandingIntArray.mini
$(CARGORUN) compile $(STDDIR)/keccaktest.mini -o $(STDDIR)/keccaktest.mexe $(COMPILEFLAGS) -t

Expand Down Expand Up @@ -138,7 +147,17 @@ run: compiler
$(CARGORUN) run "arb_os/arbos.mexe"

test:
cargo test --release
cargo test --release

coverage: alltests.cov

alltests.cov: compiler contracts
cd coverage && grep avmcodebuilder test_upgrade_arbos_to_different_version.cov > avmcodebuilder.cov
rm coverage/test_upgrade_arbos_to_different_version.cov
# rm coverage/small_upgrade_auto_remap.cov
# rm coverage/small_upgrade.cov
cat coverage/*.cov | sort -r | uniq | sort | uniq -f 1 | sort -k2,2 -k3,3n | grep -v test | grep -v Test > coverage/alltests.cov
./coverage/mini-coverage.sh ./coverage/alltests.cov > lcov-mini.info

evmtest: compiler $(ARBOS)

Expand All @@ -165,5 +184,5 @@ benchmark: compiler $(TEMPLATES) $(ARBOS)
cargo build --release

clean:
rm -f $(BUILTINDIR)/*.mexe $(STDDIR)/*.mexe $(UPGRADETESTDIR)/*.mexe $(ARBOSDIR)/arbos.mexe $(ARBOSDIR)/arbos-upgrade.mexe $(ARBOSDIR)/upgrade.json minitests/*.mexe $(ARBOSDIR)/contractTemplates.mini
rm -f $(BUILTINDIR)/*.mexe $(STDDIR)/*.mexe *.cov coverage/*.cov $(BUILTINDIR)/*.cov $(STDDIR)/*.cov $(UPGRADETESTDIR)/*.mexe $(ARBOSDIR)/arbos.mexe $(ARBOSDIR)/arbos-upgrade.mexe $(ARBOSDIR)/upgrade.json minitests/*.mexe $(ARBOSDIR)/contractTemplates.mini lcov.info lcov-mini.info
rm -rf contracts/artifacts contracts/cache
Loading