[Fuego] [PATCH] rpm: add test cases for rpm command.

Tim Bird tbird20d at gmail.com
Tue Aug 21 03:42:31 UTC 2018


Zheng,

I applied this patch.  It looks OK from a visual inspection of the
code.  I don't have
a test system that uses RPM, so I couldn't test it very well here.
Please git pull the
latest master for fuego-core, and let me know if the test works for you.

Thanks!
 -- Tim


On Fri, Aug 10, 2018 at 3:23 AM, Zheng Ruoqin
<zhengrq.fnst at cn.fujitsu.com> wrote:
> Signed-off-by: Zheng Ruoqin <zhengrq.fnst at cn.fujitsu.com>
> ---
>  engine/tests/Functional.rpm/fuego_test.sh          |  19 ++++++++++++++++++
>  engine/tests/Functional.rpm/parser.py              |  22 +++++++++++++++++++++
>  engine/tests/Functional.rpm/rpm_test.sh            |   4 ++++
>  engine/tests/Functional.rpm/spec.json              |   6 ++++++
>  .../Functional.rpm/test-manual-1.2.3.noarch.rpm    | Bin 0 -> 3293 bytes
>  engine/tests/Functional.rpm/tests/rpm_01.sh        |  13 ++++++++++++
>  engine/tests/Functional.rpm/tests/rpm_02.sh        |  21 ++++++++++++++++++++
>  engine/tests/Functional.rpm/tests/rpm_03.sh        |  14 +++++++++++++
>  8 files changed, 99 insertions(+)
>  create mode 100755 engine/tests/Functional.rpm/fuego_test.sh
>  create mode 100755 engine/tests/Functional.rpm/parser.py
>  create mode 100644 engine/tests/Functional.rpm/rpm_test.sh
>  create mode 100644 engine/tests/Functional.rpm/spec.json
>  create mode 100644 engine/tests/Functional.rpm/test-manual-1.2.3.noarch.rpm
>  create mode 100644 engine/tests/Functional.rpm/tests/rpm_01.sh
>  create mode 100644 engine/tests/Functional.rpm/tests/rpm_02.sh
>  create mode 100644 engine/tests/Functional.rpm/tests/rpm_03.sh
>
> diff --git a/engine/tests/Functional.rpm/fuego_test.sh b/engine/tests/Functional.rpm/fuego_test.sh
> new file mode 100755
> index 0000000..d1fd260
> --- /dev/null
> +++ b/engine/tests/Functional.rpm/fuego_test.sh
> @@ -0,0 +1,19 @@
> +function test_pre_check {
> +    is_on_target_path rpm PROGRAM_RPM
> +    assert_define PROGRAM_RPM
> +}
> +
> +function test_deploy {
> +    put $TEST_HOME/rpm_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
> +    put $TEST_HOME/test-manual-1.2.3.noarch.rpm $BOARD_TESTDIR/fuego.$TESTDIR/
> +    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
> +}
> +
> +function test_run {
> +    report "cd $BOARD_TESTDIR/fuego.$TESTDIR; \
> +        sh -v rpm_test.sh"
> +}
> +
> +function test_processing {
> +    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
> +}
> diff --git a/engine/tests/Functional.rpm/parser.py b/engine/tests/Functional.rpm/parser.py
> new file mode 100755
> index 0000000..d85abd7
> --- /dev/null
> +++ b/engine/tests/Functional.rpm/parser.py
> @@ -0,0 +1,22 @@
> +#!/usr/bin/python
> +# See common.py for description of command-line arguments
> +
> +import os, sys, collections
> +
> +sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
> +import common as plib
> +
> +measurements = {}
> +measurements = collections.OrderedDict()
> +
> +regex_string = '^ -> (.*): TEST-(.*)$'
> +matches = plib.parse_log(regex_string)
> +
> +if matches:
> +    for m in matches:
> +        measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL'
> +
> +# split the output for each testcase
> +plib.split_output_per_testcase(regex_string, measurements)
> +
> +sys.exit(plib.process(measurements))
> diff --git a/engine/tests/Functional.rpm/rpm_test.sh b/engine/tests/Functional.rpm/rpm_test.sh
> new file mode 100644
> index 0000000..dd5ce37
> --- /dev/null
> +++ b/engine/tests/Functional.rpm/rpm_test.sh
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +for i in tests/*.sh; do
> +    sh $i
> +done
> diff --git a/engine/tests/Functional.rpm/spec.json b/engine/tests/Functional.rpm/spec.json
> new file mode 100644
> index 0000000..3f04dc9
> --- /dev/null
> +++ b/engine/tests/Functional.rpm/spec.json
> @@ -0,0 +1,6 @@
> +{
> +    "testName": "Functional.rpm",
> +    "specs": {
> +        "default": {}
> +    }
> +}
> diff --git a/engine/tests/Functional.rpm/test-manual-1.2.3.noarch.rpm b/engine/tests/Functional.rpm/test-manual-1.2.3.noarch.rpm
> new file mode 100644
> index 0000000000000000000000000000000000000000..d2e681cda59011f78fe3d8015c0693e185bbe7bf
> GIT binary patch
> literal 3293
> zcmeH}U5p!7702(|UPw%%ZrhEhpnzKfP35fZ8ISF8Af)#A+g^{?Ua#$KK^c3-AG at B9
> z^^Ct3Rb<0bC{>ey3Q7UBso)_Jpi&^B-%ZsPcnq`;sA(S%MGB~CsZ=3^0?RqxyHSD!
> zPl%^p>-c|vbI!eU?$O*kbLod~U$B$^S)2a%nU4SX;uO91K|<^|L;rJN&?l$BW(b-3
> z5M>Zj2Hpeuf$ctlvG$A5cYqxQLw*Ys$8Uncc>6n`=zkDw>hRXq7AX495Mnd#BSi<f
> z!A5SJwk;eua{aWO-2MQuIfxA+oV#ZpeYoU3cP#yywvU`Xdolm!i9ck|o_YK`A35{F
> zFTcI<{ZH>Eryu;T=hQ2YJwm=Q_0F#RYdy!Z at 27V*f-J8{vR at 7d_#hu-WIr47honZm
> z5eWD>PLV at lg=b_2k|1Q)AMd*Ll<jL at +T48p+3#gtvV8z~T?dXy9U$G)(1&%r-`=ml
> z|E~g9?Mpu))A;-y27_HO*}}*&*e)<^u<xdvpvbmup6pB5r?wwa{u3zj6O{i<`8mqC
> zZ+C<LSClVNeueVeps<f^7>D~D_chM<7s~H$`|X$m`v1D^x8q(y{u?OFZ^zt`FH`@=
> zDgT4=XDI)Za%7twc!q%4Q=o7pI`9kvwJ%bJxhK3#8S8=ZM?f(i&oRi&-ldFrA)la(
> z=NiW2Ife1pQ~znom^a2hMtK$#a<J3-IrakM_&2Hl!=M;X>*Lr@<8j at ven%1%;wS6E
> z`=u!3eUQ_jFy3(s<tp{NKyiEx6#e at s-wlfMaiBQ<^VEMQ<u6didC*@6h5Q{yL2*7A
> z6nT at fLis+*P0Gh9V;wR6BxMT}@Baf(oWD=`CzRn_o#gur<stQ-r#zzkI^~BbU!;t6
> z$NAp_#e8vIWPGlWAE$g7Ss-)RqVZ%p?<yn<u0lDQOAD at SyylALL?JtIJC~H6+0nIw
> zu3}-{74UGLuxo!*QH0*uu<md=)rDjynuwdV2w#jwg!Xu_v>q*pQoc|$O3_9l+UnJ+
> zF?JyuV7<+>IM54PxH=zPOwCtW_fVGC(p7gPrpBFWDv&dqQhYwtWQO5NIUi4{m7w43
> zuBRA2(bW98YK5;9hq}1rudSrZVmj0sjy1QWt!4Pma8Me>^YxKhaO%nBoETs1roAE)
> zN{oz<u-0sb-9}9?+*~Z1Q%BWyVX?Bx4TTmbRJ?M(80TxDpticg#p_y369+ja?29`i
> zndM4rXx1~_LaV_jv0A>APxzH2FIKB%#!R;7J9?(Z3JFb7CAE?e`l7t*9fq5HMP0ON
> z;Z~&7t=2}mv*lH#X3D3owud9DnJG521I=5Mr4`N1iLtWO6PR3C8a0=Ml|;7ETNL_{
> zVZNGim$gwKSu)C at QItvKq6w!_PG>XaG1Dr=I`cV5$r9Gtd_0~M*4Cl;nQ%4D1~S=v
> zM)J4)<8D+auk-bi?pAXO-y69_pOi5orPRo&v|`>xGgj{`S*t5+!)$6fTNTA}a?CeU
> zrkL<9=sA|{B>3DydMT)8>Xx?`$Xoo%AYw-Nj9{b^oD^MNVVp`sPa4d;S(;b1#4y3F
> zD%D`XT*wWw>wG4cY-ZN{Vr^`cqej{61m$cfXo at XuiDid}4ml5%v~kZldCcPZ*nfEj
> ziKUp<oGNL3sY at 6S>+uuT$M}6L8@$Gq>6?~Ia$&TqXQ(c--?4Cy68v!L>J6#e)=kSZ
> z>B+h(bu at HBOBQk@rZ at VkqFIs!k2`5wmT}PQW!R9%2S3Jpbqd{%)*lf~mwJshjGm!J
> zNaRxF(gwa2pe-Eu&50d at R}sg^d_xZNO`osM`Zy)b`+VUruQZxG$A%_ZZjYn?HoW0v
> zb)={3v^TkS1!+a*CKZ|6sffqyH9W9-oCm(muC%KcFxki8FCBl8+pz;bzwNos?<>Fk
> z)~PQ(NpskB?acJ*<SZfE`N4hWXrd#F at mM2^c-y+Fc&VW8n*PoJFPRfr(l9zYX{~n*
> z5~k&xGxXK*+;)Ml+;67?XBeJi at cx!NJ*8pky)jW#!y4}d{0H3`H?{xdK61}XGX&1E
> z0K`td7q+%8<M}%CiTmMI0nKLj`$F*Jd_FeMr5Hc4-SpzCv-Y>n{qEKC`@=7vzirP~
> zKkIo{zF80tfAVms{QSPNPi$^%yg;O1Jo=SSO+Ed<uYY#o{OtX2{5?MX<Wn<A*Xu_*
> z-G`jT*2aZB_sUP*y62IP9)0HPHww>w(^)uq?hRqqwe+!rsbfs^*e!?dx%<nrd-p~L
> Ob`rVaz3g at Hnes3A%_-dg
>
> literal 0
> HcmV?d00001
>
> diff --git a/engine/tests/Functional.rpm/tests/rpm_01.sh b/engine/tests/Functional.rpm/tests/rpm_01.sh
> new file mode 100644
> index 0000000..6ab9e3d
> --- /dev/null
> +++ b/engine/tests/Functional.rpm/tests/rpm_01.sh
> @@ -0,0 +1,13 @@
> +#!/bin/sh
> +
> +#  The testscript checks the following options of the command file
> +#  1) Option help
> +
> +test="rpm01"
> +
> +if rpm --help | grep .*Usage.*
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi;
> diff --git a/engine/tests/Functional.rpm/tests/rpm_02.sh b/engine/tests/Functional.rpm/tests/rpm_02.sh
> new file mode 100644
> index 0000000..41ad005
> --- /dev/null
> +++ b/engine/tests/Functional.rpm/tests/rpm_02.sh
> @@ -0,0 +1,21 @@
> +#!/bin/sh
> +
> +#  The testscript checks the following options of the command file
> +#  1) Option ql
> +
> +test="rpm02"
> +test_manual="test-manual-1.2.3.noarch"
> +
> +if rpm -qa | grep $test_manual
> +then
> +    rpm -e $test_manual
> +fi
> +
> +rpm -ivh ${test_manual}.rpm --nodeps
> +
> +if rpm -ql $test_manual | grep '.*/home/test/rpm-test/text1.txt.*'
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi;
> diff --git a/engine/tests/Functional.rpm/tests/rpm_03.sh b/engine/tests/Functional.rpm/tests/rpm_03.sh
> new file mode 100644
> index 0000000..9306de7
> --- /dev/null
> +++ b/engine/tests/Functional.rpm/tests/rpm_03.sh
> @@ -0,0 +1,14 @@
> +#!/bin/sh
> +
> +#  The testscript checks the following options of the command file
> +#  1) Option qi
> +
> +test="rpm03"
> +test_manual="test-manual-1.2.3.noarch"
> +
> +if rpm -qi $test_manual | grep ".*1.2.3.*"
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi;
> --
> 1.8.3.1
>
>
>
> _______________________________________________
> Fuego mailing list
> Fuego at lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/fuego



-- 
 -- Tim Bird
Senior Staff Software Engineer, Sony Corporation
Architecture Group Chair, Core Embedded Linux Project, Linux Foundation


More information about the Fuego mailing list