Skip to content

Commit

Permalink
change error message for integer overflows
Browse files Browse the repository at this point in the history
  • Loading branch information
derwehr committed Jan 22, 2024
1 parent 1aa6559 commit a5d0f55
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
4 changes: 2 additions & 2 deletions packages/core/src/codecs/octetstream-codec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -372,11 +372,11 @@ export default class OctetstreamCodec implements ContentCodec {
// throw error on overflow
if (signed) {
if (value < -limit - 1 || value > limit) {
throw new Error("Integer overflow when representing signed " + value + " in " + length + " bit(s)");
throw new Error("Integer overflow when representing " + value + " as a signed integer using " + length + " bit(s)");
}
} else {
if (value < 0 || value > limit) {
throw new Error("Integer overflow when representing unsigned " + value + " in " + length + " bit(s)");
throw new Error("Integer overflow when representing " + value + " as an unsigned integer using " + length + " bit(s)");
}
}

Expand Down
14 changes: 7 additions & 7 deletions packages/core/test/ContentSerdesTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -768,25 +768,25 @@ class SerdesOctetTests {
@test "value to OctetStream should throw"() {
expect(() => ContentSerdes.valueToContent(256, { type: "uint8" }, "application/octet-stream")).to.throw(
Error,
"Integer overflow when representing unsigned 256 in 8 bit(s)"
"Integer overflow when representing 256 as an unsigned integer using 8 bit(s)"
);
expect(() => ContentSerdes.valueToContent(-1, { type: "uint8" }, "application/octet-stream")).to.throw(
Error,
"Integer overflow when representing unsigned -1 in 8 bit(s)"
"Integer overflow when representing -1 as an unsigned integer using 8 bit(s)"
);
expect(() => ContentSerdes.valueToContent(128, { type: "int8" }, "application/octet-stream")).to.throw(
Error,
"Integer overflow when representing signed 128 in 8 bit(s)"
"Integer overflow when representing 128 as a signed integer using 8 bit(s)"
);
expect(() => ContentSerdes.valueToContent(-129, { type: "int8" }, "application/octet-stream")).to.throw(
Error,
"Integer overflow when representing signed -129 in 8 bit(s)"
"Integer overflow when representing -129 as a signed integer using 8 bit(s)"
);

// @ts-ignore new dataschema types are not yet supported in the td type definitions
expect(() => ContentSerdes.valueToContent(23450000, { type: "int16" }, "application/octet-stream")).to.throw(
Error,
"Integer overflow when representing signed 23450000 in 16 bit(s)"
"Integer overflow when representing 23450000 as a signed integer using 16 bit(s)"
);
expect(() => ContentSerdes.valueToContent(2345, { type: "foo" }, "application/octet-stream")).to.throw(
Error,
Expand All @@ -804,14 +804,14 @@ class SerdesOctetTests {
{ type: "integer", "ex:bitOffset": 0, "ex:bitLength": 10 },
"application/octet-stream"
)
).to.throw(Error, "Integer overflow when representing signed -2345 in 10 bit(s)");
).to.throw(Error, "Integer overflow when representing -2345 as a signed integer using 10 bit(s)");
expect(() =>
ContentSerdes.valueToContent(
-32769,
{ type: "integer", "ex:bitOffset": 0, "ex:bitLength": 16 },
"application/octet-stream"
)
).to.throw(Error, "Integer overflow when representing signed -32769 in 16 bit(s)");
).to.throw(Error, "Integer overflow when representing -32769 as a signed integer using 16 bit(s)");
expect(() =>
ContentSerdes.valueToContent(
{ flag1: true, flag2: false, numberProperty: 99, stringProperty: "Web" },
Expand Down

0 comments on commit a5d0f55

Please sign in to comment.