Skip to content

Commit

Permalink
Adds cryticparser support. Explicitly sets solc version in test_solc_…
Browse files Browse the repository at this point in the history
…version.
  • Loading branch information
rajeevgopalakrishna committed May 17, 2019
1 parent 2e93076 commit 800f375
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
13 changes: 10 additions & 3 deletions utils/slither_format/__main__.py
@@ -1,9 +1,10 @@
import os
import os, sys
import argparse
from slither import Slither
from slither.utils.colors import red
import logging
from .slither_format import slither_format
from crytic_compile import cryticparser

logging.basicConfig()
logging.getLogger("Slither").setLevel(logging.INFO)
Expand All @@ -27,7 +28,6 @@ def parse_args():
usage='slither_format filename')

parser.add_argument('filename', help='The filename of the contract or truffle directory to analyze.')
parser.add_argument('--solc', help='solc path', default='solc')
parser.add_argument('--verbose-test', '-v', help='verbose mode output for testing',action='store_true',default=False)
parser.add_argument('--verbose-json', '-j', help='verbose json output',action='store_true',default=False)

Expand All @@ -39,6 +39,13 @@ def parse_args():
action='store',
dest='detectors_to_run',
default='all')

cryticparser.init(parser)

if len(sys.argv) == 1:
parser.print_help(sys.stderr)
sys.exit(1)

return parser.parse_args()


Expand All @@ -51,7 +58,7 @@ def main():
args = parse_args()

# Perform slither analysis on the given filename
slither = Slither(args.filename, is_truffle=os.path.isdir(args.filename), solc=args.solc, disable_solc_warnings=True)
slither = Slither(args.filename, **vars(args))

# Format the input files based on slither analysis
slither_format(args, slither)
Expand Down
12 changes: 9 additions & 3 deletions utils/slither_format/tests/test_solc_version.py
Expand Up @@ -15,21 +15,27 @@ class TestSolcVersion(unittest.TestCase):
def setUp(self):
outFD1 = open(self.testFilePath1+".out","w")
errFD1 = open(self.testFilePath1+".err","w")
p1 = subprocess.Popen(['python3', '-m', 'slither_format','--verbose-test','--detect','solc-version',self.testFilePath1], stdout=outFD1,stderr=errFD1)
my_env = os.environ.copy()
my_env["SOLC_VERSION"] = "0.4.24"
p1 = subprocess.Popen(['python3', '-m', 'slither_format','--verbose-test','--detect','solc-version',self.testFilePath1], stdout=outFD1,stderr=errFD1, env=my_env)
p1.wait()
outFD1.close()
errFD1.close()

outFD2 = open(self.testFilePath2+".out","w")
errFD2 = open(self.testFilePath2+".err","w")
p2 = subprocess.Popen(['python3', '-m', 'slither_format','--verbose-test','--detect','solc-version',self.testFilePath2], stdout=outFD2,stderr=errFD2)
my_env = os.environ.copy()
my_env["SOLC_VERSION"] = "0.4.24"
p2 = subprocess.Popen(['python3', '-m', 'slither_format','--verbose-test','--detect','solc-version',self.testFilePath2], stdout=outFD2,stderr=errFD2, env=my_env)
p2.wait()
outFD2.close()
errFD2.close()

outFD3 = open(self.testFilePath3+".out","w")
errFD3 = open(self.testFilePath3+".err","w")
p3 = subprocess.Popen(['python3', '-m', 'slither_format','--verbose-test','--detect','solc-version',self.testFilePath3], stdout=outFD3,stderr=errFD3)
my_env = os.environ.copy()
my_env["SOLC_VERSION"] = "0.4.24"
p3 = subprocess.Popen(['python3', '-m', 'slither_format','--verbose-test','--detect','solc-version',self.testFilePath3], stdout=outFD3,stderr=errFD3, env=my_env)
p3.wait()
outFD3.close()
errFD3.close()
Expand Down

0 comments on commit 800f375

Please sign in to comment.