new solc api:

* use legacy version matcher
* optimise just a boolean flag
* skipf for messages in tests
This commit is contained in:
zelig 2015-09-15 00:35:22 +02:00
parent 071e2cd08e
commit 3a5e7ed9a6
2 changed files with 14 additions and 14 deletions

View File

@ -35,8 +35,8 @@ import (
)
var (
versionRegExp = regexp.MustCompile("[0-9]+\\.[0-9]+\\.[0-9]+")
newAPIRegexp = regexp.MustCompile("0\\.1\\.[2-9][0-9]*")
versionRegexp = regexp.MustCompile("[0-9]+\\.[0-9]+\\.[0-9]+")
legacyRegexp = regexp.MustCompile("0\\.(9\\..*|1\\.[01])")
paramsLegacy = []string{
"--binary", // Request to output the contract in binary (hexadecimal).
"file", //
@ -50,13 +50,13 @@ var (
"1",
}
paramsNew = []string{
"--bin", // Request to output the contract in binary (hexadecimal).
"--abi", // Request to output the contract's JSON ABI interface.
"--userdoc", // Request to output the contract's Natspec user documentation.
"--devdoc", // Request to output the contract's Natspec developer documentation.
"--add-std", // include standard lib contracts
"--optimize=1", // code optimizer switched on
"-o", // output directory
"--bin", // Request to output the contract in binary (hexadecimal).
"--abi", // Request to output the contract's JSON ABI interface.
"--userdoc", // Request to output the contract's Natspec user documentation.
"--devdoc", // Request to output the contract's Natspec developer documentation.
"--add-std", // include standard lib contracts
"--optimize", // code optimizer switched on
"-o", // output directory
}
)
@ -102,8 +102,8 @@ func New(solcPath string) (sol *Solidity, err error) {
}
fullVersion := out.String()
version := versionRegExp.FindString(fullVersion)
legacy := !newAPIRegexp.MatchString(version)
version := versionRegexp.FindString(fullVersion)
legacy := legacyRegexp.MatchString(version)
sol = &Solidity{
solcPath: solcPath,

View File

@ -46,9 +46,9 @@ contract test {
func TestCompiler(t *testing.T) {
sol, err := New("")
if err != nil {
t.Skip("solc not found: skip: %v", err)
t.Skipf("solc not found: %v", err)
} else if sol.Version() != solcVersion {
t.Skip("WARNING: skipping due to a newer version of solc found (%v, expect %v)", sol.Version(), solcVersion)
t.Skipf("WARNING: a newer version of solc found (%v, expect %v)", sol.Version(), solcVersion)
}
contracts, err := sol.Compile(source)
if err != nil {
@ -83,7 +83,7 @@ func TestCompileError(t *testing.T) {
func TestNoCompiler(t *testing.T) {
_, err := New("/path/to/solc")
if err != nil {
t.Log("solidity quits with error: %v", err)
t.Logf("solidity quits with error: %v", err)
} else {
t.Errorf("no solc installed, but got no error")
}