-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: End to end testing framework #71
base: master
Are you sure you want to change the base?
Conversation
Feat: Browser support check for WASM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks okay in general, but my main concern is the code duplication. The code here will inevitably get out of sync with the one in sourceror-driver, when updates are made to sourceror-driver over time.
Also, do run cargo fmt
. It appears that there is some slight misformatting of the rust files.
@@ -0,0 +1 @@ | |||
import {math_sin, math_PI} from "https://btzy.github.io/libsourceror/std/math.source"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this file be removed?
#[wasm_bindgen_test] | ||
fn comp_test() { | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is something supposed to happen here?
|
||
[target."cfg(debug_assertions)".dependencies] | ||
console_error_panic_hook = "0.1.5" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this required?
// Your code goes here! | ||
// const SOURCE_CODE: &'static str = r#" | ||
// { "type": "Program", "start": 0, "end": 65, "body": [ { "type": "FunctionDeclaration", "start": 0, "end": 52, "id": { "type": "Identifier", "start": 9, "end": 11, "name": "ok" }, "expression": false, "generator": false, "async": false, "params": [ { "type": "Identifier", "start": 12, "end": 13, "name": "n" } ], "body": { "type": "BlockStatement", "start": 15, "end": 52, "body": [ { "type": "ReturnStatement", "start": 19, "end": 50, "argument": { "type": "ConditionalExpression", "start": 26, "end": 49, "test": { "type": "BinaryExpression", "start": 26, "end": 33, "left": { "type": "Identifier", "start": 26, "end": 27, "name": "n" }, "operator": "===", "right": { "type": "Literal", "start": 32, "end": 33, "value": 0, "raw": "0" } }, "consequent": { "type": "Literal", "start": 36, "end": 37, "value": 0, "raw": "0" }, "alternate": { "type": "CallExpression", "start": 40, "end": 49, "callee": { "type": "Identifier", "start": 40, "end": 42, "name": "ok" }, "arguments": [ { "type": "BinaryExpression", "start": 43, "end": 48, "left": { "type": "Identifier", "start": 43, "end": 44, "name": "n" }, "operator": "-", "right": { "type": "Literal", "start": 47, "end": 48, "value": 1, "raw": "1" } } ], "optional": false } } } ] } }, { "type": "ExpressionStatement", "start": 54, "end": 64, "expression": { "type": "CallExpression", "start": 54, "end": 63, "callee": { "type": "Identifier", "start": 54, "end": 56, "name": "ok" }, "arguments": [ { "type": "Literal", "start": 57, "end": 62, "value": 50000, "raw": "50000" } ], "optional": false } } ], "sourceType": "script" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we still need this?
// compile(code, context).then(arr => { | ||
// const startTime = Date.now(); | ||
// WebAssembly.instantiate(arr, config) | ||
// .then(({ instance, module }) => { | ||
// const transcoder = new Transcoder(); | ||
// transcoder.setMem(new DataView((instance.exports.linear_memory).buffer)); | ||
// transcoder.setAllocateStringFunc(instance.exports.allocate_string); | ||
// try { | ||
// (instance.exports.main)(); | ||
// const result = read_js_result( | ||
// instance.exports.linear_memory | ||
// ); | ||
// const endTime = Date.now() | ||
// const latency = endTime - startTime; | ||
// console.log(`Log: time: ${latency}`) | ||
// logger(result, undefined); | ||
// } catch (e) { | ||
// if (e === {}) { | ||
// logger(undefined, "Runtime error"); | ||
// } else { | ||
// logger(undefined, e); | ||
// } | ||
// } | ||
// }, (err) => { | ||
// logger(undefined, err); | ||
// }).catch(err => { | ||
// logger(undefined, err); | ||
// }); | ||
// }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we remove this?
[dev-dependencies] | ||
wasm-bindgen-test = "0.2.45" | ||
futures = "0.1.27" | ||
js-sys = "0.3.22" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think you need to repeat a dev-dependency that is already a normal dependency.
|
||
[dependencies] | ||
source-compiler = { path = "../source-compiler" } | ||
js-sys = "0.3.22" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason to fix a particular patch version? The other crates in this project do not fix it, and readily accept a version bump. Same for the rest of the dependencies in this file.
/target | ||
/pkg | ||
/wasm-pack.log | ||
package-lock.json |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you also add yarn.lock
here, so that people can use yarn to build it too?
Note that it's possible to add some code into cadet-frontend, if it would help sourceror get rid of the js-slang dependency. You can change the API boundary between cadet-frontend and sourceror as you see fit. I think most of the sourceror-specific stuff in cadet-frontend are in |
Description