From 94aaa2eb7ba4bffb6bc61cdc6942a4065c567040 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Tue, 2 Jul 2019 22:18:57 -0700 Subject: [PATCH] Setup multi version test --- .../maki-interpreter/interpreter.test.js | 47 +++++++++++------- .../hello_world.m | 7 +++ .../hello_world.maki | Bin 0 -> 645 bytes .../hello_world.m | 7 +++ .../hello_world.maki | Bin 0 -> 763 bytes .../v1.1.13 (Winamp 5.02)/hello_world.m | 7 +++ .../v1.1.13 (Winamp 5.02)/hello_world.maki | Bin 0 -> 1236 bytes .../v1.2.0 (Winamp 5.66)/hello_world.m | 7 +++ .../v1.2.0 (Winamp 5.66)/hello_world.maki | Bin 0 -> 1694 bytes 9 files changed, 57 insertions(+), 18 deletions(-) create mode 100755 experiments/maki-interpreter/reference/maki_compiler/v1.1.0.a9 (Winamp 3 alpha 8r)/hello_world.m create mode 100755 experiments/maki-interpreter/reference/maki_compiler/v1.1.0.a9 (Winamp 3 alpha 8r)/hello_world.maki create mode 100755 experiments/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/hello_world.m create mode 100755 experiments/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/hello_world.maki create mode 100755 experiments/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/hello_world.m create mode 100755 experiments/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/hello_world.maki create mode 100755 experiments/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/hello_world.m create mode 100755 experiments/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/hello_world.maki diff --git a/experiments/maki-interpreter/interpreter.test.js b/experiments/maki-interpreter/interpreter.test.js index f6e48cde..c770c5c4 100644 --- a/experiments/maki-interpreter/interpreter.test.js +++ b/experiments/maki-interpreter/interpreter.test.js @@ -10,23 +10,34 @@ function runFile(relativePath) { interpret({ runtime, buffer, system, log: false }); } -describe("v1.1.1.b3 (Winamp 3.0 full)", () => { - test("can call messageBox with hello World", () => { - const mockMessageBox = jest.fn(); - // The VM depends upon the arity of this function, so we can't use - // `mockMessageBox` directly. - System.prototype.messageBox = function(a, b, c, d) { - mockMessageBox(a, b, c, d); - }; - runFile( - "./reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 full)/hello_world.maki" - ); - expect(mockMessageBox).toHaveBeenCalledTimes(1); - expect(mockMessageBox).toHaveBeenCalledWith( - "Hello World", - "Hello Title", - 1, - null - ); +let mockMessageBox; +beforeEach(() => { + mockMessageBox = jest.fn(); + // The VM depends upon the arity of this function, so we can't use + // `mockMessageBox` directly. + System.prototype.messageBox = function(a, b, c, d) { + mockMessageBox(...arguments); + }; +}); + +describe("can call messageBox with hello World", () => { + const versions = [ + // "v1.1.0.a9 (Winamp 3 alpha 8r)", + "v1.1.1.b3 (Winamp 3.0 build 488d)", + "v1.1.1.b3 (Winamp 3.0 full)" + // "v1.1.13 (Winamp 5.02)", + // "v1.2.0 (Winamp 5.66)" + ]; + versions.forEach(version => { + test(`with bytecode compiled by ${version}`, () => { + runFile(`./reference/maki_compiler/${version}/hello_world.maki`); + expect(mockMessageBox).toHaveBeenCalledTimes(1); + expect(mockMessageBox).toHaveBeenCalledWith( + "Hello World", + "Hello Title", + 1, + null + ); + }); }); }); diff --git a/experiments/maki-interpreter/reference/maki_compiler/v1.1.0.a9 (Winamp 3 alpha 8r)/hello_world.m b/experiments/maki-interpreter/reference/maki_compiler/v1.1.0.a9 (Winamp 3 alpha 8r)/hello_world.m new file mode 100755 index 00000000..4075b023 --- /dev/null +++ b/experiments/maki-interpreter/reference/maki_compiler/v1.1.0.a9 (Winamp 3 alpha 8r)/hello_world.m @@ -0,0 +1,7 @@ +#include "lib/std.mi" + +System.onScriptLoaded() +{ + String response; + System.messageBox("Hello World", "Hello Title", 1, response); +} \ No newline at end of file diff --git a/experiments/maki-interpreter/reference/maki_compiler/v1.1.0.a9 (Winamp 3 alpha 8r)/hello_world.maki b/experiments/maki-interpreter/reference/maki_compiler/v1.1.0.a9 (Winamp 3 alpha 8r)/hello_world.maki new file mode 100755 index 0000000000000000000000000000000000000000..db635b67e54fd8de63c4b791d081c91c65b58b53 GIT binary patch literal 645 zcmZ>BXJ!#&U|^5};zG~Vz;@n1uZfSBZ8b9e{5*yK>$P8#w|h?hxGU}bI=dOwM|fZI zwmkRRpu@s_sr37w1tkX<7X4e`xv%%v?%QHw4qL65Hu*X)^xn5FGP#ub^RZO31Pf`m zcXiipj_qAI!{lb?O{*BdKpR`;(n}6+olJceTrsswO zE28xd@A+#Vw=F5oyw{=kRav9gPU-S})BVqFD3|n`8Fpoc@yQ%@UWG#|UI%J<@2ZdW zJ{Id!Xt7JKcbe>rZy)4DP! z`n0!;(cjuY^BTYX4o&Ogt?n3${@NK;J1g9E^@-H*Wyfk(p1s?bDcAqTf40z1m!F*f zUDeN~WUEDa`}9OUTh8;%)9U~EJ6rxWp7EY0UBrKNAOC+QU>q?rGBEHlBXJ!#+U|>)L;zG~Vz;@n1uZfSBZ8b9e{5*yK>$P8#w|h?hxGU}bI=dOwM|fZI zwmkRRpu@s_sr37w1tkX<7X4e`xv%%v?%QHw4qL65Hu*X)^xn5FGP#ub^RZO31Pf`m zcXiipj_qAI!{lb?O{*BdKpR`;(n}6+olJceTrsswO zE28xd@A+#Vw=F5oyw{=kRav9gPU-S})BVqFD3|n`8Fpoc@yQ%@UWG#|UI%J<@2ZdW zJ{Id!Xt7JKcbe>rZy)4DP! z`n0!;(cjuY^BTYX4o&Ogt?n3${@NK;J1g9E^@-H*Wyfk(p1s?bDcAqTf40z1m!F*f zUDeN~WUEDa`}9OUTh8;%)9U~EJ6rxWp7EY0UBrKNAOHV{J&zb8H(V8*KL5$R{J=7< zy+1xQER|m7v|zH4*#e$kuh@#yXFoLtJN2_B?kLi*`6X?lH+x3TFNf|{9_hRnQ&B8OqcH3x|#K~@7jaUBrf%5Ok)D3 z2}VW+20n)Tyx`=b%z_f1{KS;h6p$DfLvCtuabkL^Q+@>-R2`5414c%WP8eWh0Ldc& zJ|5UcxKa?08Hl+VJW_LV@)g4Ki*iy}kOV?9OL9_yjzIycKpt2O>BXJ!#+U|`Sy;zG~Vz;@n1uZfSBZ8b9e{5*yK>$P8#w|h?hxGU}bI=dOwM|fZI zwmkRRpu@s_sr37w1tkX<7X4e`xv%%v?%QHw4qL65Hu*X)^xn5FGP#ub^RZO31Pf`m z~&z=~+S!+ZYP$8AfBGw*fieO1=zwNtu$-*o?T8_Fg9W`z(Ie=dm-PSKj&P5mtwj9Q>B+mAxB2?>N$5 zw>z?^ZPj}|!(Wcu@3gKAiazb_V)VB*(7eWPzeCfyc&j_cqQ7=V)y@icU40@oeA%&@ zm1pnvWyRhDcNdK-ab8%&zAFi^R)VZ{?3+vjc2^4Nf+^7-N*m` zVb3GR$PHHor_X4MweMW$Xgd;7w52EV=Ef*_rnP2SeC ztJ3(K`u|iqiZ;w)I$_u*d!b>H`}`SuW6icqG@EJo_PAv54EGty2^*s{dsdYR>*{jt z+v&51C;ZuylQX|E1JfWQBLjmVLwagSP-$LCW^QU&YEf}!ejZ4eiy=3)xHvIA)hWLM z#OGtk&kIg2$}A}H$xlp4P2q!T2U1|b$jAg^0%=ADR2~bG90OPmXe1PXRQ~@D|OEZg7ixt>`QgRI8nR$u11q!Bm21W`R z#o3v83T2RxQZUpr)Z_rFVP$YFD#|b71Tq;Icz~Fj!6P*%Cto2vzbGe#7fB!_vm_@K z=6jH<3xIe#5Ho^f1jt~J01*aE5CKro@j#fYKqgn9fH{x?hc+Wf4yX=DGBARy1`9BP z+`|a+6C=p=4iX@FCPpqGsR&k}2#QYzMak~}|Njeu)q(jCW4M7*5Mw}&W(0W!Yyb-| Kj+h`CQ7HgxCU&d< literal 0 HcmV?d00001 diff --git a/experiments/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/hello_world.m b/experiments/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/hello_world.m new file mode 100755 index 00000000..4075b023 --- /dev/null +++ b/experiments/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/hello_world.m @@ -0,0 +1,7 @@ +#include "lib/std.mi" + +System.onScriptLoaded() +{ + String response; + System.messageBox("Hello World", "Hello Title", 1, response); +} \ No newline at end of file diff --git a/experiments/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/hello_world.maki b/experiments/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/hello_world.maki new file mode 100755 index 0000000000000000000000000000000000000000..96e8fa531d78ea12aa1253cc914a5f48dac93b6d GIT binary patch literal 1694 zcmZ>BXJ!#+U|>)O;zG~Vz;@n1uZfSBZ8b9e{5*yK>$P8#w|h?hxGU}bI=dOwM|fZI zwmkRRpu@s_sr37wtyWB%e4Q71?^_p{T+00USVj1;cIW5+JX?Qqo(b0a8-IQKAEG=t8i$=>p(5OG&~FURe7T2}@| zpZ0b!`db@lUgNjlp=n*b)g5EeUpu2}XN9}2K9L%}>{!jpvv>P4<@(?F&ldXW@{{ww ztNPiLY_%wFpPtBP%Xz+eT0LPsoqMF~kjKW!o*yRief9c({?3+vjc2^4Nf+^7-N*m` zVb3GR$PHHor_Xv=ae7ahHWX*k#WeY+A!*lMGnJ(S6bu;T}-?ayyNnGmBn0D}= zX5#i+fxZ({8Bg&@7u^0XGWDw2+ZV1g`0f1`1nJyt^0uB`mB#1P|EJPXv|$d@OvAUw zC4*%J<;zN8ehC9rteD^jbeHG++wrfnxb-(hjqw(^b^hIHqy{(;Oos z1A`z#dTL2fXbBPi$d~)ONuh{(m{fJ4EcG% z$wiq3B|iCyDXA%9P{#o&Fkob4f-!+KBLgar1xbzpEQgQ>vHt&uDFE?+)izC!$Y;5cr!tf$_~Ul3`LL_P0mP7&gKD%h%$s^WELwFg9BNiD7COO zvnaJ#ffpzx&k&xOmzZ0iV5(yJ)H62IVWpFJj$}i#vGC^qu zB;exe6zVPlWO6fjq~_%0D}?74<)nxr34~;p$WVwmAW{MpZa_s`a8ZywFaeNO zM@DWS$pbM4q>Lv(0Aw=QG)0KPKrVv>*nw!KgPg|%Q3DDGu#*@;fx`$2VMb6`I!J&V z&IC0MWU?YCeKROB3jj$Zy