diff --git a/DEVELOPERS b/DEVELOPERS index 0af1323340..ae698f87c5 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2944,11 +2944,14 @@ F: package/weston/ F: support/testing/tests/boot/test_grub.py F: support/testing/tests/boot/test_grub/ F: support/testing/tests/boot/test_syslinux.py +F: support/testing/tests/package/sample_nodejs_basic.js +F: support/testing/tests/package/sample_nodejs_module.js F: support/testing/tests/package/sample_python_augeas.py F: support/testing/tests/package/sample_python_flask.py F: support/testing/tests/package/sample_python_flask_expects_json.py F: support/testing/tests/package/sample_python_git.py F: support/testing/tests/package/sample_python_unittest_xml_reporting.py +F: support/testing/tests/package/test_nodejs.py F: support/testing/tests/package/test_python_augeas.py F: support/testing/tests/package/test_python_flask.py F: support/testing/tests/package/test_python_flask_expects_json.py diff --git a/support/testing/tests/package/sample_nodejs_basic.js b/support/testing/tests/package/sample_nodejs_basic.js new file mode 100644 index 0000000000..7633173c64 --- /dev/null +++ b/support/testing/tests/package/sample_nodejs_basic.js @@ -0,0 +1,3 @@ +var assert = require('assert'); +assert.strictEqual(1, 1); +console.log("Hello World"); diff --git a/support/testing/tests/package/sample_nodejs_module.js b/support/testing/tests/package/sample_nodejs_module.js new file mode 100644 index 0000000000..57aee73408 --- /dev/null +++ b/support/testing/tests/package/sample_nodejs_module.js @@ -0,0 +1,7 @@ +var assert = require('assert'); +var lodash = require('lodash'); +result = lodash.chunk(['a', 'b', 'c', 'd'], 2); +expected = [ [ 'a', 'b' ], [ 'c', 'd' ] ]; +assert.deepStrictEqual(result, expected) + + diff --git a/support/testing/tests/package/test_nodejs.py b/support/testing/tests/package/test_nodejs.py new file mode 100644 index 0000000000..9463c76b72 --- /dev/null +++ b/support/testing/tests/package/test_nodejs.py @@ -0,0 +1,52 @@ +import os + +import infra.basetest + + +class TestNodeJSBasic(infra.basetest.BRTest): + config = \ + """ + BR2_arm=y + BR2_cortex_a9=y + BR2_ARM_ENABLE_VFP=y + BR2_TOOLCHAIN_EXTERNAL=y + BR2_PACKAGE_NODEJS=y + BR2_TARGET_ROOTFS_CPIO=y + # BR2_TARGET_ROOTFS_TAR is not set + BR2_ROOTFS_POST_BUILD_SCRIPT="{}" + BR2_ROOTFS_POST_SCRIPT_ARGS="{}" + """.format(infra.filepath("tests/package/copy-sample-script-to-target.sh"), + infra.filepath("tests/package/sample_nodejs_basic.js")) + + def test_run(self): + cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") + self.emulator.boot(arch="armv7", + kernel="builtin", + options=["-initrd", cpio_file]) + self.emulator.login() + self.assertRunOk("node sample_nodejs_basic.js") + + +class TestNodeJSModule(infra.basetest.BRTest): + config = \ + """ + BR2_arm=y + BR2_cortex_a9=y + BR2_ARM_ENABLE_VFP=y + BR2_TOOLCHAIN_EXTERNAL=y + BR2_PACKAGE_NODEJS=y + BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL="lodash" + BR2_TARGET_ROOTFS_CPIO=y + # BR2_TARGET_ROOTFS_TAR is not set + BR2_ROOTFS_POST_BUILD_SCRIPT="{}" + BR2_ROOTFS_POST_SCRIPT_ARGS="{}" + """.format(infra.filepath("tests/package/copy-sample-script-to-target.sh"), + infra.filepath("tests/package/sample_nodejs_module.js")) + + def test_run(self): + cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") + self.emulator.boot(arch="armv7", + kernel="builtin", + options=["-initrd", cpio_file]) + self.emulator.login() + self.assertRunOk("node sample_nodejs_module.js")