Files
Desktop/scripts/generate-fixtures.mjs
T
2026-04-02 13:20:15 -07:00

48 lines
1.2 KiB
JavaScript

// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// @ts-check
import fs from 'node:fs/promises';
import path from 'node:path';
import crypto from 'node:crypto';
import { execFileSync } from 'node:child_process';
const FIXTURES = path.join(import.meta.dirname, '..', 'fixtures');
const SIZE = 256 * 1024;
const original = crypto.randomBytes(SIZE);
const originalPath = path.join(FIXTURES, 'diff-original.bin');
await fs.writeFile(originalPath, original);
// Add a few broken bytes to help create useful blockmaps
for (let i = 0; i < 3; i += 1) {
original[Math.floor(Math.random() * original.length)] = 0;
}
const modifiedPath = path.join(FIXTURES, 'diff-modified.bin');
await fs.writeFile(modifiedPath, original);
const appBuilder = path.join(
import.meta.dirname,
'..',
'node_modules',
'app-builder-bin',
'mac',
'app-builder_amd64'
);
for (const filePath of [originalPath, modifiedPath]) {
console.log('Adding blockmap to', filePath);
// Put blockmap into a separate file
console.log(
execFileSync(appBuilder, [
'blockmap',
'--input',
filePath,
'--output',
`${filePath}.blockmap`,
]).toString()
);
}