@@ -48,6 +48,11 @@ tape('Version and license', function (t) {
48
48
49
49
tape ( 'Compilation' , function ( t ) {
50
50
t . test ( 'single files can be compiled' , function ( st ) {
51
+ if ( ! solc . supportsSingle ) {
52
+ st . skip ( 'Not supported by solc' ) ;
53
+ st . end ( ) ;
54
+ return ;
55
+ }
51
56
var output = solc . compile ( 'contract x { function g() public {} }' ) ;
52
57
st . ok ( 'contracts' in output ) ;
53
58
var bytecode = getBytecode ( output , '' , 'x' ) ;
@@ -71,6 +76,11 @@ tape('Compilation', function (t) {
71
76
} ) ;
72
77
73
78
t . test ( 'invalid source code fails properly' , function ( st ) {
79
+ if ( ! solc . supportsSingle ) {
80
+ st . skip ( 'Not supported by solc' ) ;
81
+ st . end ( ) ;
82
+ return ;
83
+ }
74
84
var output = solc . compile ( 'contract x { this is an invalid contract }' ) ;
75
85
if ( semver . lt ( solc . semver ( ) , '0.1.4' ) ) {
76
86
st . ok ( output . error . indexOf ( 'Parser error: Expected identifier' ) !== - 1 ) ;
@@ -104,6 +114,12 @@ tape('Compilation', function (t) {
104
114
return ;
105
115
}
106
116
117
+ if ( ! solc . supportsMulti ) {
118
+ st . skip ( 'Not supported by solc' ) ;
119
+ st . end ( ) ;
120
+ return ;
121
+ }
122
+
107
123
var input = {
108
124
'lib.sol' : 'library L { function f() public returns (uint) { return 7; } }' ,
109
125
'cont.sol' : 'import "lib.sol"; contract x { function g() public { L.f(); } }'
@@ -146,6 +162,12 @@ tape('Compilation', function (t) {
146
162
return ;
147
163
}
148
164
165
+ if ( ! solc . supportsImportCallback ) {
166
+ st . skip ( 'Not supported by solc' ) ;
167
+ st . end ( ) ;
168
+ return ;
169
+ }
170
+
149
171
var input = {
150
172
'cont.sol' : 'import "lib.sol"; contract x { function g() public { L.f(); } }'
151
173
} ;
@@ -200,6 +222,12 @@ tape('Compilation', function (t) {
200
222
return ;
201
223
}
202
224
225
+ if ( ! solc . supportsImportCallback ) {
226
+ st . skip ( 'Not supported by solc' ) ;
227
+ st . end ( ) ;
228
+ return ;
229
+ }
230
+
203
231
var input = {
204
232
'cont.sol' : 'import "lib.sol"; contract x { function g() public { L.f(); } }'
205
233
} ;
@@ -229,6 +257,12 @@ tape('Compilation', function (t) {
229
257
return ;
230
258
}
231
259
260
+ if ( ! solc . supportsImportCallback ) {
261
+ st . skip ( 'Not supported by solc' ) ;
262
+ st . end ( ) ;
263
+ return ;
264
+ }
265
+
232
266
var input = {
233
267
'cont.sol' : 'import "lib.sol"; contract x { function g() public { L.f(); } }'
234
268
} ;
@@ -248,6 +282,12 @@ tape('Compilation', function (t) {
248
282
return ;
249
283
}
250
284
285
+ if ( ! solc . supportsImportCallback ) {
286
+ st . skip ( 'Not supported by solc' ) ;
287
+ st . end ( ) ;
288
+ return ;
289
+ }
290
+
251
291
var input = {
252
292
'cont.sol' : 'import "lib.sol"; contract x { function g() public { L.f(); } }'
253
293
} ;
@@ -264,6 +304,12 @@ tape('Compilation', function (t) {
264
304
return ;
265
305
}
266
306
307
+ if ( ! solc . supportsImportCallback ) {
308
+ st . skip ( 'Not supported by solc' ) ;
309
+ st . end ( ) ;
310
+ return ;
311
+ }
312
+
267
313
var input = {
268
314
'cont.sol' : 'import "lib.sol"; contract x { function g() public { L.f(); } }'
269
315
} ;
@@ -539,6 +585,11 @@ tape('Loading Legacy Versions', function (t) {
539
585
st . end ( ) ;
540
586
return ;
541
587
}
588
+ if ( ! solcSnapshot . supportsSingle ) {
589
+ st . skip ( 'Not supported by solc' ) ;
590
+ st . end ( ) ;
591
+ return ;
592
+ }
542
593
var output = solcSnapshot . compile ( 'contract x { function g() public {} }' ) ;
543
594
st . ok ( ':x' in output . contracts ) ;
544
595
st . ok ( output . contracts [ ':x' ] . bytecode . length > 0 ) ;
0 commit comments