testHoldLockTakesOverWhatsLeft

tcmts.dev.testHoldLockTakesOverWhatsLeft · #pom54t6v · term

import { holdLock } from "#codebase/tcmts/dev";
import assert from "node:assert/strict";
import fs from "node:fs";
import os from "node:os";
import path from "node:path";

export const testHoldLockTakesOverWhatsLeft = async () => {
  const dir = fs.mkdtempSync(path.join(os.tmpdir(), "tcm lock "));
  try {
    const lock = path.join(dir, "verify.lock");
    // left by a process that's gone (no pid is this high)
    fs.writeFileSync(lock, "2147483646");
    await holdLock(lock, "nothing");
    assert.equal(fs.readFileSync(lock, "utf8"), String(process.pid));
  } finally {
    fs.rmSync(dir, { recursive: true, force: true });
  }
}

uses