[Fuego] [PATCH] logrotate: Add test cases for command logrotate.

Wang Mingyu wangmy at cn.fujitsu.com
Tue Sep 4 11:32:42 UTC 2018


Signed-off-by: Wang Mingyu <wangmy at cn.fujitsu.com>
---
 engine/tests/Functional.logrotate/datas/test.conf  |   8 ++++
 engine/tests/Functional.logrotate/datas/testlog.sh |   6 +++
 .../tests/Functional.logrotate/datas/testlog100k   | Bin 0 -> 105984 bytes
 engine/tests/Functional.logrotate/fuego_test.sh    |  19 +++++++++
 .../tests/Functional.logrotate/logrotate_test.sh   |   4 ++
 engine/tests/Functional.logrotate/parser.py        |  22 +++++++++++
 engine/tests/Functional.logrotate/spec.json        |   7 ++++
 .../Functional.logrotate/tests/logrotate_01.sh     |  13 +++++++
 .../Functional.logrotate/tests/logrotate_02.sh     |  23 +++++++++++
 .../Functional.logrotate/tests/logrotate_03.sh     |  19 +++++++++
 .../Functional.logrotate/tests/logrotate_04.sh     |  43 +++++++++++++++++++++
 .../Functional.logrotate/tests/logrotate_05.sh     |  30 ++++++++++++++
 12 files changed, 194 insertions(+)
 create mode 100644 engine/tests/Functional.logrotate/datas/test.conf
 create mode 100644 engine/tests/Functional.logrotate/datas/testlog.sh
 create mode 100644 engine/tests/Functional.logrotate/datas/testlog100k
 create mode 100644 engine/tests/Functional.logrotate/fuego_test.sh
 create mode 100644 engine/tests/Functional.logrotate/logrotate_test.sh
 create mode 100644 engine/tests/Functional.logrotate/parser.py
 create mode 100644 engine/tests/Functional.logrotate/spec.json
 create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_01.sh
 create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_02.sh
 create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_03.sh
 create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_04.sh
 create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_05.sh

