0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-08 07:16:56 -05:00

Better function names in mock_runtime.js

This commit is contained in:
Ryan Dahl 2018-06-11 21:30:58 +02:00
parent 56c3ac464e
commit 314f086721
2 changed files with 28 additions and 20 deletions

View file

@ -1,27 +1,34 @@
// A simple runtime that doesn't involve typescript or protobufs to test // A simple runtime that doesn't involve typescript or protobufs to test
// libdeno. // libdeno. Invoked by mock_runtime_test.cc
const window = eval("this"); const window = eval("this");
window["foo"] = () => {
deno_print("Hello world from foo");
return "foo";
};
function assert(cond) { function assert(cond) {
if (!cond) throw Error("mock_runtime.js assert failed"); if (!cond) throw Error("mock_runtime.js assert failed");
} }
function subabc() {
deno_sub(msg => {
assert(msg instanceof ArrayBuffer);
assert(msg.byteLength === 3);
});
}
function typedArrayToArrayBuffer(ta) { function typedArrayToArrayBuffer(ta) {
return ta.buffer.slice(ta.byteOffset, ta.byteOffset + ta.byteLength); return ta.buffer.slice(ta.byteOffset, ta.byteOffset + ta.byteLength);
} }
function pubReturnEmpty() { function CanCallFunction() {
deno_print("Hello world from foo");
return "foo";
}
function PubSuccess() {
deno_sub(msg => {
deno_print("PubSuccess: ok");
});
}
function PubByteLength() {
deno_sub(msg => {
assert(msg instanceof ArrayBuffer);
assert(msg.byteLength === 3);
});
}
function SubReturnEmpty() {
const ui8 = new Uint8Array("abc".split("").map(c => c.charCodeAt(0))); const ui8 = new Uint8Array("abc".split("").map(c => c.charCodeAt(0)));
const ab = typedArrayToArrayBuffer(ui8); const ab = typedArrayToArrayBuffer(ui8);
let r = deno_pub(ab); let r = deno_pub(ab);
@ -30,7 +37,7 @@ function pubReturnEmpty() {
assert(r == null); assert(r == null);
} }
function pubReturnBar() { function SubReturnBar() {
const ui8 = new Uint8Array("abc".split("").map(c => c.charCodeAt(0))); const ui8 = new Uint8Array("abc".split("").map(c => c.charCodeAt(0)));
const ab = typedArrayToArrayBuffer(ui8); const ab = typedArrayToArrayBuffer(ui8);
const r = deno_pub(ab); const r = deno_pub(ab);

View file

@ -10,9 +10,10 @@ TEST(MockRuntimeTest, InitializesCorrectly) {
deno_dispose(d); deno_dispose(d);
} }
TEST(MockRuntimeTest, CanCallFoo) { TEST(MockRuntimeTest, CanCallFunction) {
Deno* d = deno_new(NULL, NULL); Deno* d = deno_new(NULL, NULL);
EXPECT_TRUE(deno_execute(d, "a.js", "if (foo() != 'foo') throw Error();")); EXPECT_TRUE(deno_execute(d, "a.js",
"if (CanCallFunction() != 'foo') throw Error();"));
deno_dispose(d); deno_dispose(d);
} }
@ -29,14 +30,14 @@ deno_buf strbuf(const char* str) {
TEST(MockRuntimeTest, PubSuccess) { TEST(MockRuntimeTest, PubSuccess) {
Deno* d = deno_new(NULL, NULL); Deno* d = deno_new(NULL, NULL);
EXPECT_TRUE(deno_execute(d, "a.js", "subabc();")); EXPECT_TRUE(deno_execute(d, "a.js", "PubSuccess()"));
EXPECT_TRUE(deno_pub(d, strbuf("abc"))); EXPECT_TRUE(deno_pub(d, strbuf("abc")));
deno_dispose(d); deno_dispose(d);
} }
TEST(MockRuntimeTest, PubByteLength) { TEST(MockRuntimeTest, PubByteLength) {
Deno* d = deno_new(NULL, NULL); Deno* d = deno_new(NULL, NULL);
EXPECT_TRUE(deno_execute(d, "a.js", "subabc();")); EXPECT_TRUE(deno_execute(d, "a.js", "PubByteLength()"));
// We pub the wrong sized message, it should throw. // We pub the wrong sized message, it should throw.
EXPECT_FALSE(deno_pub(d, strbuf("abcd"))); EXPECT_FALSE(deno_pub(d, strbuf("abcd")));
deno_dispose(d); deno_dispose(d);
@ -61,7 +62,7 @@ TEST(MockRuntimeTest, SubReturnEmpty) {
EXPECT_EQ(data[2], 'c'); EXPECT_EQ(data[2], 'c');
return deno_buf{nullptr, 0}; return deno_buf{nullptr, 0};
}); });
EXPECT_TRUE(deno_execute(d, "a.js", "pubReturnEmpty()")); EXPECT_TRUE(deno_execute(d, "a.js", "SubReturnEmpty()"));
EXPECT_EQ(count, 2); EXPECT_EQ(count, 2);
deno_dispose(d); deno_dispose(d);
} }
@ -78,7 +79,7 @@ TEST(MockRuntimeTest, SubReturnBar) {
EXPECT_EQ(data[2], 'c'); EXPECT_EQ(data[2], 'c');
return strbuf("bar"); return strbuf("bar");
}); });
EXPECT_TRUE(deno_execute(d, "a.js", "pubReturnBar()")); EXPECT_TRUE(deno_execute(d, "a.js", "SubReturnBar()"));
EXPECT_EQ(count, 1); EXPECT_EQ(count, 1);
deno_dispose(d); deno_dispose(d);
} }