support/testing/tests/package/test_openjdk: new test
This test is a simple "Hello, World" integration test of the OpenJDK package. It compiles the Java app on the host, then runs it on an emulated AARCH64 target and verifies "Hello, World" is printed. Signed-off-by: Adam Duskett <Aduskett@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
3641d98ec4
commit
df7bf8fb41
@ -327,6 +327,7 @@ tests.package.test_ipython.TestIPythonPy2: { extends: .runtime_test }
|
|||||||
tests.package.test_ipython.TestIPythonPy3: { extends: .runtime_test }
|
tests.package.test_ipython.TestIPythonPy3: { extends: .runtime_test }
|
||||||
tests.package.test_lua.TestLua: { extends: .runtime_test }
|
tests.package.test_lua.TestLua: { extends: .runtime_test }
|
||||||
tests.package.test_lua.TestLuajit: { extends: .runtime_test }
|
tests.package.test_lua.TestLuajit: { extends: .runtime_test }
|
||||||
|
tests.package.test_openjdk.TestOpenJdk: { extends: .runtime_test }
|
||||||
tests.package.test_perl.TestPerl: { extends: .runtime_test }
|
tests.package.test_perl.TestPerl: { extends: .runtime_test }
|
||||||
tests.package.test_perl_class_load.TestPerlClassLoad: { extends: .runtime_test }
|
tests.package.test_perl_class_load.TestPerlClassLoad: { extends: .runtime_test }
|
||||||
tests.package.test_perl_dbd_mysql.TestPerlDBDmysql: { extends: .runtime_test }
|
tests.package.test_perl_dbd_mysql.TestPerlDBDmysql: { extends: .runtime_test }
|
||||||
|
@ -1501,6 +1501,8 @@ F: package/valijson/
|
|||||||
F: package/wpa_supplicant/
|
F: package/wpa_supplicant/
|
||||||
F: package/wireless_tools/
|
F: package/wireless_tools/
|
||||||
F: package/xen/
|
F: package/xen/
|
||||||
|
F: support/testing/tests/package/br2-external/openjdk/
|
||||||
|
F: support/testing/tests/package/test_openjdk.py
|
||||||
|
|
||||||
N: Mauro Condarelli <mc5686@mclink.it>
|
N: Mauro Condarelli <mc5686@mclink.it>
|
||||||
F: package/mc/
|
F: package/mc/
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
source "$BR2_EXTERNAL_OPENJDK_PATH/package/openjdk-hello-world/Config.in"
|
@ -0,0 +1 @@
|
|||||||
|
name: OPENJDK
|
@ -0,0 +1 @@
|
|||||||
|
include $(sort $(wildcard $(BR2_EXTERNAL_OPENJDK_PATH)/package/*/*.mk))
|
@ -0,0 +1,5 @@
|
|||||||
|
config BR2_PACKAGE_OPENJDK_HELLO_WORLD
|
||||||
|
bool "openjdk hello world"
|
||||||
|
depends on BR2_PACKAGE_OPENJDK
|
||||||
|
help
|
||||||
|
Simple class for testing openjdk
|
@ -0,0 +1,7 @@
|
|||||||
|
public class HelloWorld
|
||||||
|
{
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
System.out.println("Hello, World");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# openjdk hello world
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
OPENJDK_HELLO_WORLD_DEPENDENCIES = openjdk
|
||||||
|
|
||||||
|
define OPENJDK_HELLO_WORLD_BUILD_CMDS
|
||||||
|
$(INSTALL) -D $(OPENJDK_HELLO_WORLD_PKGDIR)/HelloWorld.java $(@D)/HelloWorld.java
|
||||||
|
$(HOST_DIR)/bin/javac $(@D)/HelloWorld.java
|
||||||
|
endef
|
||||||
|
|
||||||
|
define OPENJDK_HELLO_WORLD_INSTALL_TARGET_CMDS
|
||||||
|
$(INSTALL) -D -m 755 $(@D)/HelloWorld.class $(TARGET_DIR)/usr/bin/HelloWorld.class
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(generic-package))
|
42
support/testing/tests/package/test_openjdk.py
Normal file
42
support/testing/tests/package/test_openjdk.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
import infra.basetest
|
||||||
|
|
||||||
|
|
||||||
|
class TestOpenJdk(infra.basetest.BRTest):
|
||||||
|
br2_external = [infra.filepath("tests/package/br2-external/openjdk")]
|
||||||
|
config = \
|
||||||
|
"""
|
||||||
|
BR2_aarch64=y
|
||||||
|
BR2_TOOLCHAIN_EXTERNAL=y
|
||||||
|
BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
|
||||||
|
BR2_LINUX_KERNEL=y
|
||||||
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||||
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.16.7"
|
||||||
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||||
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config"
|
||||||
|
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
|
||||||
|
BR2_TARGET_ROOTFS_CPIO=y
|
||||||
|
BR2_TARGET_ROOTFS_CPIO_GZIP=y
|
||||||
|
BR2_PACKAGE_XORG7=y
|
||||||
|
BR2_PACKAGE_OPENJDK=y
|
||||||
|
BR2_PACKAGE_OPENJDK_HELLO_WORLD=y
|
||||||
|
"""
|
||||||
|
|
||||||
|
def login(self):
|
||||||
|
img = os.path.join(self.builddir, "images", "rootfs.cpio.gz")
|
||||||
|
kern = os.path.join(self.builddir, "images", "Image")
|
||||||
|
self.emulator.boot(arch="aarch64",
|
||||||
|
kernel=kern,
|
||||||
|
kernel_cmdline=["console=ttyAMA0"],
|
||||||
|
options=["-M", "virt", "-cpu", "cortex-a57", "-m", "512M", "-initrd", img])
|
||||||
|
self.emulator.login()
|
||||||
|
|
||||||
|
def test_run(self):
|
||||||
|
self.login()
|
||||||
|
|
||||||
|
cmd = "java -cp /usr/bin HelloWorld"
|
||||||
|
output, exit_code = self.emulator.run(cmd, 120)
|
||||||
|
print(output)
|
||||||
|
self.assertEqual(exit_code, 0)
|
||||||
|
self.assertEqual(output, ["Hello, World"])
|
Loading…
Reference in New Issue
Block a user