link-file-entry-collision.js 1.23 KB
// Set the umask, so that it works the same everywhere.
process.umask(parseInt('22', 8))

var tap = require("tap")
  , tar = require("../tar.js")
  , fs = require("fs")
  , path = require("path")
  , file = path.resolve(__dirname, "link-file-entry-collision/bad-link.tar")
  , target = path.resolve(__dirname, "tmp/link-file-entry-collision")
  , index = 0
  , fstream = require("fstream")
  , mkdirp = require("mkdirp")
  , rimraf = require("rimraf")

tap.test("preclean", function (t) {
  rimraf.sync(target)
  t.pass("cleaned!")
  t.end()
})

tap.test("extract test", function (t) {
  var extract = tar.Extract(target)
  var inp = fs.createReadStream(file)
  inp.pipe(extract)

  extract.on("end", function () {
    t.equal(fs.readFileSync(target + "/bad-link-target", "utf8"),
      "this should remain the same\n")
    t.equal(fs.readFileSync(target + "/a.txt", "utf8"),
      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    t.end()
  })
})

tap.test("cleanup", function (t) {
  rimraf.sync(target)
  t.pass("cleaned!")
  t.end()
})