1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-24 15:19:26 -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
// libdeno.
// libdeno. Invoked by mock_runtime_test.cc
const window = eval("this");
window["foo"] = () => {
deno_print("Hello world from foo");
return "foo";
};
function assert(cond) {
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) {
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 ab = typedArrayToArrayBuffer(ui8);
let r = deno_pub(ab);
@ -30,7 +37,7 @@ function pubReturnEmpty() {
assert(r == null);
}
function pubReturnBar() {
function SubReturnBar() {
const ui8 = new Uint8Array("abc".split("").map(c => c.charCodeAt(0)));
const ab = typedArrayToArrayBuffer(ui8);
const r = deno_pub(ab);

View file

@ -10,9 +10,10 @@ TEST(MockRuntimeTest, InitializesCorrectly) {
deno_dispose(d);
}
TEST(MockRuntimeTest, CanCallFoo) {
TEST(MockRuntimeTest, CanCallFunction) {
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);
}
@ -29,14 +30,14 @@ deno_buf strbuf(const char* str) {
TEST(MockRuntimeTest, PubSuccess) {
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")));
deno_dispose(d);
}
TEST(MockRuntimeTest, PubByteLength) {
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.
EXPECT_FALSE(deno_pub(d, strbuf("abcd")));
deno_dispose(d);
@ -61,7 +62,7 @@ TEST(MockRuntimeTest, SubReturnEmpty) {
EXPECT_EQ(data[2], 'c');
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);
deno_dispose(d);
}
@ -78,7 +79,7 @@ TEST(MockRuntimeTest, SubReturnBar) {
EXPECT_EQ(data[2], 'c');
return strbuf("bar");
});
EXPECT_TRUE(deno_execute(d, "a.js", "pubReturnBar()"));
EXPECT_TRUE(deno_execute(d, "a.js", "SubReturnBar()"));
EXPECT_EQ(count, 1);
deno_dispose(d);
}