Skip to content

Commit b5c252d

Browse files
committed
Reject non-decimal run max values
1 parent 113abf7 commit b5c252d

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

bin/moshcode.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ function readScript(arg) {
2828

2929
function parseMax(value) {
3030
if (value === undefined) throw new Error("moshcode run: --max requires a positive integer");
31+
if (!/^\d+$/.test(value)) {
32+
throw new Error(`moshcode run: --max must be a positive integer, got ${JSON.stringify(value)}`);
33+
}
3134
const max = Number(value);
3235
if (!Number.isInteger(max) || max < 1) {
3336
throw new Error(`moshcode run: --max must be a positive integer, got ${JSON.stringify(value)}`);

test/run-options.test.mjs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,12 @@ test("run rejects multiple script files", () => {
3333
assert.equal(result.status, 1);
3434
assert.match(result.stderr, /moshcode run: expected one script file/);
3535
});
36+
37+
test("run rejects non-decimal max values", () => {
38+
for (const value of ["0x10", "1e2", "3.5"]) {
39+
const result = run(["--max", value, "--dry-run"]);
40+
41+
assert.equal(result.status, 1);
42+
assert.match(result.stderr, /moshcode run: --max must be a positive integer/);
43+
}
44+
});

0 commit comments

Comments
 (0)