1 var common = require('../common');
2 var assert = require('assert');
3 var path = require('path');
4 var fs = require('fs');
5 var tmp = common.tmpDir;
6 var filename = path.resolve(tmp, 'truncate-file.txt');
7 var data = new Buffer(1024 * 16);
13 fs.writeFileSync(filename, data);
14 stat = fs.statSync(filename);
15 assert.equal(stat.size, 1024 * 16);
17 fs.truncateSync(filename, 1024);
18 stat = fs.statSync(filename);
19 assert.equal(stat.size, 1024);
21 fs.truncateSync(filename);
22 stat = fs.statSync(filename);
23 assert.equal(stat.size, 0);
26 fs.writeFileSync(filename, data);
27 var fd = fs.openSync(filename, 'r+');
29 stat = fs.statSync(filename);
30 assert.equal(stat.size, 1024 * 16);
32 fs.ftruncateSync(fd, 1024);
33 stat = fs.statSync(filename);
34 assert.equal(stat.size, 1024);
37 stat = fs.statSync(filename);
38 assert.equal(stat.size, 0);
44 testTruncate(function(er) {
47 testFtruncate(function(er) {
53 process.on('exit', function() {
54 assert.equal(success, 2);
58 function testTruncate(cb) {
59 fs.writeFile(filename, data, function(er) {
60 if (er) return cb(er);
61 fs.stat(filename, function(er, stat) {
62 if (er) return cb(er);
63 assert.equal(stat.size, 1024 * 16);
65 fs.truncate(filename, 1024, function(er) {
66 if (er) return cb(er);
67 fs.stat(filename, function(er, stat) {
68 if (er) return cb(er);
69 assert.equal(stat.size, 1024);
71 fs.truncate(filename, function(er) {
72 if (er) return cb(er);
73 fs.stat(filename, function(er, stat) {
74 if (er) return cb(er);
75 assert.equal(stat.size, 0);
86 function testFtruncate(cb) {
87 fs.writeFile(filename, data, function(er) {
88 if (er) return cb(er);
89 fs.stat(filename, function(er, stat) {
90 if (er) return cb(er);
91 assert.equal(stat.size, 1024 * 16);
93 fs.open(filename, 'w', function(er, fd) {
94 if (er) return cb(er);
95 fs.ftruncate(fd, 1024, function(er) {
96 if (er) return cb(er);
97 fs.stat(filename, function(er, stat) {
98 if (er) return cb(er);
99 assert.equal(stat.size, 1024);
101 fs.ftruncate(fd, function(er) {
102 if (er) return cb(er);
103 fs.stat(filename, function(er, stat) {
104 if (er) return cb(er);
105 assert.equal(stat.size, 0);