Yeah. I noticed your commit. I’ll try to be more careful in the future.
> On Nov 6, 2017, at 6:57 PM, Alex Harui <aha...@adobe.com.INVALID> wrote: > > Please be aware that in Ant, there are two build paths, one if you have > AIR_HOME pointing to an AIR SDK and another for JS Only. If you make > changes to the builds, you might need to test the build both with and > without AIR_HOME/PLAYERLGLOBAL_HOME. And look for failures from the CI > after you commit something. The apacheflexbuild server is slow so it can > take hours for the build with your changes to get through the queue. > > Thanks, > -Alex > > On 11/6/17, 1:42 AM, "Harbs" <harbs.li...@gmail.com > <mailto:harbs.li...@gmail.com>> wrote: > >> Well, Josh reversed the order of the arguments, and I think that makes >> sense. The string is optional and it was at the beginning. It’s now the >> optional last argument and all the arguments are as typed as they can be. >> (compare arguments are of type Object.) >> >> I just merged the testing branch into develop, so tests can be added on >> the develop branch. The js testing is not functional yet, but the tests >> can be written in a platform agnostic way. >> >> More to come… >> >> Harbs >> >>> On Nov 6, 2017, at 12:51 AM, Piotr Zarzycki <piotrzarzyck...@gmail.com> >>> wrote: >>> >>> My guess is that, cause this approach emulates JUnit implementation. >>> Let's >>> say assertFalse - you can pass there one argument Boolean or two >>> arguments >>> Boolean and message. In AS3 there is no ability to create two functions >>> with the same name. But in Java method overloading probably exists, so >>> in >>> JUnit there is probably: >>> >>> assertFalse(Boolean param); >>> assertFalse(Boolean param, String); >>> >>> Summarize everything - I see only some AS3 language restriction as an >>> reason. >>> >>> Piotr >>> >>> >>> >>> 2017-11-05 23:14 GMT+01:00 Harbs <harbs.li...@gmail.com>: >>> >>>> BTW: >>>> >>>> Was there a good reason FlexUnit uses the spread operator for assert >>>> arguments instead of typed arguments? >>>> >>>>> On Nov 5, 2017, at 11:36 PM, Harbs <harbs.li...@gmail.com> wrote: >>>>> >>>>> Some progress on the unit tests: >>>>> >>>>> I got the Core tests to run on the swf side when doing a full build. >>>>> In >>>> order to do that I needed to move the running of the tests until after >>>> Basic finished building so the test app could be built. >>>>> >>>>> We’re going to need to do something similar with the Maven build. >>>>> >>>>> The Testing project is compiling and is usable (on a basic level) too. >>>> Tests should run with both a SWF and JS target. The SWF target uses >>>> FlexUnit, while the JS target uses Josh’s implementation. >>>>> >>>>> I also migrated the Core tests to use the new project and that is >>>> building as well. >>>>> >>>>> I still need to add the bits that Greg wrote and wire up some JS >>>>> tests. >>>>> >>>>> Hopefully I’ll make some more progress tomorrow. >>>>> >>>>> Harbs >>>>> >>>>>> On Nov 5, 2017, at 8:17 AM, Alex Harui <aha...@adobe.com.INVALID> >>>> wrote: >>>>>> >>>>>> Those warnings do not seem to affect the success of the tests on SWF >>>>>> for >>>>>> me. >>>>>> >>>>>> IMO, the big challenge is in capturing test results so it can be >>>> reported >>>>>> in a CI dashboard. Having a GUI display results in Flash or in a >>>> browser >>>>>> is a great first step, but I believe going from there to getting >>>> Selenium >>>>>> to report individual test failures may be trickier. >>>>>> >>>>>> Peter tried to write up Mustella a long time ago. It might need >>>> updating. >>>>>> See: >>>>>> >>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcwiki >>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcwiki> >>>>>> .apache.org >>>>>> <http://apache.org/>%2Fconfluence%2Fdisplay%2FFLEX%2FMustella%2BOverview&data=0 >>>>>> 2%7C01%7C%7Ce5b49c8e3cb349c5ca7508d524faa9d3%7Cfa7b1b5a7b34438794aed2c >>>>>> 178decee1%7C0%7C0%7C636455581363121312&sdata=IN6067QM%2B7vPr4WAwrYXNjR >>>>>> gNhAL6EdInCJUhfGyLjI%3D&reserved=0 >>>>>> >>>>>> The advantage of declarative testing languages is that you get to >>>>>> constrain the kinds of things that a test can do, and abstract when >>>>>> the >>>>>> test harness does it. It is much harder to interrupt sequential >>>>>> lines >>>> of >>>>>> ActionScript/JavaScript. >>>>>> >>>>>> HTH, >>>>>> -Alex >>>>>> >>>>>> On 11/4/17, 3:13 PM, "Harbs" <harbs.li...@gmail.com >>>>>> <mailto:harbs.li...@gmail.com>> wrote: >>>>>> >>>>>>> It looks like FlexUnit is currently broken. >>>>>>> >>>>>>> I’m getting the following output when trying to run the FlexUnit >>>>>>> tests >>>> on >>>>>>> Core and Basic: >>>>>>> >>>>>>> [mxmlc] >>>>>>> /Users/harbs/Documents/ApacheRoyale/flex-flexunit/ >>>> FlexUnit4/target/flexuni >>>>>>> t-4.3.0-20140410-as3_4.12.0.swc Warning: The definition >>>>>>> mx.utils.ObjectUtil depended on by org.flexunit.runner.Description >>>>>>> in >>>> the >>>>>>> SWC >>>>>>> /Users/harbs/Documents/ApacheRoyale/flex-flexunit/ >>>> FlexUnit4/target/flexuni >>>>>>> t-4.3.0-20140410-as3_4.12.0.swc could not be found >>>>>>> [mxmlc] >>>>>>> [mxmlc] >>>>>>> [mxmlc] >>>>>>> /Users/harbs/Documents/ApacheRoyale/flex-flexunit/ >>>> FlexUnit4/target/flexuni >>>>>>> t-4.3.0-20140410-as3_4.12.0.swc Warning: The definition >>>>>>> mx.utils.StringUtil depended on by >>>>>>> flexunit.framework.AsyncTestHelper >>>> in >>>>>>> the SWC >>>>>>> /Users/harbs/Documents/ApacheRoyale/flex-flexunit/ >>>> FlexUnit4/target/flexuni >>>>>>> t-4.3.0-20140410-as3_4.12.0.swc could not be found >>>>>>> >>>>>>> Has anyone looked at this yet? >>>>>>> >>>>>>> Harbs >>>>>>> >>>>>>>> On Nov 4, 2017, at 10:45 PM, Harbs <harbs.li...@gmail.com >>>>>>>> <mailto:harbs.li...@gmail.com>> wrote: >>>>>>>> >>>>>>>> Thanks! That looks very useful. >>>>>>>> >>>>>>>> I started work on a feature/testing branch. I’ll try to merge what >>>>>>>> you >>>>>>>> did into what Josh did. I’m going to try to get the existing Core >>>> and/or >>>>>>>> Basic tests working in both swf and node js output tomorrow. We’ll >>>>>>>> see >>>>>>>> how well I do… ;-) >>>>>>>> >>>>>>>> We might need different configs for different testing environments, >>>> but >>>>>>>> I’ll see if we can keep the divergence of the environs is minimal >>>>>>>> as >>>>>>>> possible. >>>>>>>> >>>>>>>> Once I get the basics worked out, I’ll likely have an idea what >>>>>>>> others >>>>>>>> can help with. Let’s see if we can whip the Royale tests into >>>>>>>> shape. >>>> :-) >>>>>>>> >>>>>>>> Harbs >>>>>>>> >>>>>>>>> On Nov 4, 2017, at 10:30 PM, Greg Dove <greg.d...@gmail.com >>>>>>>>> <mailto:greg.d...@gmail.com>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Harbs, I don't know if it still works since changes to Royale, >>>>>>>>> but I >>>>>>>>> had >>>>>>>>> something rudimentary for cross-target unit testing quite shortly >>>> after >>>>>>>>> working on the reflection support last year, in fact that was my >>>>>>>>> primary >>>>>>>>> reason for choosing to focus on reflection at the time. >>>>>>>>> >>>>>>>>> It was visual output only (i.e. just to look at the test results >>>>>>>>> output in >>>>>>>>> the browser) and the goal was to get some compatibility with >>>>>>>>> flexunit >>>>>>>>> (so >>>>>>>>> that the same swf-based flexunit tests that were running in the >>>>>>>>> build >>>>>>>>> -e..g >>>>>>>>> BinaryData tests- could be run visually side by side between swf >>>>>>>>> and >>>>>>>>> js). >>>>>>>>> I also added a new TestVariance metadata to account for known >>>>>>>>> (expected?) >>>>>>>>> variation between swf and js. This was needed to cover (for >>>>>>>>> example) >>>>>>>>> things >>>>>>>>> like testing Reflection classes themselves, where the results can >>>>>>>>> be >>>>>>>>> different between the targets based on the 'native' base classes >>>> (e..g >>>>>>>>> EventDispatcher inheritance chain). >>>>>>>>> >>>>>>>>> Some of that code might also be useful to harvest for what you are >>>>>>>>> doing, >>>>>>>>> I'm not sure... >>>>>>>>> >>>>>>>>> It's here: >>>>>>>>> >>>>>>>>> https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=> >>>> https%3A%2F%2Fgithub. >>>>>>>>> com%2Fapache%2Froyale-asjs%2Ftree%2Fdevelop% >>>> 2Fmanualtests%2FUnitTests&da >>>>>>>>> ta=02%7C01%7C%7C67a58a332b6942a2022108d523d1 >>>> 5d35%7Cfa7b1b5a7b34438794aed >>>>>>>>> 2c178decee1%7C0%7C0%7C636454304479378270&sdata= >>>> DX9gXiLqUoFQizp6xrakUwxjl >>>>>>>>> cdyHMlZO5mOzDSiKDQ%3D&reserved=0 >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sun, Nov 5, 2017 at 7:30 AM, Harbs <harbs.li...@gmail.com >>>>>>>>> <mailto:harbs.li...@gmail.com>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Awesome! >>>>>>>>>> >>>>>>>>>> I assume that this means I can code the code to the Royale repo >>>> under >>>>>>>>>> Apache 2. Right? >>>>>>>>>> >>>>>>>>>> Harbs >>>>>>>>>> >>>>>>>>>>> On Nov 3, 2017, at 5:37 PM, Josh Tynjala >>>>>>>>>>> <joshtynj...@apache.org <mailto:joshtynj...@apache.org>> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Please feel free to use my test runner. I'm happy to commit it >>>>>>>>>>> somewhere >>>>>>>>>> to make it official Apache code, if necessary. >>>>>>>>>>> >>>>>>>>>>> - Josh >>>>>>>>>>> >>>>>>>>>>> On 2017-11-03 04:19, Harbs <harbs.li...@gmail.com >>>>>>>>>>> <mailto:harbs.li...@gmail.com>> wrote: >>>>>>>>>>>> One topic which keeps coming up is better test coverage for >>>> Royale. >>>>>>>>>>>> >>>>>>>>>>>> I think this is becoming a critical issue for a few reasons: >>>>>>>>>>>> 1. As we get close to version 1.0 it’s necessary to have good >>>> test >>>>>>>>>> coverage for confidence of quality and confidence that we don’t >>>>>>>>>> introduce >>>>>>>>>> recessive bugs. >>>>>>>>>>>> 2. It’s really hard to accept Github pull requests without >>>>>>>>>>>> examining >>>>>>>>>> the code VERY well that it does not introduce recessive bugs. CI >>>>>>>>>> which runs >>>>>>>>>> automated tests could give a preliminary test on pull requests to >>>>>>>>>> ensure >>>>>>>>>> that they don’t break anything. If the pull requests do break >>>>>>>>>> something, >>>>>>>>>> it allows the requester to fix the problem with confidence >>>>>>>>>> without >>>>>>>>>> taking >>>>>>>>>> others’ time. >>>>>>>>>>>> >>>>>>>>>>>> I think we need to break up testing into pieces and figure out >>>>>>>>>>>> a >>>>>>>>>> strategy to implement automated tests in a way that they are >>>>>>>>>> maintainable. >>>>>>>>>>>> >>>>>>>>>>>> Some points: >>>>>>>>>>>> 1. I think integration into something like Travis would be very >>>>>>>>>>>> helpful. >>>>>>>>>>>> 2. I think there’s a Jenkins plugin for building pull >>>>>>>>>>>> requests. >>>>>>>>>>>> Not >>>>>>>>>> sure how useful it is.[1] >>>>>>>>>>>> 3. Josh has created a Node.js-compatible test-runner >>>>>>>>>>>> architecture >>>>>>>>>>>> which >>>>>>>>>> could be useful for unit tests on parts of the framework which >>>>>>>>>> don’t rely >>>>>>>>>> on browser features. (i.e. models and the like) He mentioned the >>>>>>>>>> possibility of donating it, and I think that would be a very >>>>>>>>>> useful >>>>>>>>>> feature. >>>>>>>>>>>> 4. For UI and integration tests, there seem to be some pretty >>>>>>>>>>>> cool >>>>>>>>>> integrations using Selenium.[2][3] >>>>>>>>>>>> 5. I think the main testing effort needs to be using JS and >>>>>>>>>>>> something >>>>>>>>>> like Josh’s testing framework for non-UI pieces and some >>>> easy-to-use >>>>>>>>>> Selenium integration for visual pieces and integration tests. >>>>>>>>>>>> 6. We probably also want some API endpoints we can test off of >>>>>>>>>>>> for >>>>>>>>>> integration testing. >>>>>>>>>>>> >>>>>>>>>>>> I’m willing to invest time into this. >>>>>>>>>>>> >>>>>>>>>>>> It’s going to be a lot of work building out the tests and I >>>> think >>>>>>>>>>>> we >>>>>>>>>> need a plan for that. My thoughts: >>>>>>>>>>>> >>>>>>>>>>>> 1. Step one is to make it easy to write meaningful automated >>>>>>>>>>>> tests >>>>>>>>>>>> and >>>>>>>>>> establish a clear pattern. >>>>>>>>>>>> 2. Step two is to start writing tests starting from the >>>>>>>>>> most-used/easiest to beak pieces and work out from there. >>>>>>>>>>>> 3. Once the pattern is established, any new pieces MUST have >>>> testing >>>>>>>>>> coverage. >>>>>>>>>>>> 4. When fixing bugs, attention should be paid to adding testing >>>> for >>>>>>>>>> that component. >>>>>>>>>>>> 5. When a pull request comes in on a piece which does not have >>>> unit >>>>>>>>>> test, a test must be written before accepting the pull request. >>>>>>>>>> The >>>>>>>>>> test >>>>>>>>>> does not need to be written by the requester. Before examining >>>>>>>>>> the >>>>>>>>>> request, >>>>>>>>>> the test should be written to pass for expected behavior and fail >>>> for >>>>>>>>>> the >>>>>>>>>> bug that the pull request is attempting to fix (assuming the pull >>>>>>>>>> request >>>>>>>>>> is to fix a bug). >>>>>>>>>>>> >>>>>>>>>>>> Thoughts? >>>>>>>>>>>> Harbs >>>>>>>>>>>> >>>>>>>>>>>> P.S. I’m thinking of coming to the US in late December/early >>>>>>>>>>>> January. >>>>>>>>>> I would be interested in getting together for a hacking session >>>>>>>>>> with >>>>>>>>>> folks >>>>>>>>>> who are available. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> [1]https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=> >>>> https%3A%2F%2Fw >>>>>>>>>>>> iki.jenkins.io%2Fdisplay%2FJENKINS%2FGitHub%2Bpull& >>>> data=02%7C01%7C%7C >>>>>>>>>>>> 67a58a332b6942a2022108d523d15d35%7Cfa7b1b5a7b34438794aed2c178de >>>> cee1%7 >>>>>>>>>>>> >>>>>>>>>>>> C0%7C0%7C636454304479378270&sdata=cnyBtnVycpg3Aa7Hfel3dkAlez2m7M >>>> 0uSl3 >>>>>>>>>>>> f0ezbSZY%3D&reserved=0+ >>>>>>>>>> request+builder+plugin >>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=> >>>> https%3A%2F%2Fwiki. >>>>>>>>>> jenkins.io%2F&data=02%7C01%7C%7C67a58a332b6942a2022108d523d1 >>>> 5d35%7Cfa7b >>>>>>>>>> 1b5a7b34438794aed2c178decee1%7C0%7C0%7C636454304479378270& >>>> sdata=eqe6ec% >>>>>>>>>> 2F%2FIatSxdUuHU0Lo8o3WxySBkdSvUNa6i9NQ%2FI%3D&reserved=0 >>>>>>>>>> display/JENKINS/GitHub+pull+request+builder+plugin> >>>>>>>>>>>> >>>>>>>>>>>> [2]https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=> >>>> https%3A%2F%2Fd >>>>>>>>>>>> ocs.travis-ci.com >>>>>>>>>>>> <http://ocs.travis-ci.com/>%2Fuser%2Fgui-and-headless-browsers% >>>> 2F&data=02%7C01% >>>>>>>>>>>> 7C%7C67a58a332b6942a2022108d523d15d35% >>>> 7Cfa7b1b5a7b34438794aed2c178dec >>>>>>>>>>>> ee1%7C0%7C0%7C636454304479378270&sdata=zK% >>>> 2FdOBmWJUsF7SylIQtMQQpAeOhw >>>>>>>>>>>> 03sjOytutB4rGCY%3D&reserved=0 < >>>>>>>>>> >>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=> >>>> https%3A%2F%2Fdocs.t >>>>>>>>>> ravis-ci.com >>>>>>>>>> <http://ravis-ci.com/>%2Fuser%2Fgui-and-headless-browsers%2F&data=02% >>>> 7C01%7C%7C67 >>>>>>>>>> a58a332b6942a2022108d523d15d35%7Cfa7b1b5a7b34438794aed2c178de >>>> cee1%7C0%7 >>>>>>>>>> C0%7C636454304479378270&sdata=zK%2FdOBmWJUsF7SylIQtMQQpAeOhw03s >>>> jOytutB4 >>>>>>>>>> rGCY%3D&reserved=0> >>>>>>>>>>>> >>>>>>>>>>>> [3]https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=> >>>> https%3A%2F%2Fs >>>>>>>>>>>> aucelabs.com >>>>>>>>>>>> <http://aucelabs.com/>%2Fproducts%2Fintegrations&data=02%7C01% >>>> 7C%7C67a58a332b69 >>>>>>>>>>>> 42a2022108d523d15d35%7Cfa7b1b5a7b34438794aed2c178de >>>> cee1%7C0%7C0%7C636 >>>>>>>>>>>> 454304479378270&sdata=kwfto9xiP0ygeBrEqGz9ucdC% >>>> 2FNXSRVOQho9qUW1mqdw%3 >>>>>>>>>>>> D&reserved=0 >>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=> >>>> https%3A%2F%2Fsau >>>>>>>>>>>> celabs.com >>>>>>>>>>>> <http://celabs.com/>%2F&data=02%7C01%7C%7C67a58a332b6942a2022108d523d1 >>>> 5d35%7Cfa >>>>>>>>>>>> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636454304479378270& >>>> sdata=xpG >>>>>>>>>>>> G85mRtcFwwG7nbRfT7oLMPm4VPeHxe4trkG1wrAw%3D&reserved=0 >>>>>>>>>> products/integrations> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>>> >>> >>> >>> -- >>> >>> Piotr Zarzycki >>> >>> Patreon: >>> *https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat> >>> reon.com >>> <http://reon.com/>%2Fpiotrzarzycki&data=02%7C01%7C%7Ce5b49c8e3cb349c5ca7508d524faa9 >>> d3%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636455581363121312&sdata= >>> QBPbqXZLLgir1Cf93t%2BlEadVLXo3eq83ifD4wjwBYAs%3D&reserved=0 >>> >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat> >>> reon.com >>> <http://reon.com/>%2Fpiotrzarzycki&data=02%7C01%7C%7Ce5b49c8e3cb349c5ca7508d524faa9 >>> d3%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636455581363121312&sdata= >>> QBPbqXZLLgir1Cf93t%2BlEadVLXo3eq83ifD4wjwBYAs%3D&reserved=0>*