diff --git a/engine/tests/Functional.logrotate/datas/test.conf b/engine/tests/Functional.logrotate/datas/test.conf
new file mode 100644
index 0000000..a346adf
--- /dev/null
+++ b/engine/tests/Functional.logrotate/datas/test.conf
@@ -0,0 +1,8 @@
+/var/log/testlog {
+        create 600 root root
+        ifempty
+        daily
+        nocompress
+        missingok
+        rotate 1
+}
diff --git a/engine/tests/Functional.logrotate/datas/testlog.sh b/engine/tests/Functional.logrotate/datas/testlog.sh
new file mode 100644
index 0000000..e258480
--- /dev/null
+++ b/engine/tests/Functional.logrotate/datas/testlog.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+ddch=`date --date ' 1 days ago' '+%Y-%m-%d'`
+echo "logrotate state -- version 2" >> /var/lib/logrotate.status
+echo "\"/var/log/testlog\" $ddch" >> /var/lib/logrotate.status
+EOF
diff --git a/engine/tests/Functional.logrotate/datas/testlog100k b/engine/tests/Functional.logrotate/datas/testlog100k
new file mode 100644
index 0000000000000000000000000000000000000000..1dc679f54731568a9cbda775a663b7ea51595fe3
GIT binary patch
literal 105984
zcmeI5d0-U9^2b*N!X;-EJdh;28zdV8yGaO9L{XdL$K@>wVs7M00!a`-{fUA^e4r2f
z0X{&`=Zyl&Q#|l~hzE+OPr(y!P(TqC1(8=ZGs|u^JKbNze|~PwA7rMhr<;7HQr%Ns
zU6bVTc!qWHcq*%_x`gQ5?O<8e*uv_n8n+rAPq1rNC?_k_H7l6i&ArxNU$S6WifZ-y
zk)EdQlWR at CZ4y=Z>I|EIwx%-6guez*l;{ECU-I)25dX$>-%vpRqnejf1A)hgf1_4M
z7;4#K*8gz at nEk0KzI>#vQI=m>IJPjWrn;)EB&)b8tE^_!NHSSj#T8kjDs{L1rDXps
zN>PjQT9E#?9bo#!nE#v+Hvb$=WtJ6=FRjv4 at sw9omsS?%BszZ2C1ok<`|`us{*>!@
zv5fgIclhUODzi-ZYXC)wiirR24b5QwUpV}AlNOc<|0u|s(+c80cS&=Yzvpt>{^V)e
zWSQ{S0E!Y#CjNsqCc*q~A>+>T|L#$3#GbND#@|>f at vlD~nWEmjt}*e)#^2f&Hvjzi
z%~_=^6aCi!iV{6PIz_Es*c8_P7f!bM2fIc!5_8HjdH;%m;&QoeBJqE{A at hgcf0KJU
z{DUqHQgM)EM*CAVG8F2b at Y7Gvsn4gVdGmPw+4c)}qPB$Jf7=55P3?$0Lg3yPQdF<e
zO(O-GGv>dbiLL+Hx&c_zhKTACIBHFb+WLF5x`i%R%zrgt|6OjE;y47hZc0&oKR+^#
zq<#_ee+BS=*1uCq+z2GUpQ3v1!u)T{e>UL%aqCOU>l0YFHAQ{9v3_~H66XIo;D3mB
zuaw0n at DA}m^T?$5!kAL#KOK1gin&cLH3Z%z{vJQhf0?8II{&ApI}ybY*hu_;or&B3
z{SJSf|1G8qxzrHYPW<N#Yow_W5wZQLEU at SQy7l+S9dc$O(Ei&Lwdq~_{p$w6|7q$|
z<PieQzgc7K{fkG5=St1`FYzZ4zNWL`52dQ7&d2?4-#Gjw{=`HUlaC_)O`qoVceDSK
z?f<iY{$o8$EhaF5_}@CE0R)5XPX<LbAn|Xq{sJNO?0+~_ZCq@{UqSH?y&e7%e}eHf
z)k=CKRe3@<|00LK?)^*RPfXM!@|MK^YTN!p`oFxBZGUv}C$v1 at 4YNO?gkJy~{z9sn
z^g$CIf5$|gO8he(e-Zxi at 0QYd1e&c$RqMN8 at 4r0$zTe)g|NOUMT>q8$PwR0^_&8PN
zbz=LE#h=_b-sZ3K|B(I3E37IkDvbBQowDk}uEB&iKE&dLZK>+ZbZh<neGM*4#P$c_
zZ)!*65dvL^f2aG{vX~F9wNv!p4C)|iEch-}^>5#j?GL2?2>*lVKH;lAPW%Uci0l6m
z$J+K^7k<Lwp<@3r)vDZ?s&>D}^G~z>^HVzeIGevI{!`{Z82=GJrK%0zG=S$n&pP~d
z at t;*)f?ehP3*$fS=Tx=gHxKbQzkjj*mw0Xc4{8>`ScdVJ{YMY(PF1B(TK<2?|4<a>
zZ-~DY{+Rx+B>v;S$M=7I9OkcCfC-XJ_+$K66aQn5!uKET4fEGHpo1h6{uuw4h<|ra
zBewsL{Ym#Z_Fv<G4w6jvUts(v{gSF`npyi_YE5^r{{fl*o7xe1guvb2G__-Ai%5ay
zjQJM=>o1xnL=;2dlk_yTZ(zfi()gFme-B{)<KHc%@d#`o{xetN at mIxR{+juJynduC
zK7p;o|ApgQ#uvtvTJ|T*Uo-!YxlJxL1hx@>&tbUz`6$d^Gym6gC!!bvJBWY3Yhwys
zE?NJTGyZC(|1Nh+aXbRwoS3HWdGUyNqIzY_zq7+%%zr&Rf2d$P at jp4UIdm`cNBo~q
zV^YZ?u&8sIn%fYIe_;NrC{((-`bzESs}(xjLs{Lj@=pq8b?cT_H8ye5UDeaNCr(OJ
zYbRjiFV`B`yIvFZ3WR?>B(4R_|EftCfBq|B{)qk$7~H4dAlF_+zyz2j^Z)otj6bix
zp!~;IR8$LPJppF<Eb*WE3_kw)0sp7ISCK{&c#HTi%EbK-TT5;Kv%G#qQ~cxSmu97@
zEB9jYCp`Zd48%YD@&8TY-TB!?X{t*)C6xgV=D!JuzXh6-Dh`2fh=0eg@$t8!z_vfS
z_g{*?3e}Wq!*4w-m-t)S&-Fu^8uu#4KeSzMQcAW`^Bn#<`%nC{g};fWEiWeiEv8!W
z&k+AYa=h{WJDvZHWwQQ@@lX0aP3>)i=buk<@-JzY-#si7{uuu@#DDZ%R{qsm(;Yni
zzDkD2r2nRNL>?i~f%sSVja=)_*#6JxZ067Q2aEraEigYf@~Y;yTk(elI`%AM{@We?
zy8VxM{%zqOO!BHb=34Pr1<Y7?F#lZV`xm<XUr7G#$oF4#k-WP9&0j;-x3O3CTxsQh
zFnZyc|7A4sNAhoD_DABM%bIxA8H4fo=UEPaUHm`Ggg^H8Iga=zZ|D6NSp4UM4u8}B
z7vYcbpG5peY`5$W6o32rFx&ocj%~MtWy0T$PTlggt-R{^Q*r(G9PRMeIDnA-FEakx
z&tX}zSIzvvihqX2-_IQX1MjhLJ6I<B at 7(CrE&m|JtG-)<e}8HkB^BWL5AU&XJ6LM6
zKcfq)E5!fl at ia{Hs+$J!{J-rvZal-~JpX)htixa903!am;{Oa&)Bo(zne6{vhr|Bo
zY$yMGNW-6HVt at 49!_x9DUbQ(3%YVZDx1=;%|7nUZ$Dcsp?4Di~JPXgimr`Q$4{01g
zEHl}klFN%LgSojU1%r86qYJN~bOobFb}!GWtcv~+B-y&Z`tkD_UUg$O%|BZ&s4 at Mn
zZ2$X)`D+|NA(9Dy6HQxw*_mE-JH<30{Mr8W0r+D*OD!g_ueVpdlZ)9O=HD^QUt at oS
z>_HId<5kyn!1%NMsXog*{_ at x?_6K_gNyNWN4()#j?SJt^8GkXdSgpBzy(;@FeEc1J
zsm(uIGXZ6p>HXLK{<5rpbspnY=bdQf-zYFWF}6QfIrb-{aX_<7?2n12Ee}+B)#zTB
z{o(O<5TO59&r*vCw7bfymQ`T!=dAyedpY)BGykXX!#vFXNdDm|*Lc;mh3x;q@?YH+
z=C4V>7b2O-{!~>Ljj5<8Nq86NY~sJ-JC1*AYutp&`u~)}-!%T3{BKp&h1DY~$`hXd
za^k-)o#Wry&S!h1JJ|j|3GmmoA+ovz-XQ*GKYw`LLYFJ%KOe9^F1Jf at 90I;;z3R(t
z*#0B7KV#`rsl5KhHs0-E88-gP{QrL9zxYfm|9^oS&u}^G|Cf&bYnETa)#WEZ;Lci#
zKiP)wKbi@|Ujf}p6^FpI8D5pP2b=%1{;vb#e*`X0pqBXGRf^|-TMER#;k`@E8N~m*
zFF3P+`C$DY?(o+PzvhOd#sLB|iT~@l`1~^mh(ABjxSSXX47$myhM$3tzdsyh&p#78
zYTt+zu5dQ-&o06256}N^prj@||JThwS!VM8Nc at BSi1z-?tA?IT{x at L#i|v01h`+L1
zmVXff?O*k(xvyd0|7HH0f%sdbU#Vjg=s^4zj54}Dt;)<F$v+@$aRLk9 at TzOG$*BVz
z%zs{iZT~gl=RiwRB}`xm at t@ispZ_57&*8S^r<uT=#Q*qixcwgi#Q&Ikl^S6J`!;#i
z$xE^MC)=N*iH`qS;@`pu59w#ePrNE`Al3x)pA5vGV690lCeUs(#XsNE0D{5%rvdL@
zP-9ZbBJk1YUNvzSHvi%G-&y2%<M&@p_?w5truSc#C;Z|&@f_OEr`jy!@2_F`uikX{
zYqp;<f5|@v{(YAb|Dqn&{yQlD)%h2i=l}d}Ao-WD2hj8!pZdF{|H-wcJJ|kAb at -e7
zZ^GY1)0U?Z|Cg=(cV_-P{+<WuKi0F<Vgdo;KmR=@Yd%>2Kd8a%4;FtS`DgYI at u^eJ
z!Sm0&M at wZq|IvisdRQj>&HBtWT3zf at S-0W&H-?g{i23W*e_1B{G5#Hh|5uOl{%b7%
zPpLEi)NH at -u*@|7m-R3E`K&AQsmor)_Mfu-Uq8~;e^dS|;g9M6v!y=uTx-&QVEvK#
zFTKR!Z^*wS{4xH6M)}l)_vrl#<Ug&4!(a0Pz~7%0`;YMtj`gXV_u${Z&b!9puW>*i
z`LFE#k23#!y27Wt-?IM)8-IsUs3OmQO!;R-|1tf4kNBV7$BI8MH{HSZf5u^s{%aP1
zDgRQoiNEB(vT08r?^EYn-+#yQU$trJ=)Y$Di}TNz_{;uloBuU8`qb9dmi;NPOWglu
z{cjxhKWkn9c>lGD|M-z(E5??VXD9j^z@%9|)qatce{Y#Pd0WC>q9lO7sU49=2;95C
zr|#*7 at Bey-oIBR|YtVo3KSvnr&ThHirxrBEzQ4fs=d=@S{>J^khVSo)|G|DLwU78z
zqc57l?_blC9sZj4-)uPlu<U=FwA!a;x3lsO6zKj=SjP7MZNUDR+7Wq#z+?aMspiXR
zQV$%=|9W8k5ok)PI0RmQ*Qc)k2_JudJ=L~98uyR&{Uh<eVJi0Kr#^LCN6Nne`rk5o
zV)Gy2kMZyInNJ-*8{^ORXFag~i}ftEn85b!K9yO5#lJECOMvx9A&V3Ep7{T=0FVEi
z3i$u=-lgVF;$MCWIn{uJ^?w5p{{S>4RU8685&y5B!EiADZov8r)|%8}0{e;o|E<RN
z9}NZ8UxX}9;IJJ&)w?C0f1ook|HONjnltwK)Q-;h{O186{z0hX1ZEQdr+>u0KhE~Q
z=Lu&2C*Hf%yoLDZ&&TJVZvgRELKP=4oA at 6!4d4Ix3*i63dzYGXi2oC_F#j9dpAsPc
zQ>fwunl|*S$NMu`^TF$1&s8|~UsIjJgR)KjH<l;*+B+lkH}$LFht~SLasL-TC4|4`
z(TFI9z~VH&s@#m}Ki5L`pT=|{ml^^~h=1+h*s_=p=8x<@HMb-+!UXOn{zH~v`p-}4
zMaosc at h7tXI!y4;etH-CRo(#J|Ap<pet3|x{-x=b!*gZ))c}eTokIMt*ueY0F#b!=
zmHAH;zC%7eW{F=tvx?$>K>mw{+WbxH?-KupJ({9B{c7q2YyWAj=?=F4s~!HP{inj;
zMAMd!C;sQHwe~+6`SU2f5YT_DXQ{;mCK3O`AH(vWv;Oa)*g~HFnCy=!{#^DS+4^_x
zgMQWUX3l?t?LR7 at xM$|C34gZs{|bMbuj$`q#DD+$c>aN_{>SET+W#y3P2_F)<HSEN
z4cq_4_8<BF8rHMaVgjum@~d4xWBzBh|LZ#0`cH0X*MrPccTE4~`*(96^{c*5So%N4
z6{sU%{&)0o?2jh?KPd74CX@%{m%Zp$a|^BgF9in*T~3()PyHPJhW*zv|962HQ(X3M
zziKyzzdvZsf5rUY2#>#-2`KIV%@zMo3}~0j%C&w~nvDB at visZmuiO95yW_?Fy8w?V
z9{!47U4Ae7f3WYLe&_6e327V<EHm-1DH<6J<;x0Wlh^zzcMIp=Xgek5(bT)-`R6u(
zf4v)}z?DD?;(tbeEdGS;f3E_^{)qm&GCdf<__zG(wm at T8|4#?_A58y=UUwexAMp<U
z{?)Av(|^<Vmsx&g;n;+aK{;%*U!{7Qv;Ge-=_1>ofzJLf&avTk(EKM~=AUkK>XuLc
z%&$Iu+u{$!{~-M9_8?a}0!xU0v*q~syQ;Tie+>F>ntw|ECHtxD+TvFer}O%kIsX#R
zKN0 at A=Pk0j1b!s`1%t5tM{NK9b+uXlk^D=+u34d+tWejiU}Aqs^4wj1)&FeE|5I7_
z$<)7M{{Aa${-*ph;(x2pFJ8&0-F|ibddvS%8&4ix#{Bovp9-%(W^4SPEHl}E(SMt4
z)vtclak91k2<iWYG)uMkYw{mvlT7$WYp(nGir at Td=?hl=J&6CTVGe(d|2dmvg;j+`
zh3?&Ysw-+nRMd1$_yw>HEz;GNQ?2;_EgD>wi03~u0sf|TL>?h9 at u+mQVjBMaQy(z?
zMp~CM6M_C6($y7jv1XeOuJt3Z{%CGVYJ>?Sbxc=tcH;Z5p911P!)?n?Gl8R-e>rY{
zh6C|$=3b>nm_VzHbhWNHe5L=%_GfZ<{av>KM&FD`qX at Jn{=qjf|3CB31^oX}&C98Q
zz+J>YtsKw)fb9P=bSdH}0&9u?-KS7eAK+m9NA at 29O-U7pz$?VRHD-RS{I^K_mB7Ub
zyh{APZ;sD at ko}K%?^5$E;(x(*Z2gPv&$G_{$54*2`!fg}6G&H0hv50g!u*5ujS)Ex
zodEMM+sc}4KI-Vd#{X|_Nos@%983K7z1%E(sr^}pzr25GS)syI;(x<jZ2x04|DbLI
z4BENW^Q5u;zxEH<AI<ugV8sdeh=1=4>;<5X{^MOpO$`C&zjy}z{(E5lqlv%LbSI)1
z0)FCu4SjzTIimGHq}hLmv?X<H0?hx1)p-8T1NyIt{};A60p`EP%aJ|igZ2L_Ape88
zC8-f6P)Ypr-^KkuOZwRHC%ng3jzcF<nxC#VG{E9NS^uX2-(NfQ|5f6&FoO6`e}KuF
z53Y4%XIuZp{buHc)c7ayzqk+X|J>&A7xx=N*Ieg5;=lJbJpN=Q5Pxp&RceF at d_esF
z(H{3d at 1dc>6#pD<TYj1ed_??<Uc$%U3xN1%bFWe(OyKC#(pA#l at Rj~2kH4+yQ&p`0
z{Ec at x4xPX%;-7pz{{Bm;Qf&U>e?D~h)WQ?Q|HB)w_g}7cg7f_&-SP|ld32Tizu4nh
zd+mv8U^hJf%qb3k-Rm#$4+?*b|C_{r!%ohBWzPT1_8-xItY at jk1Pa%ls0MVRK@~Wd
zKcfFYQ&PntP(u8t{4W;&$@YK5D0}?X*?*Rq_TSn0Z-WV+fa&hd8LCYgo`3J-aW;Rk
z|9{S(aQDwLly at SQe}naZufty#{==^aGX7%E=S<@Nzyy5$a}n(=wfqm7<~cM1vp+cr
zZ-0`%%1|GT;QUwS{M$VKBKZ$Bk48i>1iZw5^-#?J$@b at ZNB?#Hf0jx9hZxW<m*0M!
zp_*;PzkjjV;ZHwY50(jkS3GqDKNA1HS6cR`wvHgq1>2wN0R4}1s}#8qXt*UqojU|u
z|6=>I_;h>x)!84K|K!O0#|3yyaoMg6HSl>W|CKTS8}rZYW%Jj$pIIjJpBT_CmskIm
zp>n+~;rS2p{^in at 6vrXZt3g05UyRuww*QFziPMb~xe#Ff8xMj%^8V}6l@!Mz!2E|T
zW6N$nxYn(dtAO8s#s6dGh1A$h{QHf=zd!h}!(aSA2wk8~!+<(w4L<+LFEP(Qd2VW&
z|49Bl``OG+3aIusH|6<HrRiz0{khHIuM0nCnY{m+Xxj1>O#<q;et7=LR~-Jj?Jq1d
zy?;gYzpL(1V!y=y<63K)2Got6tnY7*HvJkr|9lzXZ)!*65ds5R1=Q|MOxAp`{n_ut
z9~$+a^84#rl>GlTogu9QYSky4e;CXEUpCm8e`+Q`oY7hAk52m{vh#fbb<-yP{!X&d
z{;>W}C+Che|JOL6gCsM}e`NjLeg<h70adsNTYqOO^*dmHB2QP&OayKX29$c=RLhpL
z{;zQSpC<c{>3_nfANH)w4ygN{wDf<B=_xS(EZQn>*&ofUk-QUm!rw&GmJiDhs1X&G
z{fGE3cjlkE{2MHj?;m0O&pSDww(h~^KWzV(1NH~&S!ywXZ;1a#cd=zLAIu-IKjxOC
zMwq}3;@|2RZ2uQOrB9Eu?Z0mPCHHi`*#9tL{m=G20;=so%l}}s|E&KAe|?W4jV3UJ
z`1gCPL3EMpIqQF$<DL1B<`018KcfGx6zd8~iT~lJTHham^nV#J|Eb%9T<HkRIxV2u
zwZZalu>OyC_TL3H^M97f{8L9gBAa at 8K>fRi_5Ilak<$2Q%>VNf9Q&i$|H$)y)A$?l
z|0nkM*XHyJs7rcS at juY|mvZ*sg)|#rSSI=(Ux#B$pCkTL?zX;vWYmA2|9lAOe{3Ie
z?M~o>3j%6KCoKM)`IiCvzubEhNi2b1hXhpl#n}9l`FD5bKf3ta*goXioxr%_fSNk9
zxqF2u3G=@JSbvGSMNSO_<`Vx$ZZ=eM#LPbjh=0aflUht*en~)G_Zpsm=0a!xg`^+;
zbM)sv;@@!!_Ws5CKi{$cn%A#C=RcMptrUz3sOfXDUzYjb?&!Z}`5kLaYFPw691~Cv
z`SASPX94eDf)*#RbZkJ~*%+VyoCElO at ZP27a^l}43D<ul{$Hr#1RlO4poXl(^Pl|I
z!}h;v+&>;#|C0Py;3IgH_)oqQ+ke61FTx+}TB;F&;rCGd!(M#<9kTyLz~Tf-i2qHG
z;p^}Jp{g8zCH4nrtgAUOH&b2o631Ve^S|->%THndv!+qro at a`GW_iLVpCN|V5&!)s
zHG=uCJl58KP58NoWwQTBqo7fuTk|v3yKgt)`19JR;<%@*|LYz8I{y#LgnwLw^$PDH
z{`XT-ZG=D1e;xt!zg{O&;7Z^T;$Jfh^S`nF|8OE^e at yG|vj4(<B<=cUs&Nmp{ZB4%
zeMpXg`ENbi=C51-LiYa(e;ewu!I|pPVw`_YJDb1G|H(3w{!9Fc&HwOoGS%BFt@!^+
zyTtup*8c~F*!*c3()D1OjK8jU>Ieo8$yB>*t^M!N{HG|{=C50Sq4|HF%>V0PcD*>M
rFjK9XhUMR8{oi(p%|EDl0jAe4 at xQqeuPfMaO{VH_1<yat at 4x>AP`)FD

literal 0
HcmV?d00001

diff --git a/engine/tests/Functional.logrotate/fuego_test.sh b/engine/tests/Functional.logrotate/fuego_test.sh
new file mode 100644
index 0000000..f9fb429
--- /dev/null
+++ b/engine/tests/Functional.logrotate/fuego_test.sh
@@ -0,0 +1,19 @@
+function test_pre_check {
+    is_on_target_path logrotate PROGRAM_LOGROTATE
+    assert_define PROGRAM_LOGROTATE "Missing 'logrotate' program on target board"
+}
+
+function test_deploy {
+    put $TEST_HOME/logrotate_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
+    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
+    put -r $TEST_HOME/datas $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
+    sh -v logrotate_test.sh"
+}
+
+function test_processing {
+    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
+}
diff --git a/engine/tests/Functional.logrotate/logrotate_test.sh b/engine/tests/Functional.logrotate/logrotate_test.sh
new file mode 100644
index 0000000..dd5ce37
--- /dev/null
+++ b/engine/tests/Functional.logrotate/logrotate_test.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+for i in tests/*.sh; do
+    sh $i
+done
diff --git a/engine/tests/Functional.logrotate/parser.py b/engine/tests/Functional.logrotate/parser.py
new file mode 100644
index 0000000..d85abd7
--- /dev/null
+++ b/engine/tests/Functional.logrotate/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.logrotate/spec.json b/engine/tests/Functional.logrotate/spec.json
new file mode 100644
index 0000000..6cfafd4
--- /dev/null
+++ b/engine/tests/Functional.logrotate/spec.json
@@ -0,0 +1,7 @@
+{
+    "testName": "Functional.logrotate",
+    "specs": {
+        "default": {}
+    }
+}
+
diff --git a/engine/tests/Functional.logrotate/tests/logrotate_01.sh b/engine/tests/Functional.logrotate/tests/logrotate_01.sh
new file mode 100644
index 0000000..e40647b
--- /dev/null
+++ b/engine/tests/Functional.logrotate/tests/logrotate_01.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+#  In the target to execute command logrotate and confirm the result.
+#  option : --help
+
+test="logrotate"
+
+if xmlcatalog --help | grep "Usage"
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
diff --git a/engine/tests/Functional.logrotate/tests/logrotate_02.sh b/engine/tests/Functional.logrotate/tests/logrotate_02.sh
new file mode 100644
index 0000000..dda0245
--- /dev/null
+++ b/engine/tests/Functional.logrotate/tests/logrotate_02.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+#  In the target to execute command logrotate and confirm the result.
+#  option : -dv
+
+test="logrotate2"
+
+if [ -f /var/lib/logrotate.status ]
+then
+    rm -f /var/lib/logrotate.status
+fi
+
+cp datas/test.conf /etc/logrotate.d/test.conf
+
+chown root /etc/logrotate.d/test.conf
+
+if logrotate -dv /etc/logrotate.d/test.conf
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+rm -f /etc/logrotate.d/test.conf
diff --git a/engine/tests/Functional.logrotate/tests/logrotate_03.sh b/engine/tests/Functional.logrotate/tests/logrotate_03.sh
new file mode 100644
index 0000000..ef59c97
--- /dev/null
+++ b/engine/tests/Functional.logrotate/tests/logrotate_03.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+#  In the target to execute command logrotate and confirm the result.
+#  option : -v
+
+test="logrotate3"
+
+cp datas/test.conf /etc/logrotate.d/test.conf
+
+logrotate -v /etc/logrotate.d/test.conf
+
+if tail /var/lib/logrotate.status | grep testlog
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+rm -f /etc/logrotate.d/test.conf
+sed -i '/testlog/d' /var/lib/logrotate.status
diff --git a/engine/tests/Functional.logrotate/tests/logrotate_04.sh b/engine/tests/Functional.logrotate/tests/logrotate_04.sh
new file mode 100644
index 0000000..7f46357
--- /dev/null
+++ b/engine/tests/Functional.logrotate/tests/logrotate_04.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+#  In the target to execute command logrotate. Verify that the rotate file is created in the specified directory.
+#  option : -v
+
+test="logrotate4"
+
+if [ -f /var/log/testlog* ]
+then
+    rm -f /var/log/testlog*
+fi
+
+if [ -f /home/test/testlog.sh ]
+then
+    rm -f /home/test/testlog.sh
+fi
+
+if [ -f /var/lib/logrotate.status ]
+then
+    rm -f /var/lib/logrotate.status
+fi
+
+ntpdate 192.168.246.1
+
+cp datas/test.conf /etc/logrotate.d/test.conf
+
+touch /var/log/testlog
+
+chmod +x datas/testlog.sh
+datas/testlog.sh
+chown root /etc/logrotate.d/test.conf
+logrotate -v /etc/logrotate.d/test.conf
+if ls /var/log/testlog.1
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+
+rm -f /etc/logrotate.d/test.conf
+rm -f /var/log/testlog*
+sed -i '/testlog/d' /var/lib/logrotate.status
+sed -i '/logrotate/d' /var/lib/logrotate.status
diff --git a/engine/tests/Functional.logrotate/tests/logrotate_05.sh b/engine/tests/Functional.logrotate/tests/logrotate_05.sh
new file mode 100644
index 0000000..1f38e58
--- /dev/null
+++ b/engine/tests/Functional.logrotate/tests/logrotate_05.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+#  In the target to execute command logrotate.Verify that the rotate file is created in the specified directory(Specify the file size).
+#  option : -v
+
+test="logrotate5"
+
+if [ -f /var/log/testlog* ]
+then
+    rm -f /var/log/testlog*
+fi
+
+cp datas/test.conf /etc/logrotate.d/test.conf
+
+cp testlog100k /var/log/testlog
+
+chmod +x datas/testlog.sh
+datas/testlog.sh
+chown root /etc/logrotate.d/test.conf
+logrotate -v /etc/logrotate.d/test.conf
+if ls /var/log/testlog.1
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+
+rm -f /etc/logrotate.d/test.conf
+rm -f /var/log/testlog*
+sed -i '/testlog/d' /var/lib/logrotate.status
-- 
1.8.3.1





More information about the Fuego mailing list