chore(xo-vmdk-to-vhd): fix integration tests (#5490)

This commit is contained in:
Nicolas Raynaud
2021-01-09 19:19:34 +01:00
committed by GitHub
parent 55eac005a0
commit b00750bfa3
3 changed files with 21 additions and 5 deletions

View File

@@ -39,7 +39,6 @@
"jest": {
"collectCoverage": true,
"moduleNameMapper": {
"^.": "./src",
"^(@vates/[^/]+)": "$1/src",
"^(@xen-orchestra/[^/]+)": "$1/src",
"^(value-matcher)": "$1/src",

View File

@@ -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: {

View File

@@ -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 = []