2 var common = require('../common');
3 var assert = require('assert');
4 var path = require('path');
5 var fs = require('fs');
6 var tmp = common.tmpDir;
7 var filename = path.resolve(tmp, 'truncate-file.txt');
8 var data = new Buffer(1024 * 16);
11 common.refreshTmpDir();
16 fs.writeFileSync(filename, data);
17 stat = fs.statSync(filename);
18 assert.equal(stat.size, 1024 * 16);
20 fs.truncateSync(filename, 1024);
21 stat = fs.statSync(filename);
22 assert.equal(stat.size, 1024);
24 fs.truncateSync(filename);
25 stat = fs.statSync(filename);
26 assert.equal(stat.size, 0);
29 fs.writeFileSync(filename, data);
30 var fd = fs.openSync(filename, 'r+');
32 stat = fs.statSync(filename);
33 assert.equal(stat.size, 1024 * 16);
35 fs.ftruncateSync(fd, 1024);
36 stat = fs.statSync(filename);
37 assert.equal(stat.size, 1024);
40 stat = fs.statSync(filename);
41 assert.equal(stat.size, 0);
47 testTruncate(function(er) {
50 testFtruncate(function(er) {
56 process.on('exit', function() {
57 assert.equal(success, 2);
61 function testTruncate(cb) {
62 fs.writeFile(filename, data, function(er) {
63 if (er) return cb(er);
64 fs.stat(filename, function(er, stat) {
65 if (er) return cb(er);
66 assert.equal(stat.size, 1024 * 16);
68 fs.truncate(filename, 1024, function(er) {
69 if (er) return cb(er);
70 fs.stat(filename, function(er, stat) {
71 if (er) return cb(er);
72 assert.equal(stat.size, 1024);
74 fs.truncate(filename, function(er) {
75 if (er) return cb(er);
76 fs.stat(filename, function(er, stat) {
77 if (er) return cb(er);
78 assert.equal(stat.size, 0);
89 function testFtruncate(cb) {
90 fs.writeFile(filename, data, function(er) {
91 if (er) return cb(er);
92 fs.stat(filename, function(er, stat) {
93 if (er) return cb(er);
94 assert.equal(stat.size, 1024 * 16);
96 fs.open(filename, 'w', function(er, fd) {
97 if (er) return cb(er);
98 fs.ftruncate(fd, 1024, function(er) {
99 if (er) return cb(er);
100 fs.stat(filename, function(er, stat) {
101 if (er) return cb(er);
102 assert.equal(stat.size, 1024);
104 fs.ftruncate(fd, function(er) {
105 if (er) return cb(er);
106 fs.stat(filename, function(er, stat) {
107 if (er) return cb(er);
108 assert.equal(stat.size, 0);