[Fuego] [PATCH] rpm: add test cases for rpm command.
Tim Bird
tbird20d at gmail.com
Tue Aug 21 04:07:45 UTC 2018
On Mon, Aug 20, 2018 at 8:42 PM, Tim Bird <tbird20d at gmail.com> wrote:
> 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.
OK - I spun up a system that has rpm, and this is what I got:
the testlog,txt:
#!/bin/sh
for i in tests/*.sh; do
sh $i
done
Usage: rpm [OPTION...]
-> rpm01: TEST-PASS
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
warning: test-manual-1.2.3.noarch.rpm: Header V4 DSA/SHA1 Signature,
key ID c08249da: NOKEY
Preparing... ########################################
Updating / installing...
test-manual-1.2.3-20130226 warning: user test does not
exist - using root
warning: group test does not exist - using root
########################################
error: unpacking of archive failed on file /home/test: cpio: mkdir
error: test-manual-1.2.3-20130226.noarch: install failed
-> rpm02: TEST-FAIL
package test-manual-1.2.3.noarch is not installed
-> rpm03: TEST-PASS
I suspect it is because I need to be root to perform the operations, but
my fuego test user was not root.
Can you please add NEED_ROOT=1 to fuego_test.sh, if this is the case?
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
--
-- Tim Bird
Senior Staff Software Engineer, Sony Corporation
Architecture Group Chair, Core Embedded Linux Project, Linux Foundation
More information about the Fuego
mailing list