From ee6c0401b462a4c0a75d2a1a05a2ebb3f634d429 Mon Sep 17 00:00:00 2001 From: Jeff Charles Date: Thu, 5 Dec 2024 10:44:42 -0500 Subject: [PATCH] Add missing tests for v2 and v3 providers --- src/engine.rs | 28 +++++++++++++++++++++++ tests/fixtures/README.md | 12 ++++++++++ tests/fixtures/build/js_function_v2.wasm | Bin 0 -> 3536 bytes tests/fixtures/build/js_function_v3.wasm | Bin 0 -> 3493 bytes 4 files changed, 40 insertions(+) create mode 100644 tests/fixtures/build/js_function_v2.wasm create mode 100644 tests/fixtures/build/js_function_v3.wasm diff --git a/src/engine.rs b/src/engine.rs index dda4685f..23912b62 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -263,6 +263,34 @@ mod tests { assert_eq!(function_run_result.unwrap().memory_usage, 1280); } + #[test] + fn test_js_v2_function() { + let input = include_bytes!("../tests/fixtures/input/js_function_input.json").to_vec(); + let function_run_result = run(FunctionRunParams { + function_path: Path::new("tests/fixtures/build/js_function_v2.wasm").to_path_buf(), + input, + export: DEFAULT_EXPORT, + ..Default::default() + }); + + assert!(function_run_result.is_ok()); + assert_eq!(function_run_result.unwrap().memory_usage, 1344); + } + + #[test] + fn test_js_v3_function() { + let input = include_bytes!("../tests/fixtures/input/js_function_input.json").to_vec(); + let function_run_result = run(FunctionRunParams { + function_path: Path::new("tests/fixtures/build/js_function_v3.wasm").to_path_buf(), + input, + export: DEFAULT_EXPORT, + ..Default::default() + }); + + assert!(function_run_result.is_ok()); + assert_eq!(function_run_result.unwrap().memory_usage, 1344); + } + #[test] fn test_exit_code_zero() { let function_run_result = run(FunctionRunParams { diff --git a/tests/fixtures/README.md b/tests/fixtures/README.md index ca5a5dea..1001570e 100644 --- a/tests/fixtures/README.md +++ b/tests/fixtures/README.md @@ -15,6 +15,18 @@ cargo wasi build --profile=wasm -p exit_code -p exports -p log_truncation_functi cp target/wasm32-wasi/wasm/{exit_code.wasm,exports.wasm,log_truncation_function.wasm} tests/fixtures/build ``` +**JS examples:** + +js_function_v2.wasm: +``` +javy compile -d -o tests/fixtures/build/js_function_v2.wasm tests/fixtures/js_function/src/functions.js +``` + +js_function_v3.wasm: +``` +javy build -C dynamic -C plugin=providers/javy_quickjs_provider_v3.wasm -o tests/fixtures/build/js_function_v3.wasm tests/fixtures/js_function/src/functions.js +``` + **`*.wat` examples:** ``` find tests/fixtures -maxdepth 1 -type f -name "*.wat" \ diff --git a/tests/fixtures/build/js_function_v2.wasm b/tests/fixtures/build/js_function_v2.wasm new file mode 100644 index 0000000000000000000000000000000000000000..048b72991568dab41573478a04aeca9a57db60c2 GIT binary patch literal 3536 zcmaJ@3s_Xu7GC?DGiS~`7-oiHKp6$p_(W1COvQJDnxUWxsOe3IGs6K!UdrrvbEu0;6m&k#+zFbLm&rOc> zivED#=M{_GqQ~c!C9$X|;05+i4Z@_ksOu?JByS*B!mxklnfLkU1_~u${#>J2Dh|k{ z3;@dz(CP{A4l1Io0Ba;f-;=}>Qsx5uBd*<6GxVV3ZtHCUAdV7dVleEp60+MmdPsC$ z$nRBr0e`>Z*+Hw@oh#)%DF;f-ZnreABp@qHfDxIXJt%uS89~R`j3=|FyT_zujh-}R zVzw$mD=}20*nIwykmAl2717#31{JxJ3V3GQ0wIOUA0Sa~@8nV|{o`qwS=obfeL-&^ zJ9kweEA{F6f?GZv7_lezZ5iKZ}TN37=1tYiI{}7SW?71pH!5~&0io;U40Q%wv|Y- zSMn=jzGTV^$YVusfj|Z3IU&)n_>@wiBor*L7o%2z=tqwd=gV~2k$n;I7icHCz&KzmB_`hgwZWE2Xq>{+#Q-NVT~INV$Q8g}aGsJb~2TaGxbW zF9L2Iq*UQ4^%iC6RF)nvmSsn)#>8JXrqWom^s2znsoPFj29;%ml-qc+#G{KllxbFRCT6NXpi`_;3gD;Wg_p)cr@qa35cgn>!GK0bKp8=gg;xlm28s-Q6e-xr`e z2;BgjEHEDv(CC5G5n%cQ^a8FY5G$}Z#E40$&`;iHAY|!z$c;wnEL>m2t1nfP(?OiBY;n$E~y7Cu)Xe^kBdO} zW?-X?43C#0jFv!m_Co>$?jj7J1T#iFK-0p@_J-!hIzv<4xb)G;)Tg^}y=q$A`m-sq zo@H3pF+aRJ0A3t}cB6R^GY}&X6A%Hk3BVVsG0-&!kW3bF=)SSBCUP`wYLKIAT4Up$ z$kDXQL5{9?-WxfZ5PGI-T4V2eR)8)K0hm}U446UC18=3IRV8f?kjBwG;+JrQ2iQt9 zYQQBNfw&jZS=>^NWt`=lmUW5*M1Yj{F`(rjR+>OV%@L7-6s!oiupp2s;L_+pLWhKh zP)zh<;7bn!H5*#PQdXfUr$e$4$iX-!JX*Y%@UO-9>RFv3exh}I!l(q#qO51&P11wbfHu_*Y&YN@ z1qPdgv<1M1z3&bht3Co3%3)(D-cT7!$Qkh2Q_yG(z=W$zBXCHVsJ32JL6}9V5`8j$ zaUy_2oD86T)p!vUxy%6IBG3YTB1Y*=Xwi@3;9#)HF1EAg*y$HJ7Mx8NYu;-eCStLF zFRg)=wh61*fcgGjO`}@PrjCNEg*bKj69ifmHmoRN)R-_Bi4jaXdJ7Kki@@(p*oF_R z%m2v~0Z+@Jf)T4s5cYs$4Vn>K`0`jROb1X|q9Nn};das2unK`wvYG;?k|RtG&O$(l zh#kgK;H%`PaQI={)PHhJ+7^+ES4-8I&!EoO$od!y$9#jgkmmZFX1ky2D zG26r#=fFErqvi-g6bR<{BtZ}c;r}rXN0QZHeHL`F01vAZx<4CZf5)Q=^3<%qWR0l=&TAUHCk>7@n4^AupsG$mvb#I-64kB7%}9p6hy4l+WK=+6(~ z*OutQZOjx_Vtt!j{c<3JlfCM&k4tPgZlF?7zp9lI;L6x zhj#CfYYDI0;+NN$HePRDxo>Csr1V(rr-zn>F0`-CoR+j~&DqZr_rx!+I1x8OKeFYE zd-ocKpV_>t#UeZb-hDSd>bw8=q9gA%rM|Nfv>%GSS4SR|M@keob@+$$I53M-IlEWas1@k zqYqamzP)~3()OiC&YSzBc3(N7F00!OXSZMevGusk9usx&pDiW!#TlR9i?X!(uD2C; z&oI4zskMDq)izDmnUhJr{aY(qQdh1R_w-ub$5ERDLl#`-hmN~4t!w7;k?T_%zHj#2 z{&&U3&+I3cWuJciZb8eTD_wfH3#QoToSn3UpE`W!rePB&PrgF<=r3-YQdU~~Xg0Rg zZ*Dzsv-HxavpcNz=cYR|&L7sTI#{_ayYkW}ZQq|iR`KcVAz!tW!^9m+uEObWrfoV@ ztZ94m+y|%L8hj&ud|N|g(S@0>w1iUYcD zTiLP4W?KJ#;;osQSJ#b=2zy&Q^=j#a!n-~04osObKPNjZZD5t}?4Xg;r+$}JR`KZH``DTP^5&Zrr*ee%TxAhWpNS&7Rs`F+Z>W_=M@%^-iX+=EVL%;tRII zhtj6ZiFt1+^EF?8;%fQ!VaG#zihrxw^K|)Nw$>iFd1qfAUs~kQDYJi#dgB$#qFegp z83!Xs^{0amhm)f-u4v9xoO^Cdakbq%{1fxw|D4pE9y#l?A*;6hr2Ld)ZV$B2KYnt0 zX6?y7`6o8V_Ih_`lVprcvICkfiMJt?d8$8)V!*i~C?q%G};X}tAr}vHcSB0)jSG~gCze*TU Jm66>H{{vEC))fE% literal 0 HcmV?d00001 diff --git a/tests/fixtures/build/js_function_v3.wasm b/tests/fixtures/build/js_function_v3.wasm new file mode 100644 index 0000000000000000000000000000000000000000..76128f298eb19f07bef1761edc9b6a75e135c1f2 GIT binary patch literal 3493 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