@ -2,14 +2,18 @@
var fs = require ( 'fs' )
var compiler = require ( 'solc' )
var compilerInput = require ( 'remix-solidity' ) . CompilerInput
var defaultVersion = 'v0.5.1+commit.c8a2cb62'
compiler . loadRemoteVersion ( defaultVersion , ( error , solcSnapshot ) => {
if ( error ) console . log ( error )
var compilationResult = { }
gatherCompilationResults ( './test-browser/tests/' , compilationResult )
gatherCompilationResults ( './test-browser/tests/units/' , compilationResult )
replaceSolCompiler ( compilationResult )
gatherCompilationResults ( './test-browser/tests/' , compilationResult , solcSnapshot )
gatherCompilationResults ( './test-browser/tests/units/' , compilationResult , solcSnapshot )
replaceSolCompiler ( compilationResult , solcSnapshot )
} )
function gatherCompilationResults ( dir , compilationResult , callback ) {
function gatherCompilationResults ( dir , compilationResult , solcSnapshot ) {
var filenames = fs . readdirSync ( dir , 'utf8' )
filenames . map ( function ( item , i ) {
if ( item . endsWith ( '.js' ) ) {
@ -17,10 +21,10 @@ function gatherCompilationResults (dir, compilationResult, callback) {
if ( '@sources' in testDef ) {
var sources = testDef [ '@sources' ] ( )
for ( var files in sources ) {
compile ( sources [ files ] , true , function ( result ) {
compile ( solcSnapshot , so urces [ files ] , true , function ( result ) {
compilationResult [ result . key ] = result
} )
compile ( sources [ files ] , false , function ( result ) {
compile ( solcSnapshot , so urces [ files ] , false , function ( result ) {
compilationResult [ result . key ] = result
} )
}
@ -30,11 +34,11 @@ function gatherCompilationResults (dir, compilationResult, callback) {
return compilationResult
}
function compile ( source , optimization , addCompilationResult ) {
function compile ( solcSnapshot , so urce , optimization , addCompilationResult ) {
var missingInputs = [ ]
try {
var input = compilerInput ( source , { optimize : optimization } )
var result = compiler . compileStandardWrapper ( input , function ( path ) {
var result = solcSnapshot . compileStandardWrapper ( input , function ( path ) {
missingInputs . push ( path )
} )
input = input . replace ( /(\t)|(\n)|(\\n)|( )/g , '' )
@ -51,15 +55,15 @@ function compile (source, optimization, addCompilationResult) {
addCompilationResult ( ret )
}
function replaceSolCompiler ( results ) {
function replaceSolCompiler ( results , solcSnapshot ) {
fs . readFile ( './test-browser/mockcompiler/compiler.js' , 'utf8' , function ( error , data ) {
if ( error ) {
console . log ( error )
process . exit ( 1 )
return
}
console . log ( compiler . version ( ) )
data = data + '\n\nvar mockCompilerVersion = \'' + compiler . version ( ) + '\''
console . log ( solcSnapshot . version ( ) )
data = data + '\n\nvar mockCompilerVersion = \'' + solcSnapshot . version ( ) + '\''
data = data + '\n\nvar mockData = ' + JSON . stringify ( results ) + ';\n'
fs . writeFile ( './soljson.js' , data , 'utf8' , function ( error ) {
if ( error ) {