@@ -79,7 +79,7 @@ func TestValidateDeploymentSpec(t *testing.T) {
79
79
t .Fatal (err )
80
80
}
81
81
82
- cp , err := writeCodePackage (tmpfile .Name (), "filename.txt" )
82
+ cp , err := writeCodePackage (tmpfile .Name (), "filename.txt" , 0100744 )
83
83
if err != nil {
84
84
t .Fatal (err )
85
85
}
@@ -92,7 +92,7 @@ func TestValidateDeploymentSpec(t *testing.T) {
92
92
t .Fatalf ("should have returned error about illegal file detected, but got '%s'" , err )
93
93
}
94
94
95
- cp , err = writeCodePackage (tmpfile .Name (), "src/filename.txt" )
95
+ cp , err = writeCodePackage (tmpfile .Name (), "src/filename.txt" , 0100744 )
96
96
if err != nil {
97
97
t .Fatal (err )
98
98
}
@@ -104,6 +104,30 @@ func TestValidateDeploymentSpec(t *testing.T) {
104
104
} else if ! strings .HasPrefix (err .Error (), "illegal file mode detected for file" ) {
105
105
t .Fatalf ("should have returned error about illegal file mode detected, but got '%s'" , err )
106
106
}
107
+
108
+ cp , err = writeCodePackage (tmpfile .Name (), "src/filename.txt" , 0100666 )
109
+ if err != nil {
110
+ t .Fatal (err )
111
+ }
112
+
113
+ cds .CodePackage = cp
114
+ err = platform .ValidateDeploymentSpec (cds )
115
+ if err == nil {
116
+ t .Fatal ("should have failed to validate because no 'package.json' found" )
117
+ } else if ! strings .HasPrefix (err .Error (), "no package.json found at the root of the chaincode package" ) {
118
+ t .Fatalf ("should have returned error about no package.json found, but got '%s'" , err )
119
+ }
120
+
121
+ cp , err = writeCodePackage (tmpfile .Name (), "src/package.json" , 0100666 )
122
+ if err != nil {
123
+ t .Fatal (err )
124
+ }
125
+
126
+ cds .CodePackage = cp
127
+ err = platform .ValidateDeploymentSpec (cds )
128
+ if err != nil {
129
+ t .Fatalf ("should have returned no errors, but got '%s'" , err )
130
+ }
107
131
}
108
132
109
133
func TestGetDeploymentPayload (t * testing.T ) {
@@ -148,6 +172,9 @@ func TestGenerateDockerBuild(t *testing.T) {
148
172
{
149
173
"name": "fabric-shim-test",
150
174
"version": "1.0.0-snapshot",
175
+ "script": {
176
+ "start": "node chaincode.js"
177
+ },
151
178
"dependencies": {
152
179
"is-sorted": "*"
153
180
}
@@ -207,12 +234,12 @@ func TestGenerateDockerBuild(t *testing.T) {
207
234
}
208
235
}
209
236
210
- func writeCodePackage (file string , packagePath string ) ([]byte , error ) {
237
+ func writeCodePackage (file string , packagePath string , mode int64 ) ([]byte , error ) {
211
238
payload := bytes .NewBuffer (nil )
212
239
gw := gzip .NewWriter (payload )
213
240
tw := tar .NewWriter (gw )
214
241
215
- if err := writeFileToPackage (file , packagePath , tw ); err != nil {
242
+ if err := writeFileToPackage (file , packagePath , tw , mode ); err != nil {
216
243
return nil , fmt .Errorf ("Error writing Chaincode package contents: %s" , err )
217
244
}
218
245
@@ -227,7 +254,7 @@ func writeCodePackage(file string, packagePath string) ([]byte, error) {
227
254
return payload .Bytes (), nil
228
255
}
229
256
230
- func writeFileToPackage (localpath string , packagepath string , tw * tar.Writer ) error {
257
+ func writeFileToPackage (localpath string , packagepath string , tw * tar.Writer , mode int64 ) error {
231
258
fd , err := os .Open (localpath )
232
259
if err != nil {
233
260
return fmt .Errorf ("%s: %s" , localpath , err )
@@ -247,7 +274,8 @@ func writeFileToPackage(localpath string, packagepath string, tw *tar.Writer) er
247
274
//Let's take the variance out of the tar, make headers identical by using zero time
248
275
oldname := header .Name
249
276
header .Name = packagepath
250
- header .Mode = 0100744
277
+ header .Mode = mode
278
+ //header.Mode = 0100744
251
279
252
280
if err = tw .WriteHeader (header ); err != nil {
253
281
return fmt .Errorf ("Error write header for (path: %s, oldname:%s,newname:%s,sz:%d) : %s" , localpath , oldname , packagepath , header .Size , err )
0 commit comments