michael@0: const Cc = Components.classes; michael@0: const Ci = Components.interfaces; michael@0: michael@0: function run_test() { michael@0: // skip this test on Windows michael@0: var isWindows = ("@mozilla.org/windows-registry-key;1" in Components.classes); michael@0: if (!isWindows) { michael@0: var testDir = __LOCATION__.parent; michael@0: // create a test file, then symlink it, then check that we think it's a symlink michael@0: var targetFile = testDir.clone(); michael@0: targetFile.append("target.txt"); michael@0: if (!targetFile.exists()) michael@0: targetFile.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0644); michael@0: michael@0: var link = testDir.clone(); michael@0: link.append("link"); michael@0: if (link.exists()) michael@0: link.remove(false); michael@0: michael@0: var ln = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); michael@0: ln.initWithPath("/bin/ln"); michael@0: var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); michael@0: process.init(ln); michael@0: var args = ["-s", targetFile.path, link.path]; michael@0: process.run(true, args, args.length); michael@0: do_check_true(link.isSymlink()); michael@0: } michael@0: }