Fix variable order printer

Improve tests on printers
pull/849/head
Josselin 4 years ago
parent 4b5583944f
commit 650c4a8232
  1. 17
      scripts/ci_test_printers.sh
  2. 2
      slither/printers/summary/variable_order.py

@ -2,14 +2,19 @@
### Test printer
# Needed for evm printer
pip install evm-cfg-builder
cd tests/ast-parsing/compile || exit
if ! slither "tests/*.json" --print all --json -; then
echo "Printer tests failed"
# Do not test the evm printer,as it needs a refactoring
ALL_PRINTERS="cfg,constructor-calls,contract-summary,data-dependency,echidna,function-id,function-summary,modifiers,call-graph,human-summary,inheritance,inheritance-graph,slithir,slithir-ssa,vars-and-auth,require,variable-order"
# Only test 0.5.17 to limit test time
for file in *0.5.17-compact.zip; do
if ! slither "$file" --print "$ALL_PRINTERS" > /dev/null 2>&1 ; then
echo "Printer failed"
echo "$file"
exit 1
fi
fi
done
solc-select use "0.5.1"
slither examples/scripts/test_evm_api.sol --print evm

@ -29,7 +29,7 @@ class VariableOrder(AbstractPrinter):
table = MyPrettyTable(["Name", "Type", "Slot", "Offset"])
for variable in contract.state_variables_ordered:
if not variable.is_constant:
slot, offset = self.slither.storage_layout_of(contract, variable)
slot, offset = contract.compilation_unit.storage_layout_of(contract, variable)
table.add_row([variable.canonical_name, str(variable.type), slot, offset])
all_tables.append((contract.name, table))

Loading…
Cancel
Save