Message ID | 20241022081140.1464860-1-thakur.virendra1810@gmail.com |
---|---|
State | New |
Headers | show |
Series | [master] libyaml: Add libyaml ptest | expand |
On Tue, 22 Oct 2024 at 10:13, virendra thakur via lists.openembedded.org <thakur.virendra1810=gmail.com@lists.openembedded.org> wrote: > +++ b/meta/recipes-support/libyaml/libyaml/run-ptest > @@ -0,0 +1,28 @@ > +#!/bin/sh > +for testlist in test-version test-reader run-emitter run-dumper run-parser run-scanner run-loader; do > + case ${testlist} in > + test-version|test-reader) > + outputrun=$(./$testlist) > + if ! echo ${outputrun}| grep -q "FAILURE" > + then > + echo "PASS: ${testlist}" > + else > + echo "FAIL : ${testlist}" > + exit 1 > + fi > + ;; > + esac > + case ${testlist} in > + run-emitter|run-dumper|run-parser|run-scanner|run-loader) > + outputrun=$(./$testlist example.yaml) > + echo $outputrun > + if ! echo ${outputrun}| grep "FAILURE ([1-50]" > + then > + echo "PASS: ${testlist}" > + else > + echo "FAIL : ${testlist}" > + exit 1 > + fi > + ;; > + esac > +done I'd like to better understand what is happening here. Why are some items in the test suite run without an argument, and other items with example.yaml that we created ourselves (apparently, from items in examples/)? How does the test suite work upstream and why can't we simply use that? > SRC_URI[md5sum] = "bb15429d8fb787e7d3f1c83ae129a999" > SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" > +SRC_URI[run-ptest.md5sum] = "040b47d9b00d2ddbc707792ff6626243" > +SRC_URI[run-ptest.sha256sum] = "71030494ab116f1c31bf125de9d5fbe2f01aacf4daada36b44202be135a80964" > +SRC_URI[example.yaml.md5sum] = "d7f8a342650b153d219431633b0c383b" > +SRC_URI[example.yaml.sha256sum] = "d7c50b29716fcc7445e181c7d7043d70f8e58096793dc1f351c8e7f41034f813" This is not necessary. Integrity check for files in the layer tree is ensured through git commit id (of the layer) being a checksum of all the files. Alex
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index 4a48188562..cd9fae3e45 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -48,6 +48,7 @@ PTESTS_FAST = "\ libxml-simple-perl \ libxml2 \ libxmlb \ + libyaml \ logrotate \ lua \ lzo \ diff --git a/meta/recipes-support/libyaml/libyaml/example.yaml b/meta/recipes-support/libyaml/libyaml/example.yaml new file mode 100644 index 0000000000..107b2b1204 --- /dev/null +++ b/meta/recipes-support/libyaml/libyaml/example.yaml @@ -0,0 +1,45 @@ +# anchors yaml +base: &base + name: Everyone has same name + +foo: &foo + <<: *base + age: 10 + +bar: &bar + <<: *base + age: 20 +# global tag example +%TAG ! tag:clarkevans.com,2002: +--- !shape + # Use the ! handle for presenting + # tag:clarkevans.com,2002:circle +- !circle + center: &ORIGIN {x: 73, y: 129} + radius: 7 +- !line + start: *ORIGIN + finish: { x: 89, y: 102 } +- !label + start: *ORIGIN + color: 0xFFEEBB + text: Pretty vector drawing. +# array example +- member +- member2 +# numbers example +--- +string: "Hello" +integer: 123 +float: 12.345 +boolean: No +# strings example +message: "YAML & JSON" +# mapping example +person: + name: "ramesh" + surname: "sharma" + age: 23 +#json example +--- +{"key": ["value", 3]} diff --git a/meta/recipes-support/libyaml/libyaml/run-ptest b/meta/recipes-support/libyaml/libyaml/run-ptest new file mode 100644 index 0000000000..794b24c6ba --- /dev/null +++ b/meta/recipes-support/libyaml/libyaml/run-ptest @@ -0,0 +1,28 @@ +#!/bin/sh +for testlist in test-version test-reader run-emitter run-dumper run-parser run-scanner run-loader; do + case ${testlist} in + test-version|test-reader) + outputrun=$(./$testlist) + if ! echo ${outputrun}| grep -q "FAILURE" + then + echo "PASS: ${testlist}" + else + echo "FAIL : ${testlist}" + exit 1 + fi + ;; + esac + case ${testlist} in + run-emitter|run-dumper|run-parser|run-scanner|run-loader) + outputrun=$(./$testlist example.yaml) + echo $outputrun + if ! echo ${outputrun}| grep "FAILURE ([1-50]" + then + echo "PASS: ${testlist}" + else + echo "FAIL : ${testlist}" + exit 1 + fi + ;; + esac +done diff --git a/meta/recipes-support/libyaml/libyaml_0.2.5.bb b/meta/recipes-support/libyaml/libyaml_0.2.5.bb index aa7fc5e914..7b108b8548 100644 --- a/meta/recipes-support/libyaml/libyaml_0.2.5.bb +++ b/meta/recipes-support/libyaml/libyaml_0.2.5.bb @@ -7,13 +7,34 @@ SECTION = "libs/devel" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://License;md5=7bbd28caa69f81f5cd5f48647236663d" -SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz" +SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz \ + file://run-ptest \ + file://example.yaml \ + " SRC_URI[md5sum] = "bb15429d8fb787e7d3f1c83ae129a999" SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" +SRC_URI[run-ptest.md5sum] = "040b47d9b00d2ddbc707792ff6626243" +SRC_URI[run-ptest.sha256sum] = "71030494ab116f1c31bf125de9d5fbe2f01aacf4daada36b44202be135a80964" +SRC_URI[example.yaml.md5sum] = "d7f8a342650b153d219431633b0c383b" +SRC_URI[example.yaml.sha256sum] = "d7c50b29716fcc7445e181c7d7043d70f8e58096793dc1f351c8e7f41034f813" S = "${WORKDIR}/yaml-${PV}" -inherit autotools +inherit autotools ptest + +do_compile_ptest() { + sed -i "/\$(MAKE) \$(AM_MAKEFLAGS) check-TESTS/d" tests/Makefile + oe_runmake check +} + +do_install_ptest() { + # install the tests dir + cp -rf ${B}/tests/.libs/* ${D}${PTEST_PATH} + install -m 755 ${UNPACKDIR}/example.yaml ${D}${PTEST_PATH} + +} + +RDEPENDS:${PN}-ptest += "make bash" DISABLE_STATIC:class-nativesdk = "" DISABLE_STATIC:class-native = ""
Install libyaml test suite and run it as ptest. The run-ptest script iterates through executable files copied from the host, runs each on the target. example.yaml file created by using examples present in libyaml upstream. Reference: https://github.com/yaml/libyaml/tree/master/examples Signed-off-by: Virendra Thakur <thakur.virendra1810@gmail.com> --- .../distro/include/ptest-packagelists.inc | 1 + .../libyaml/libyaml/example.yaml | 45 +++++++++++++++++++ .../recipes-support/libyaml/libyaml/run-ptest | 28 ++++++++++++ meta/recipes-support/libyaml/libyaml_0.2.5.bb | 25 ++++++++++- 4 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-support/libyaml/libyaml/example.yaml create mode 100644 meta/recipes-support/libyaml/libyaml/run-ptest