chore(xo-vmdk-to-vhd): fix integration tests (#5490)
This commit is contained in:
@@ -39,7 +39,6 @@
|
||||
"jest": {
|
||||
"collectCoverage": true,
|
||||
"moduleNameMapper": {
|
||||
"^.": "./src",
|
||||
"^(@vates/[^/]+)": "$1/src",
|
||||
"^(@xen-orchestra/[^/]+)": "$1/src",
|
||||
"^(value-matcher)": "$1/src",
|
||||
|
||||
@@ -74,11 +74,19 @@ test('An ova file is parsed correctly', async () => {
|
||||
expect(data).toEqual(expectedResult)
|
||||
})
|
||||
|
||||
function arrayToBuffer(array) {
|
||||
const output = new DataView(new ArrayBuffer(array.length * 4))
|
||||
array.forEach((e, i) => {
|
||||
output.setUint32(i * 4, e, true)
|
||||
})
|
||||
return output.buffer
|
||||
}
|
||||
|
||||
const expectedResult = {
|
||||
tables: {
|
||||
[vmdkFileName]: {
|
||||
grainFileOffsetList: [65536, 115712],
|
||||
grainLogicalAddressList: [0, 65536],
|
||||
grainFileOffsetList: arrayToBuffer([65536, 115712]),
|
||||
grainLogicalAddressList: arrayToBuffer([0, 65536]),
|
||||
},
|
||||
},
|
||||
disks: {
|
||||
|
||||
@@ -25,6 +25,15 @@ function createFileAccessor(file) {
|
||||
}
|
||||
}
|
||||
|
||||
function bufferToArray(buffer) {
|
||||
const view = new DataView(buffer)
|
||||
const res = []
|
||||
for (let i = 0; i < buffer.byteLength; i += 4) {
|
||||
res.push(view.getUint32(i, true))
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
jest.setTimeout(10000)
|
||||
|
||||
const initialDir = process.cwd()
|
||||
@@ -48,8 +57,8 @@ test('VMDKDirectParser reads OK', async () => {
|
||||
const data = await readVmdkGrainTable(createFileAccessor(fileName))
|
||||
const parser = new VMDKDirectParser(
|
||||
createReadStream(fileName),
|
||||
data.grainLogicalAddressList,
|
||||
data.grainFileOffsetList
|
||||
bufferToArray(data.grainLogicalAddressList),
|
||||
bufferToArray(data.grainFileOffsetList)
|
||||
)
|
||||
const header = await parser.readHeader()
|
||||
const harvested = []
|
||||
|
||||
Reference in New Issue
Block a user