| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269 |
- <!doctype html>
- <html lang="en">
- <head>
- <title>Code coverage report for tar/lib/write-entry.js</title>
- <meta charset="utf-8" />
- <link rel="stylesheet" href="../../prettify.css" />
- <link rel="stylesheet" href="../../base.css" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
- </style>
- </head>
- <body>
- <div class='wrapper'>
- <div class='pad1'>
- <h1>
- <a href="../../index.html">All files</a> / <a href="index.html">tar/lib</a> write-entry.js
- </h1>
- <div class='clearfix'>
- <div class='fl pad1y space-right2'>
- <span class="strong">99.53% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>213/214</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">97.87% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>184/188</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">100% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>31/31</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">99.53% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>210/211</span>
- </div>
- </div>
- </div>
- <div class='status-line high'></div>
- <pre><table class="coverage">
- <tr><td class="line-count quiet">1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6570x</span>
- <span class="cline-any cline-yes">6570x</span>
- <span class="cline-any cline-yes">6570x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-yes">6515x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6569x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">4x</span>
- <span class="cline-any cline-yes">4x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6567x</span>
- <span class="cline-any cline-yes">6567x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6567x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6567x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6567x</span>
- <span class="cline-any cline-yes">6513x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">54x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">34x</span>
- <span class="cline-any cline-yes">34x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6566x</span>
- <span class="cline-any cline-yes">6566x</span>
- <span class="cline-any cline-yes">6566x</span>
- <span class="cline-any cline-yes">902x</span>
- <span class="cline-any cline-yes">6566x</span>
- <span class="cline-any cline-yes">6566x</span>
- <span class="cline-any cline-yes">6566x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6566x</span>
- <span class="cline-any cline-yes">5664x</span>
- <span class="cline-any cline-yes">867x</span>
- <span class="cline-any cline-yes">34x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6563x</span>
- <span class="cline-any cline-yes">4x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6563x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6563x</span>
- <span class="cline-any cline-yes">17x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6563x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">867x</span>
- <span class="cline-any cline-yes">859x</span>
- <span class="cline-any cline-yes">867x</span>
- <span class="cline-any cline-yes">867x</span>
- <span class="cline-any cline-yes">867x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">31x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">5664x</span>
- <span class="cline-any cline-yes">7x</span>
- <span class="cline-any cline-yes">7x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">5663x</span>
- <span class="cline-any cline-yes">5663x</span>
- <span class="cline-any cline-yes">42x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">5621x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">5568x</span>
- <span class="cline-any cline-yes">5568x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">5566x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">5617x</span>
- <span class="cline-any cline-yes">5617x</span>
- <span class="cline-any cline-yes">5617x</span>
- <span class="cline-any cline-yes">5617x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">7336x</span>
- <span class="cline-any cline-yes">7336x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">7335x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">5566x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">7393x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">7392x</span>
- <span class="cline-any cline-yes">5614x</span>
- <span class="cline-any cline-yes">1700449x</span>
- <span class="cline-any cline-yes">1700449x</span>
- <span class="cline-any cline-yes">1700449x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">7392x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">7392x</span>
- <span class="cline-any cline-yes">7392x</span>
- <span class="cline-any cline-yes">7392x</span>
- <span class="cline-any cline-yes">7392x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">7392x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">7392x</span>
- <span class="cline-any cline-yes">5614x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">5614x</span>
- <span class="cline-any cline-yes">5614x</span>
- <span class="cline-any cline-yes">5614x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1778x</span>
- <span class="cline-any cline-yes">1754x</span>
- <span class="cline-any cline-yes">1754x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1778x</span>
- <span class="cline-any cline-yes">1778x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">99x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">20x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">53x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">59x</span>
- <span class="cline-any cline-yes">59x</span>
- <span class="cline-any cline-yes">59x</span>
- <span class="cline-any cline-yes">58x</span>
- <span class="cline-any cline-yes">57x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">59x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">51x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">26x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">27x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">33x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-yes">2x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-yes">14x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-yes">32x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">52x</span>
- <span class="cline-any cline-yes">52x</span>
- <span class="cline-any cline-yes">1x</span>
- <span class="cline-any cline-yes">51x</span>
- <span class="cline-any cline-yes">51x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">29x</span>
- <span class="cline-any cline-yes">22x</span>
- <span class="cline-any cline-yes">29x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-yes">6566x</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">6x</span>
- <span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict'
- const MiniPass = require('minipass')
- const Pax = require('./pax.js')
- const Header = require('./header.js')
- const ReadEntry = require('./read-entry.js')
- const fs = require('fs')
- const path = require('path')
-
- const types = require('./types.js')
- const maxReadSize = 16 * 1024 * 1024
- const PROCESS = Symbol('process')
- const FILE = Symbol('file')
- const DIRECTORY = Symbol('directory')
- const SYMLINK = Symbol('symlink')
- const HARDLINK = Symbol('hardlink')
- const HEADER = Symbol('header')
- const READ = Symbol('read')
- const LSTAT = Symbol('lstat')
- const ONLSTAT = Symbol('onlstat')
- const ONREAD = Symbol('onread')
- const ONREADLINK = Symbol('onreadlink')
- const OPENFILE = Symbol('openfile')
- const ONOPENFILE = Symbol('onopenfile')
- const CLOSE = Symbol('close')
- const warner = require('./warn-mixin.js')
- const winchars = require('./winchars.js')
-
- const WriteEntry = warner(class WriteEntry extends MiniPass {
- constructor (p, opt) {
- opt = opt || {}
- super(opt)
- if (typeof p !== 'string')
- throw new TypeError('path is required')
- this.path = p
- // suppress atime, ctime, uid, gid, uname, gname
- this.portable = !!opt.portable
- // until node has builtin pwnam functions, this'll have to do
- this.myuid = process.getuid && process.getuid()
- this.myuser = process.env.USER || ''
- this.maxReadSize = opt.maxReadSize || maxReadSize
- this.linkCache = opt.linkCache || new Map()
- this.statCache = opt.statCache || new Map()
- this.preservePaths = !!opt.preservePaths
- this.cwd = opt.cwd || process.cwd()
- this.strict = !!opt.strict
- this.noPax = !!opt.noPax
- this.noMtime = !!opt.noMtime
-
- if (typeof opt.onwarn === 'function')
- this.on('warn', opt.onwarn)
-
- if (!this.preservePaths && path.win32.isAbsolute(p)) {
- // absolutes on posix are also absolutes on win32
- // so we only need to test this one to get both
- const parsed = path.win32.parse(p)
- this.warn('stripping ' + parsed.root + ' from absolute path', p)
- this.path = p.substr(parsed.root.length)
- }
-
- this.win32 = !!opt.win32 || process.platform === 'win32'
- if (this.win32) {
- this.path = winchars.decode(this.path.replace(/\\/g, '/'))
- p = p.replace(/\\/g, '/')
- }
-
- this.absolute = opt.absolute || path.resolve(this.cwd, p)
-
- if (this.path === '')
- this.path = './'
-
- if (this.statCache.has(this.absolute))
- this[ONLSTAT](this.statCache.get(this.absolute))
- else
- this[LSTAT]()
- }
-
- [LSTAT] () {
- fs.lstat(this.absolute, (er, stat) => {
- if (er)
- return this.emit('error', er)
- this[ONLSTAT](stat)
- })
- }
-
- [ONLSTAT] (stat) {
- this.statCache.set(this.absolute, stat)
- this.stat = stat
- if (!stat.isFile())
- stat.size = 0
- this.type = getType(stat)
- this.emit('stat', stat)
- this[PROCESS]()
- }
-
- [PROCESS] () {
- switch (this.type) {
- case 'File': return this[FILE]()
- case 'Directory': return this[DIRECTORY]()
- case 'SymbolicLink': return this[SYMLINK]()
- // unsupported types are ignored.
- default: return this.end()
- }
- }
-
- [HEADER] () {
- if (this.type === 'Directory' && this.portable)
- this.noMtime = true
-
- this.header = new Header({
- path: this.path,
- linkpath: this.linkpath,
- // only the permissions and setuid/setgid/sticky bitflags
- // not the higher-order bits that specify file type
- mode: this.stat.mode & 0o7777,
- uid: this.portable ? null : this.stat.uid,
- gid: this.portable ? null : this.stat.gid,
- size: this.stat.size,
- mtime: this.noMtime ? null : this.stat.mtime,
- type: this.type,
- uname: this.portable ? null :
- this.stat.uid === this.myuid ? this.myuser : '',
- atime: this.portable ? null : this.stat.atime,
- ctime: this.portable ? null : this.stat.ctime
- })
-
- if (this.header.encode() && !this.noPax)
- this.write(new Pax({
- atime: this.portable ? null : this.header.atime,
- ctime: this.portable ? null : this.header.ctime,
- gid: this.portable ? null : this.header.gid,
- mtime: this.noMtime ? null : this.header.mtime,
- path: this.path,
- linkpath: this.linkpath,
- size: this.header.size,
- uid: this.portable ? null : this.header.uid,
- uname: this.portable ? null : this.header.uname,
- dev: this.portable ? null : this.stat.dev,
- ino: this.portable ? null : this.stat.ino,
- nlink: this.portable ? null : this.stat.nlink
- }).encode())
- this.write(this.header.block)
- }
-
- [DIRECTORY] () {
- if (this.path.substr(-1) !== '/')
- this.path += '/'
- this.stat.size = 0
- this[HEADER]()
- this.end()
- }
-
- [SYMLINK] () {
- fs.readlink(this.absolute, (er, linkpath) => {
- if (er)
- return this.emit('error', er)
- this[ONREADLINK](linkpath)
- })
- }
-
- [ONREADLINK] (linkpath) {
- this.linkpath = linkpath
- this[HEADER]()
- this.end()
- }
-
- [HARDLINK] (linkpath) {
- this.type = 'Link'
- this.linkpath = path.relative(this.cwd, linkpath)
- this.stat.size = 0
- this[HEADER]()
- this.end()
- }
-
- [FILE] () {
- if (this.stat.nlink > 1) {
- const linkKey = this.stat.dev + ':' + this.stat.ino
- if (this.linkCache.has(linkKey)) {
- const linkpath = this.linkCache.get(linkKey)
- if (linkpath.indexOf(this.cwd) === 0)
- return this[HARDLINK](linkpath)
- }
- this.linkCache.set(linkKey, this.absolute)
- }
-
- this[HEADER]()
- if (this.stat.size === 0)
- return this.end()
-
- this[OPENFILE]()
- }
-
- [OPENFILE] () {
- fs.open(this.absolute, 'r', (er, fd) => {
- if (er)
- return this.emit('error', er)
- this[ONOPENFILE](fd)
- })
- }
-
- [ONOPENFILE] (fd) {
- const blockLen = 512 * Math.ceil(this.stat.size / 512)
- const bufLen = Math.min(blockLen, this.maxReadSize)
- const buf = Buffer.allocUnsafe(bufLen)
- this[READ](fd, buf, 0, buf.length, 0, this.stat.size, blockLen)
- }
-
- [READ] (fd, buf, offset, length, pos, remain, blockRemain) {
- fs.read(fd, buf, offset, length, pos, (er, bytesRead) => {
- if (er)
- return this[CLOSE](fd, _ => this.emit('error', er))
- this[ONREAD](fd, buf, offset, length, pos, remain, blockRemain, bytesRead)
- })
- }
-
- [CLOSE] (fd, cb) {
- fs.close(fd, cb)
- }
-
- [ONREAD] (fd, buf, offset, length, pos, remain, blockRemain, bytesRead) {
- if (bytesRead <= 0 && remain > 0) {
- const er = new Error('unexpected EOF')
- er.path = this.absolute
- er.syscall = 'read'
- er.code = 'EOF'
- this.emit('error', er)
- }
-
- // null out the rest of the buffer, if we could fit the block padding
- if (bytesRead === remain) {
- for (let i = bytesRead; i < length && bytesRead < blockRemain; i++) {
- buf[i + offset] = 0
- bytesRead ++
- remain ++
- }
- }
-
- const writeBuf = offset === 0 && bytesRead === buf.length ?
- buf : buf.slice(offset, offset + bytesRead)
- remain -= bytesRead
- blockRemain -= bytesRead
- pos += bytesRead
- offset += bytesRead
-
- this.write(writeBuf)
-
- if (!remain) {
- if (blockRemain)
- this.write(Buffer.alloc(blockRemain))
- this.end()
- this[CLOSE](fd, _ => _)
- return
- }
-
- if (offset >= length) {
- buf = Buffer.allocUnsafe(length)
- offset = 0
- }
- length = buf.length - offset
- this[READ](fd, buf, offset, length, pos, remain, blockRemain)
- }
- })
-
- class WriteEntrySync extends WriteEntry {
- constructor (path, opt) {
- super(path, opt)
- }
-
- [LSTAT] () {
- this[ONLSTAT](fs.lstatSync(this.absolute))
- }
-
- [SYMLINK] () {
- this[ONREADLINK](fs.readlinkSync(this.absolute))
- }
-
- [OPENFILE] () {
- this[ONOPENFILE](fs.openSync(this.absolute, 'r'))
- }
-
- [READ] (fd, buf, offset, length, pos, remain, blockRemain) {
- let threw = true
- try {
- const bytesRead = fs.readSync(fd, buf, offset, length, pos)
- this[ONREAD](fd, buf, offset, length, pos, remain, blockRemain, bytesRead)
- threw = false
- } finally {
- if (threw)
- try { this[CLOSE](fd) } catch (er) {}
- }
- }
-
- [CLOSE] (fd) {
- fs.closeSync(fd)
- }
- }
-
- const WriteEntryTar = warner(class WriteEntryTar extends MiniPass {
- constructor (readEntry, opt) {
- opt = opt || {}
- super(opt)
- this.preservePaths = !!opt.preservePaths
- this.portable = !!opt.portable
- this.strict = !!opt.strict
- this.noPax = !!opt.noPax
- this.noMtime = !!opt.noMtime
-
- this.readEntry = readEntry
- this.type = readEntry.type
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.type === 'Directory' && this.portable)
- <span class="cstat-no" title="statement not covered" > this.noMtime = true</span>
-
- this.path = readEntry.path
- this.mode = readEntry.mode
- if (this.mode)
- this.mode = this.mode & 0o7777
- this.uid = this.portable ? null : readEntry.uid
- this.gid = this.portable ? null : readEntry.gid
- this.uname = this.portable ? null : readEntry.uname
- this.gname = this.portable ? null : readEntry.gname
- this.size = readEntry.size
- this.mtime = this.noMtime ? <span class="branch-0 cbranch-no" title="branch not covered" >null </span>: readEntry.mtime
- this.atime = this.portable ? null : readEntry.atime
- this.ctime = this.portable ? null : readEntry.ctime
- this.linkpath = readEntry.linkpath
-
- if (typeof opt.onwarn === 'function')
- this.on('warn', opt.onwarn)
-
- if (path.isAbsolute(this.path) && !this.preservePaths) {
- const parsed = path.parse(this.path)
- this.warn(
- 'stripping ' + parsed.root + ' from absolute path',
- this.path
- )
- this.path = this.path.substr(parsed.root.length)
- }
-
- this.remain = readEntry.size
- this.blockRemain = readEntry.startBlockSize
-
- this.header = new Header({
- path: this.path,
- linkpath: this.linkpath,
- // only the permissions and setuid/setgid/sticky bitflags
- // not the higher-order bits that specify file type
- mode: this.mode,
- uid: this.portable ? null : this.uid,
- gid: this.portable ? null : this.gid,
- size: this.size,
- mtime: this.noMtime ? <span class="branch-0 cbranch-no" title="branch not covered" >null </span>: this.mtime,
- type: this.type,
- uname: this.portable ? null : this.uname,
- atime: this.portable ? null : this.atime,
- ctime: this.portable ? null : this.ctime
- })
-
- if (this.header.encode() && !this.noPax)
- super.write(new Pax({
- atime: this.portable ? null : this.atime,
- ctime: this.portable ? null : this.ctime,
- gid: this.portable ? null : this.gid,
- mtime: this.noMtime ? <span class="branch-0 cbranch-no" title="branch not covered" >null </span>: this.mtime,
- path: this.path,
- linkpath: this.linkpath,
- size: this.size,
- uid: this.portable ? null : this.uid,
- uname: this.portable ? null : this.uname,
- dev: this.portable ? null : this.readEntry.dev,
- ino: this.portable ? null : this.readEntry.ino,
- nlink: this.portable ? null : this.readEntry.nlink
- }).encode())
-
- super.write(this.header.block)
- readEntry.pipe(this)
- }
-
- write (data) {
- const writeLen = data.length
- if (writeLen > this.blockRemain)
- throw new Error('writing more to entry than is appropriate')
- this.blockRemain -= writeLen
- return super.write(data)
- }
-
- end () {
- if (this.blockRemain)
- this.write(Buffer.alloc(this.blockRemain))
- return super.end()
- }
- })
-
- WriteEntry.Sync = WriteEntrySync
- WriteEntry.Tar = WriteEntryTar
-
- const getType = stat =>
- stat.isFile() ? 'File'
- : stat.isDirectory() ? 'Directory'
- : stat.isSymbolicLink() ? 'SymbolicLink'
- : 'Unsupported'
-
- module.exports = WriteEntry
- </pre></td></tr>
- </table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Nov 20 2017 16:00:38 GMT-0800 (PST)
- </div>
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
- };
- </script>
- <script src="../../sorter.js"></script>
- </body>
- </html>
|