michael@0: // |reftest| skip-if(!xulRuntime.shell) michael@0: // Any copyright is dedicated to the Public Domain. michael@0: // http://creativecommons.org/licenses/publicdomain/ michael@0: michael@0: function viewToString(view) michael@0: { michael@0: return String.fromCharCode.apply(null, view); michael@0: } michael@0: michael@0: function assertThrows(f, wantException) michael@0: { michael@0: try { michael@0: f(); michael@0: assertEq(true, false, "expected " + wantException + " exception"); michael@0: } catch (e) { michael@0: assertEq(e.name, wantException.name, e.toString()); michael@0: } michael@0: } michael@0: michael@0: function test() { michael@0: var filename = "file-mapped-arraybuffers.txt"; michael@0: var buffer = createMappedArrayBuffer(filename); michael@0: var view = new Uint8Array(buffer); michael@0: assertEq(viewToString(view), "01234567abcdefghijkl"); michael@0: michael@0: var buffer2 = createMappedArrayBuffer(filename, 8); michael@0: view = new Uint8Array(buffer2); michael@0: assertEq(viewToString(view), "abcdefghijkl"); michael@0: michael@0: var buffer3 = createMappedArrayBuffer(filename, 0, 8); michael@0: view = new Uint8Array(buffer3); michael@0: assertEq(viewToString(view), "01234567"); michael@0: michael@0: // Check that invalid sizes and offsets are caught michael@0: assertThrows(() => createMappedArrayBuffer("empty.txt", 8), RangeError); michael@0: assertThrows(() => createMappedArrayBuffer("empty.txt", 0, 8), Error); michael@0: } michael@0: michael@0: test(); michael@0: reportCompare(0, 0, 'ok');