Explorar o código

new solc api:
* use legacy version matcher
* optimise just a boolean flag
* skipf for messages in tests

zelig %!s(int64=10) %!d(string=hai) anos
pai
achega
3a5e7ed9a6
Modificáronse 2 ficheiros con 14 adicións e 14 borrados
  1. 11 11
      common/compiler/solidity.go
  2. 3 3
      common/compiler/solidity_test.go

+ 11 - 11
common/compiler/solidity.go

@@ -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,

+ 3 - 3
common/compiler/solidity_test.go

@@ -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")
 	}