From 1697c73ba967ab890bec6600a71fc2ae5475a5cb Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Mon, 26 Mar 2012 11:06:11 -0400 Subject: [PATCH] pre-tests for rm('-rf') fix --- test/rm.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/rm.js b/test/rm.js index 631e763..8c35807 100644 --- a/test/rm.js +++ b/test/rm.js @@ -136,4 +136,32 @@ fs.chmodSync('tmp/tree/file1', '0444'); // -r--r--r-- shell.rm('-rf', 'tmp/tree'); assert.equal(fs.existsSync('tmp/tree'), false); +// removal of a sub-tree containing read-only and hidden files - rm('dir/*') +shell.mkdir('-p', 'tmp/tree3'); +shell.mkdir('-p', 'tmp/tree3/subtree'); +shell.mkdir('-p', 'tmp/tree3/.hidden'); +'asdf'.to('tmp/tree3/subtree/file'); +'asdf'.to('tmp/tree3/.hidden/file'); +'asdf'.to('tmp/tree3/file'); +fs.chmodSync('tmp/tree3/file', '0444'); // -r--r--r-- +fs.chmodSync('tmp/tree3/subtree/file', '0444'); // -r--r--r-- +fs.chmodSync('tmp/tree3/.hidden/file', '0444'); // -r--r--r-- +shell.cd('tmp/tree3'); +shell.rm('-rf', '*', '.*'); // erase dir contents +assert.equal(shell.ls().length, 0); +shell.cd('..'); + +// removal of a sub-tree containing read-only and hidden files - rm('dir') +shell.mkdir('-p', 'tmp/tree4'); +shell.mkdir('-p', 'tmp/tree4/subtree'); +shell.mkdir('-p', 'tmp/tree4/.hidden'); +'asdf'.to('tmp/tree4/subtree/file'); +'asdf'.to('tmp/tree4/.hidden/file'); +'asdf'.to('tmp/tree4/file'); +fs.chmodSync('tmp/tree4/file', '0444'); // -r--r--r-- +fs.chmodSync('tmp/tree4/subtree/file', '0444'); // -r--r--r-- +fs.chmodSync('tmp/tree4/.hidden/file', '0444'); // -r--r--r-- +shell.rm('-rf', 'tmp/tree4'); // erase dir contents +assert.equal(fs.existsSync('tmp/tree4'), false); + shell.exit(123);