Challenge Overview
For the Hercules client, we are going to be doing some work that involves a couple of their drawing technologies, name "pxCore" and "pxScene". The links below offer a lot more details on these particular technologies. pxCore is a C++ graphics library that is used on a wide variety of embedded devices that the client distributes. pxscene is a wrapper application around pxCore that exposes the drawing APIs to Javascript through Node and V8.
The client is concerned that Node and V8 are too "heavy" for their low-powered embedded devices. To this end, we have been working at integrating duktape (http://duktape.org/) into pxScene, replacing Node. This has gone well.Currently, our test coverage of the new duktape code is non-existent, so we need to add proper unit tests for this new duktape functionality. This challenge will implement those unit tests.
Pxscene
Pxscene is a platform independent drawing platform / app that will be used on a wide variety of embedded devices for the Hercules client. You can find more information here, and you can download the app to be used for testing: http://www.pxscene.org/
The code for pxCore / pxscene is available in Github here:
Build instructions can be found here: https://github.com/pxscene/pxCore/blob/master/examples/pxScene2d/README.md
Step-by-step instructions to build the existing duktape integration on Ubuntu 16.04 can be found here:
https://github.com/topcoderinc/pxCore/blob/duktape_proof_of_concept/step-by-step-duktape-linux-build.md���
-DUSE_DUKTAPE is deprecated (not used).... Instead, we added two new cmake switches SUPPORT_NODE and SUPPORT_DUKTAPE. Both are enabled by default. The app now looks for a file called .sparkUseDuktape in the home directory to enable duktape.
You can validate the engine used through the "about.js" example (just type "about.js" in the address bar of pxScene). It will list the engine - either Node or duktape.
Requirements
The duktape integration is working well and is being tested by the client. Currently, we have little nto no test coverage of the duktape integration. You can see that here:
https://codecov.io/gh/pxscene/pxCore/tree/_duktape2/src/rtScriptDuk
We want to include new test or tests that provide proper coverage of these files - at least 80% coverage, and full coverage of all important functionality.
Please ensure that your new and updated tests match the existing test structure and code format.
Documentation
Please ensure that you provide updated coverage documentation and documentation on how to generate the coverage report for validation.
Deliverables
The patch file deliverable will be patch files against the "_duktape2" branch of this repo: https://github.com/pxscene/pxCore. You can find the branch here: https://github.com/pxscene/pxCore/tree/_duktape2
Documentation
In addition to your patch file, please include documentation on how to deploy the patch files and validate the changes.
Review Goals
For review, we want reviewers to explicitly check that the patch files are the bare minimum possible. This means that the patch files should be as lean as possible. We don't want changes for:
* Whitespace
* Brackets or tab alignment, or any other "structural" change
* Anything not related to the explicit requirements of a given patch
The client goes line-by-line to review each and every patch, so anything that's not quite right in a given patch raises all sorts of questions.
Video
No video is required for this challenge, but you must submit clear validation documentation, and coverage documents